[Teneo] Dynamic classes are mapped as static/generated [message #607002] |
Sun, 17 June 2007 12:51 |
Eclipse User |
|
|
|
I was unable to find EMFT category in bugzilla so I am posting this here.
Detection whether model class is dynamic or static is broken with latest
Teneo CVS and EMF 2.3. Dynamic classes get <class
name="org.eclipse.emf.ecore.impl.DynamicEObjectImpl" ... > mapping,
which fails.
MappingContext#isDynamic is set to false for dynamic classes.
ERuntime#computeConcreteInstanceMapping detects that instance was
created and takes that as evidence that class is dynamic. But this just
puts DynamicEObjectImpl in eclassifierToConcrete map. My quick fix below
was to check getInstanceClass() as well
for (EClassifier eclassifier : epack.getEClassifiers()) {
if (!(eclassifier instanceof EClass))
continue;
// BEGIN FIX
if(eclassifier.getInstanceClass() == null)
continue;
// END FIX
final Object instance = create((EClass)eclassifier);
if (instance != null) {
eclassifierToConcrete.put((EClass) eclassifier, instance
.getClass());
concreteToEClass.put(instance.getClass(),
(EClass) eclassifier);
}
I
-a
|
|
|
Powered by
FUDForum. Page generated in 0.03088 seconds