From 523f24ae659c435e09fe7ff3c8770e54e76de490 Mon Sep 17 00:00:00 2001 From: Alexander Diewald <diewald@fortiss.org> Date: Tue, 17 Dec 2019 16:56:34 +0100 Subject: [PATCH] JFX editors: Fix type resolution for constructing IModelFactories Issue-Ref: 3883 Issue-Url: https://af3-developer.fortiss.org/issues/3883 Signed-off-by: Alexander Diewald <diewald@fortiss.org> --- .../tooling/kernel/ui/extension/base/factory/.ratings | 2 +- .../ui/extension/base/factory/DelegatingModelFactory.java | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) 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 34e8ebcbd..cdefb5165 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 ea7c3e1c6..87ad29bc4 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 | -- GitLab