Author: bobtarling Date: 2010-04-06 07:04:40-0700 New Revision: 18212 Modified: trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CommonBehaviorFactoryMDRImpl.java
Log: Set the namespace of a signal when it is created to be its nearest package Modified: trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CommonBehaviorFactoryMDRImpl.java Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CommonBehaviorFactoryMDRImpl.java?view=diff&pathrev=18212&r1=18211&r2=18212 ============================================================================== --- trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CommonBehaviorFactoryMDRImpl.java (original) +++ trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CommonBehaviorFactoryMDRImpl.java 2010-04-06 07:04:40-0700 @@ -330,27 +330,34 @@ public Signal buildSignal(Object element) { + Signal signal; + if ((element instanceof BehavioralFeature)) { - Signal signal = buildSignalInt(element); + signal = buildSignalInt(element); BehavioralFeature bf = (BehavioralFeature) element; ((UmlPackage) bf.refOutermostPackage()).getCommonBehavior() .getAContextRaisedSignal().add((BehavioralFeature) element, signal); - return signal; } else if (element instanceof Reception) { - Signal signal = buildSignalInt(element); + signal = buildSignalInt(element); ((Reception) element).setSignal(signal); - return signal; } else if (element instanceof SendAction) { - Signal signal = buildSignalInt(element); + signal = buildSignalInt(element); ((SendAction) element).setSignal(signal); - return signal; } else if (element instanceof SignalEvent) { - Signal signal = buildSignalInt(element); + signal = buildSignalInt(element); ((SignalEvent) element).setSignal(signal); - return signal; + } else { + throw new IllegalArgumentException("Can't build a signal for a " + element); + } + + Object namespace = element; + while (!Model.getFacade().isAPackage(namespace)) { + namespace = Model.getFacade().getModelElementContainer(namespace); } - throw new IllegalArgumentException("Can't build a signal for a " + element); + + Model.getCoreHelper().setNamespace(signal, namespace); + return signal; } /** ------------------------------------------------------ http://argouml.tigris.org/ds/viewMessage.do?dsForumId=5905&dsMessageId=2500149 To unsubscribe from this discussion, e-mail: [[email protected]].
