From 16267426d407e0037631a2dc87c9818ed065b421 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Fournier?= Date: Tue, 29 Jan 2019 19:01:24 +0100 Subject: [PATCH] Fetch the type of TypeNode reflectively --- .../fxdesigner/NodeInfoPanelController.java | 7 +++--- .../util/fxdesigner/util/DesignerUtil.java | 24 +++++++++++++++++++ 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/pmd-ui/src/main/java/net/sourceforge/pmd/util/fxdesigner/NodeInfoPanelController.java b/pmd-ui/src/main/java/net/sourceforge/pmd/util/fxdesigner/NodeInfoPanelController.java index 5fc874fbc4..efd2554069 100644 --- a/pmd-ui/src/main/java/net/sourceforge/pmd/util/fxdesigner/NodeInfoPanelController.java +++ b/pmd-ui/src/main/java/net/sourceforge/pmd/util/fxdesigner/NodeInfoPanelController.java @@ -26,6 +26,7 @@ import net.sourceforge.pmd.lang.symboltable.NameDeclaration; import net.sourceforge.pmd.util.fxdesigner.app.AbstractController; import net.sourceforge.pmd.util.fxdesigner.app.NodeSelectionSource; import net.sourceforge.pmd.util.fxdesigner.model.MetricResult; +import net.sourceforge.pmd.util.fxdesigner.util.DesignerUtil; import net.sourceforge.pmd.util.fxdesigner.util.beans.SettingsPersistenceUtil.PersistentProperty; import net.sourceforge.pmd.util.fxdesigner.util.controls.ScopeHierarchyTreeCell; import net.sourceforge.pmd.util.fxdesigner.util.controls.ScopeHierarchyTreeItem; @@ -242,10 +243,8 @@ public class NodeInfoPanelController extends AbstractController m.getReturnType() == Class.class) + .map(m -> { + try { + return m.invoke(node); + } catch (IllegalAccessException | InvocationTargetException e) { + return null; + } + }).map(type -> (Class) type); + } catch (NoSuchMethodException e) { + return Optional.empty(); + } + } }