diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/extension/base/factory/.ratings b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/extension/base/factory/.ratings index 34e8ebcbd069598e9547d1358ca0b74f5523a123..cdefb51652be0a3f0bab65ab20cb047d26514212 100644 --- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/extension/base/factory/.ratings +++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/extension/base/factory/.ratings @@ -1,4 +1,4 @@ DelegatingControllerFactory.java ad214d83b5821b39862b7c382c91a13c3dfddbd0 YELLOW DelegatingFactoryBase.java f421742267610f41bb6196346026d2f239d90ed0 YELLOW -DelegatingModelFactory.java ea7c3e1c612101bb3ba71d7dc97893783c0319a3 YELLOW +DelegatingModelFactory.java 87ad29bc457b6316392625fb63221039bbb7c616 YELLOW DelegatingVisualFactory.java 7e834acd12ae4d1c2b2b32a5456dc9f2b6d4e466 YELLOW diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/extension/base/factory/DelegatingModelFactory.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/extension/base/factory/DelegatingModelFactory.java index ea7c3e1c612101bb3ba71d7dc97893783c0319a3..87ad29bc457b6316392625fb63221039bbb7c616 100644 --- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/extension/base/factory/DelegatingModelFactory.java +++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/extension/base/factory/DelegatingModelFactory.java @@ -55,9 +55,9 @@ public class DelegatingModelFactory extends DelegatingFactoryBase<IModelFactory> constructFactory(Class<? extends IModelFactory> delegateFactory) { Constructor<? extends IModelFactory> ctor = null; try { - // TODO(AD): Avoid that cast... - ctor = getMatchingAccessibleConstructor(delegateFactory, - getInterfaceType((EObject)editedObject)); + Class<?> ctorParamType = (editedObject instanceof EObject) + ? getInterfaceType((EObject)editedObject) : editedObject.getClass(); + ctor = getMatchingAccessibleConstructor(delegateFactory, ctorParamType); try { return Optional.of(ctor.newInstance(editedObject)); } catch(InstantiationException | IllegalAccessException | IllegalArgumentException |