Hi,
i have troubles to create a dynamic model with a list that may contain one or more instances of the same object:
public static <T> EList<T> createList() {
EcoreFactory theCoreFactory = EcoreFactory.eINSTANCE;
EPackage emfTabelPackage = theCoreFactory.createEPackage();
emfTabelPackage.setName("emftable");
emfTabelPackage.setNsPrefix("emftable");
emfTabelPackage.setNsURI("emftable");
EClass listOwnerClass = theCoreFactory.createEClass();
listOwnerClass.setName("ListOwner");
EReference list = theCoreFactory.createEReference();
list.setName("elements");
list.setEType(EcorePackage.eINSTANCE.getEObject());
list.setUpperBound(EStructuralFeature.UNBOUNDED_MULTIPLICITY);
list.setContainment(false);
list.setUnique(false); // <- doesn't work?
listOwnerClass.getEStructuralFeatures().add(list);
emfTabelPackage.getEClassifiers().add(listOwnerClass);
EFactory emfTableFactoryInstance = emfTabelPackage.getEFactoryInstance();
EObject eObject = emfTableFactoryInstance.create(listOwnerClass);
EList<T> ret = (EList<T>) eObject.eGet(list);
return ret;
}
public static void main(String[] args) {
EList<EObject> list = EmfTable.createList();
EObject createEObject = EcoreFactory.eINSTANCE.createEObject();
list.add(createEObject);
list.add(createEObject);
System.err.println(list.size()); // Should be two, but is one
}
The list always contains only one element.
What went wrong?
Cheers
Ulrich