Object (@NotNull String dataId) { if (ExclusionHandler.EXCLUSION_HANDLER.is(dataId)) { return myExclusionHandler; } if (CommonDataKeys.NAVIGATABLE.is(dataId)) { List<FragmentNode> selectedNodes = myTree.getSelectedNodes(); if (selectedNodes.size() == 1) { return Optional.ofNullable(selectedNodes.get(0)) .map(FragmentNode::getNavigatable) .map(n -> new Navigatable[]{n}) .orElse(null); } } if (CommonDataKeys.NAVIGATABLE_ARRAY.is(dataId)) { List<FragmentNode> selectedNodes = myTree.getSelectedNodes(); if (!selectedNodes.isEmpty()) { return StreamEx.of(selectedNodes) .map(FragmentNode::getNavigatable) .nonNull() .toArray(Navigatable[]::new); } } return null; }