List<GraphEdge> (int nodeIndex, @NotNull EdgeFilter filter) { assertNotUnderModification(); List<GraphEdge> result = new SmartList<>(); int delegateIndex = myNodesMap.getLongIndex(nodeIndex); // add delegate edges for (GraphEdge delegateEdge : myDelegatedGraph.getAdjacentEdges(delegateIndex, filter)) { Integer compiledUpIndex = compiledNodeIndex(delegateEdge.getUpNodeIndex()); Integer compiledDownIndex = compiledNodeIndex(delegateEdge.getDownNodeIndex()); if (isVisibleEdge(compiledUpIndex, compiledDownIndex)) result.add(createEdge(delegateEdge, compiledUpIndex, compiledDownIndex)); } result.addAll(myEdgeStorageWrapper.getAdjacentEdges(nodeIndex, filter)); return result; }