Control (@NotNull JComponent c, @NotNull TreePath path) { Function<@NotNull TreePath, @Nullable Control> controlResolver = ClientProperty.get(c, Control.CUSTOM_CONTROL); Control resolvedControl = controlResolver != null ? controlResolver.apply(path) : myDefaultControl; return ObjectUtils.chooseNotNull(resolvedControl, myDefaultControl); }