[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
|
[news.eclipse.modeling.mdt.uml2.uml] Re: Multivalued non unique stereotype property
|
Hi Chokri,
Opensource UML does not support non-unique multivalued properties on
stereotypes as a result of UML being based on EMF and EMF not properly
supporting that.
see...
https://bugs.eclipse.org/bugs/show_bug.cgi?id=89325
In this respect the opensource project does not fully support UML semantics
when it comes to stereotypes.
Hope that helps.
- James.
"Chokri Mraidha" <Chokri.Mraidha@xxxxxx> wrote in message
news:a77cf794949c1b179d7f69143f21d647$1@xxxxxxxxxxxxxxxxxx
> Hello,
>
> I have a stereotype property p1 of type metaclass (let's say an
> operation). This property is multivalued and non unique (isUnique=false).
> In uml2 standard it is then possible to add the same operation twice in p1
> value.
>
> In uml2 editor 2.0.2 it is impossible to add the same operation twice in
> this case. If I do this programmatically, uml2 editor is unable to open
> the model.
> The same happens for properties typed by stereotypes.
>
>
> The following error happens at the opening. In this example I have valued
> a multivalued property with the same class stereotyped "Stereotype_0".
>
>
> org.eclipse.emf.ecore.xmi.IllegalValueException: Value
> 'org.eclipse.emf.ecore.impl.DynamicEObjectImpl@1ad9c6f (eClass:
> org.eclipse.emf.ecore.impl.EClassImpl@14e0f6a (name: Stereotype_0)
> (instanceClassName: null) (abstract: false, interface: false))' is not
> legal. (platform:/resource/Test/testModel.uml, 25, 1)
> at
>
org.eclipse.emf.ecore.xmi.impl.XMLHandler.setFeatureValue(XMLHandler.java:23
82)
> at
>
org.eclipse.emf.ecore.xmi.impl.XMLHandler.handleForwardReferences(XMLHandler
.java:991)
> at
>
org.eclipse.emf.ecore.xmi.impl.XMLHandler.endDocument(XMLHandler.java:1061)
> at
>
org.eclipse.uml2.uml.internal.resource.UMLHandler.endDocument(UMLHandler.jav
a:43)
> at
>
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endDocument(Unk
nown
> Source)
> at
>
com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.endEntity(Unk
nown
> Source)
> at
> com.sun.org.apache.xerces.internal.impl.XMLEntityManager.endEntity(Unknown
> Source)
> at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.load(Unknown
> Source)
> at
>
com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.skipSpaces(Unknown
> Source)
> at
>
com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$TrailingMiscD
ispatcher.dispatch(Unknown
> Source)
> at
>
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanD
ocument(Unknown
> Source)
> at
>
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown
> Source)
> at
>
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown
> Source)
> at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown
> Source)
> at
> com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown
> Source)
> at javax.xml.parsers.SAXParser.parse(Unknown Source)
> at org.eclipse.emf.ecore.xmi.impl.XMLLoadImpl.load(XMLLoadImpl.java:179)
> at
>
org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl.doLoad(XMLResourceImpl.java:1
79)
> at
>
org.eclipse.emf.ecore.resource.impl.ResourceImpl.load(ResourceImpl.java:1089
)
> at
>
org.eclipse.emf.ecore.resource.impl.ResourceImpl.load(ResourceImpl.java:895)
> at
>
org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLoad(ResourceSetIm
pl.java:249)
> at
>
org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLoadHelper(Resourc
eSetImpl.java:264)
> at
>
org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getResource(ResourceSetI
mpl.java:390)
> at
>
org.eclipse.uml2.uml.editor.presentation.UMLEditor.createModelGen(UMLEditor.
java:879)
> at
>
org.eclipse.uml2.uml.editor.presentation.UMLEditor.createModel(UMLEditor.jav
a:912)
> at
>
org.eclipse.uml2.uml.editor.presentation.UMLEditor.createPages(UMLEditor.jav
a:1012)
> at
>
org.eclipse.ui.part.MultiPageEditorPart.createPartControl(MultiPageEditorPar
t.java:276)
> at
>
org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.jav
a:596)
> at
>
org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:372)
> at
>
org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReferenc
e.java:566)
> at
>
org.eclipse.ui.internal.EditorReference.getEditor(EditorReference.java:214)
> at
>
org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.ja
va:2588)
> at
>
org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2521
)
> at
> org.eclipse.ui.internal.WorkbenchPage.access$10(WorkbenchPage.java:2513)
> at org.eclipse.ui.internal.WorkbenchPage$9.run(WorkbenchPage.java:2498)
> at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
> at
> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2493)
> at
> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2478)
> at org.eclipse.ui.ide.IDE.openEditor(IDE.java:388)
> at org.eclipse.ui.ide.IDE.openEditor(IDE.java:350)
> at org.eclipse.ui.actions.OpenFileAction.openFile(OpenFileAction.java:98)
> at
>
org.eclipse.ui.actions.OpenSystemEditorAction.run(OpenSystemEditorAction.jav
a:98)
> at
>
org.eclipse.ui.views.navigator.OpenActionGroup.runDefaultAction(OpenActionGr
oup.java:125)
> at
>
org.eclipse.ui.views.navigator.MainActionGroup.runDefaultAction(MainActionGr
oup.java:328)
> at
>
org.eclipse.ui.views.navigator.ResourceNavigator.handleOpen(ResourceNavigato
r.java:679)
> at
>
org.eclipse.ui.views.navigator.ResourceNavigator$6.open(ResourceNavigator.ja
va:434)
> at
>
org.eclipse.jface.viewers.StructuredViewer$2.run(StructuredViewer.java:817)
> at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
> at org.eclipse.core.runtime.Platform.run(Platform.java:843)
> at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:44)
> at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:149)
> at
>
org.eclipse.jface.viewers.StructuredViewer.fireOpen(StructuredViewer.java:81
5)
> at
>
org.eclipse.jface.viewers.StructuredViewer.handleOpen(StructuredViewer.java:
1069)
> at
>
org.eclipse.jface.viewers.StructuredViewer$6.handleOpen(StructuredViewer.jav
a:1168)
> at
> org.eclipse.jface.util.OpenStrategy.fireOpenEvent(OpenStrategy.java:249)
> at org.eclipse.jface.util.OpenStrategy.access$2(OpenStrategy.java:243)
> at
> org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:283)
> at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:928)
> at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3348)
> at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2968)
> at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1914)
> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1878)
> at
>
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:419)
> at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
> at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:95)
> at
>
org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.
java:78)
> at
>
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(
EclipseAppLauncher.java:92)
> at
>
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAp
pLauncher.java:68)
> at
>
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400)
> at
>
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:177)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336)
> at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
> at org.eclipse.core.launcher.Main.run(Main.java:977)
> at org.eclipse.core.launcher.Main.main(Main.java:952)
> Caused by: java.lang.IndexOutOfBoundsException: targetIndex=1, size=1
> at org.eclipse.emf.common.util.BasicEList.move(BasicEList.java:997)
> at
>
org.eclipse.emf.common.notify.impl.NotifyingListImpl.doMove(NotifyingListImp
l.java:1308)
> at
>
org.eclipse.emf.common.notify.impl.NotifyingListImpl.move(NotifyingListImpl.
java:1281)
> at
>
org.eclipse.emf.ecore.xmi.impl.XMLHelperImpl.setValue(XMLHelperImpl.java:107
6)
> at
>
org.eclipse.emf.ecore.xmi.impl.XMLHandler.setFeatureValue(XMLHandler.java:23
77)
> ... 78 more
>
>
>
> Chokri
>
>
>