[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Newsgroup Home]
[news.eclipse.modeling] Re: Creating objects with multi-valued children

Doug,

Please use the EMF newsgroup for basic EMF questions like this:
news://new.eclipse.org/eclipse.tools.emf
More comments below.

Doug Bercot wrote:
.. sorry in advance for cross-posting, but I'm a complete noob. I also posted this query in eclipse.modeling.mdt.

If I were to create a simple object that has a containment association with an N..N value (as shown in the "simple" model below), is there a proper place in which I can modify the generated code such that the contained objects are always of the correct number?
No.

In this example, could I modify one of the factories such that a "Car" object is always created with 4 "Tire" child objects?
No, that's a bad idea, because when the deserializer creates a new Car and then deserializes the Tires (it's generally a bad idea to given an EClass a plural name), the Car will end up with 8 wheels instead of 4.  The Copier will have the same problem.

You could add an additional factory method (by hand) that creates Tires, but don't change the default ones because the framework requires bare uninitialized objects to be created.

TIA


<?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="simple"
nsURI="http://nunjobiznezz.com/emf/simple"; nsPrefix="simple">
<eClassifiers xsi:type="ecore:EClass" name="Car">
<eStructuralFeatures xsi:type="ecore:EReference" name="tires" lowerBound="4" upperBound="4"
eType="#//Tires" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Tires"/>
</ecore:EPackage>