void (int[] values, @NotNull List<List<Integer>> edgeIndices, @NotNull List<List<StatEdge>> caseEdges, @NotNull List<List<@Nullable Exprent>> caseValues) { for (List<Integer> indices : edgeIndices) { List<StatEdge> edges = new ArrayList<>(indices.size()); List<Exprent> valueExprents = new ArrayList<>(indices.size()); List<StatEdge> firstSuccessors = first.getSuccessorEdges(EdgeType.DIRECT_ALL); for (Integer in : indices) { int index = in == firstSuccessors.size() ? 0 : in; edges.add(firstSuccessors.get(index)); valueExprents.add(index == 0 ? null : new ConstExprent(values[index - 1], false, null)); } caseEdges.add(edges); caseValues.add(valueExprents); } }