Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » UML2 Tools » Referencing UML meta-classes from an ecore meta-model
Referencing UML meta-classes from an ecore meta-model [message #471202] Thu, 28 June 2007 18:15
Andrew Jackson is currently offline Andrew JacksonFriend
Messages: 24
Registered: July 2009
Junior Member
Hi,

I am trying to define a trace meta-model in which in which i want to be
able to define a trace between a custom requirements ecore based model and
UML elements. I am however finding it hard to do this.

So the problem happens when i create my trace.ecore model

<?xml version="1.0" encoding="UTF-8"?>
<ecore:EPackage xmi:version="2.0"
xmlns:xmi="http://www.omg.org/XMI"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="traceModel"
nsURI="traceModel" nsPrefix="traceModel">
<eClassifiers xsi:type="ecore:EClass" name="Trace">
<eStructuralFeatures xsi:type="ecore:EReference" name="requirement"
eType="ecore:EClass http://www.eclipse.org/emf/2003/XMLType#//AnyType"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="uml"
upperBound="-1" eType="ecore:EClass
http://www.eclipse.org/uml2/2.1.0/UML#//NamedElement"
containment="true"/>
</eClassifiers>
</ecore:EPackage>

I generate an EMF project for this model. In the creation wizard i am
asked to list referenced generator models. When i try to add in the UML
generator model here i get a stack over flow exception.

If i ignore this and continue the resulting genmodel has a problem. When i
look at the details it says that "http://www.eclipse.org/uml2/2.1.0/UML#/
is neeeded but isnt accessible from the model generator.

So after reading a few other posts i think that this point the only fix is
to add in a usedGenPackages attribute on the genModel element within the
genmodel file. So i add that and it looks like this:

<genmodel:GenModel xmi:version="2.0"
xmlns:xmi="http://www.omg.org/XMI"
xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel"
modelDirectory="/tracervoncrack/src"
modelPluginID="tracervoncrack" modelName="Trace"
importerID="org.eclipse.emf.importer.ecore"

usedGenPackages=" ../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//um l "
complianceLevel="5.0" copyrightFields="false">

<foreignModel>../../RDL_Project/model/traceModel/trace.ecore </foreignModel>
<genPackages prefix="TraceModel" resource="XML"
disposableProviderFactory="true"
ecorePackage="trace.ecore#/">
<genClasses ecoreClass="trace.ecore#//Trace">
<genFeatures property="None" children="true" createChild="true"
ecoreFeature="ecore:EReference trace.ecore#//Trace/requirement"/>
<genFeatures property="None" children="true" createChild="true"
ecoreFeature="ecore:EReference trace.ecore#//Trace/uml"/>
</genClasses>
</genPackages>
</genmodel:GenModel>

When i try to open this in the EMF Generator i get a stack overflow
exception: when i open my .log i see this pattern

at
org.eclipse.uml2.codegen.ecore.genmodel.impl.GenModelImpl.eS et(GenModelImpl.java:359)
at
org.eclipse.emf.ecore.impl.BasicEObjectImpl.eSet(BasicEObjec tImpl.java:1061)
at
org.eclipse.emf.ecore.impl.BasicEObjectImpl.eSet(BasicEObjec tImpl.java:1085)
at
org.eclipse.emf.codegen.ecore.genmodel.impl.GenBaseImpl.eSet (GenBaseImpl.java:272)
at
org.eclipse.emf.codegen.ecore.genmodel.impl.GenModelImpl.eSe t(GenModelImpl.java:6046)
at
org.eclipse.uml2.codegen.ecore.genmodel.impl.GenModelImpl.eS et(GenModelImpl.java:359)
at
org.eclipse.emf.ecore.impl.BasicEObjectImpl.eSet(BasicEObjec tImpl.java:1061)
at
org.eclipse.emf.ecore.impl.BasicEObjectImpl.eSet(BasicEObjec tImpl.java:1085)
at
org.eclipse.emf.codegen.ecore.genmodel.impl.GenBaseImpl.eSet (GenBaseImpl.java:272)
at
org.eclipse.emf.codegen.ecore.genmodel.impl.GenModelImpl.eSe t(GenModelImpl.java:6046)
at
org.eclipse.uml2.codegen.ecore.genmodel.impl.GenModelImpl.eS et(GenModelImpl.java:359)
at
org.eclipse.emf.ecore.impl.BasicEObjectImpl.eSet(BasicEObjec tImpl.java:1061)
at
org.eclipse.emf.ecore.impl.BasicEObjectImpl.eSet(BasicEObjec tImpl.java:1085)
at
org.eclipse.emf.codegen.ecore.genmodel.impl.GenBaseImpl.eSet (GenBaseImpl.java:272)
at
org.eclipse.emf.codegen.ecore.genmodel.impl.GenModelImpl.eSe t(GenModelImpl.java:6046)
at
org.eclipse.uml2.codegen.ecore.genmodel.impl.GenModelImpl.eS et(GenModelImpl.java:359)
at
org.eclipse.emf.ecore.impl.BasicEObjectImpl.eSet(BasicEObjec tImpl.java:1061)
at
org.eclipse.emf.ecore.impl.BasicEObjectImpl.eSet(BasicEObjec tImpl.java:1085)
at
org.eclipse.emf.codegen.ecore.genmodel.impl.GenBaseImpl.eSet (GenBaseImpl.java:272)
at
org.eclipse.emf.codegen.ecore.genmodel.impl.GenModelImpl.eSe t(GenModelImpl.java:6046)
at
org.eclipse.uml2.codegen.ecore.genmodel.impl.GenModelImpl.eS et(GenModelImpl.java:359)
at
org.eclipse.emf.ecore.impl.BasicEObjectImpl.eSet(BasicEObjec tImpl.java:1061)
at
org.eclipse.emf.ecore.impl.BasicEObjectImpl.eSet(BasicEObjec tImpl.java:1085)
at
org.eclipse.emf.codegen.ecore.genmodel.impl.GenBaseImpl.eSet (GenBaseImpl.java:272)
at
org.eclipse.emf.codegen.ecore.genmodel.impl.GenModelImpl.eSe t(GenModelImpl.java:6046)
at
org.eclipse.uml2.codegen.ecore.genmodel.impl.GenModelImpl.eS et(GenModelImpl.java:359)
at
org.eclipse.emf.ecore.impl.BasicEObjectImpl.eSet(BasicEObjec tImpl.java:1061)
at
org.eclipse.emf.ecore.impl.BasicEObjectImpl.eSet(BasicEObjec tImpl.java:1085)
at
org.eclipse.emf.codegen.ecore.genmodel.impl.GenBaseImpl.eSet (GenBaseImpl.java:272)
at
org.eclipse.emf.codegen.ecore.genmodel.impl.GenModelImpl.eSe t(GenModelImpl.java:6046)
at
org.eclipse.uml2.codegen.ecore.genmodel.impl.GenModelImpl.eS et(GenModelImpl.java:359)
at
org.eclipse.emf.ecore.impl.BasicEObjectImpl.eSet(BasicEObjec tImpl.java:1061)
at
org.eclipse.emf.ecore.impl.BasicEObjectImpl.eSet(BasicEObjec tImpl.java:1085)
at
org.eclipse.emf.codegen.ecore.genmodel.impl.GenBaseImpl.eSet (GenBaseImpl.java:272)
at
org.eclipse.emf.codegen.ecore.genmodel.impl.GenModelImpl.eSe t(GenModelImpl.java:6046)
at
org.eclipse.uml2.codegen.ecore.genmodel.impl.GenModelImpl.eS et(GenModelImpl.java:359)
at
org.eclipse.emf.ecore.impl.BasicEObjectImpl.eSet(BasicEObjec tImpl.java:1061)
at
org.eclipse.emf.ecore.impl.BasicEObjectImpl.eSet(BasicEObjec tImpl.java:1085)
at
org.eclipse.emf.codegen.ecore.genmodel.impl.GenBaseImpl.eSet (GenBaseImpl.java:272)
at
org.eclipse.emf.codegen.ecore.genmodel.impl.GenModelImpl.eSe t(GenModelImpl.java:6046)
at
org.eclipse.uml2.codegen.ecore.genmodel.impl.GenModelImpl.eS et(GenModelImpl.java:359)
at
org.eclipse.emf.ecore.impl.BasicEObjectImpl.eSet(BasicEObjec tImpl.java:1061)

Any help you can to help would be greatly appreciated.
Best regards,
Andrew Jackson
Previous Topic:Stack overflow exception on load resource
Next Topic:Referencing UML meta-classes from an ecore meta-model
Goto Forum:
  


Current Time: Tue Mar 19 09:21:17 GMT 2024

Powered by FUDForum. Page generated in 0.03616 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top