@Override public DAG<IRVertex, IREdge> apply(final DAG<IRVertex, IREdge> dag) { final HashMap<String, Integer> groupIdToGroupSize = new HashMap<>(); dag.topologicalDo(vertex -> dag.getIncomingEdgesOf(vertex) .forEach(e -> { final Optional<DuplicateEdgeGroupPropertyValue> duplicateEdgeGroupProperty = e.getPropertyValue(DuplicateEdgeGroupProperty.class); if (duplicateEdgeGroupProperty.isPresent()) { final String groupId = duplicateEdgeGroupProperty.get().getGroupId(); final Integer currentCount = groupIdToGroupSize.getOrDefault(groupId, 0); groupIdToGroupSize.put(groupId, currentCount + 1); } })); dag.topologicalDo(vertex -> dag.getIncomingEdgesOf(vertex) .forEach(e -> { final Optional<DuplicateEdgeGroupPropertyValue> duplicateEdgeGroupProperty = e.getPropertyValue(DuplicateEdgeGroupProperty.class); if (duplicateEdgeGroupProperty.isPresent()) { final String groupId = duplicateEdgeGroupProperty.get().getGroupId(); if (groupIdToGroupSize.containsKey(groupId)) { duplicateEdgeGroupProperty.get().setGroupSize(groupIdToGroupSize.get(groupId)); } } })); return dag; } }
@Override public DAG<IRVertex, IREdge> apply(final DAG<IRVertex, IREdge> dag) { final HashMap<String, Integer> groupIdToGroupSize = new HashMap<>(); dag.topologicalDo(vertex -> dag.getIncomingEdgesOf(vertex) .forEach(e -> { final Optional<DuplicateEdgeGroupPropertyValue> duplicateEdgeGroupProperty = e.getPropertyValue(DuplicateEdgeGroupProperty.class); if (duplicateEdgeGroupProperty.isPresent()) { final String groupId = duplicateEdgeGroupProperty.get().getGroupId(); final Integer currentCount = groupIdToGroupSize.getOrDefault(groupId, 0); groupIdToGroupSize.put(groupId, currentCount + 1); } })); dag.topologicalDo(vertex -> dag.getIncomingEdgesOf(vertex) .forEach(e -> { final Optional<DuplicateEdgeGroupPropertyValue> duplicateEdgeGroupProperty = e.getPropertyValue(DuplicateEdgeGroupProperty.class); if (duplicateEdgeGroupProperty.isPresent()) { final String groupId = duplicateEdgeGroupProperty.get().getGroupId(); if (groupIdToGroupSize.containsKey(groupId)) { duplicateEdgeGroupProperty.get().setGroupSize(groupIdToGroupSize.get(groupId)); } } })); return dag; } }
e.getPropertyValue(DuplicateEdgeGroupProperty.class); if (duplicateEdgeGroupProperty.isPresent()) { final String duplicateGroupId = duplicateEdgeGroupProperty.get().getGroupId(); edgeGroupToIrEdge.computeIfAbsent(duplicateGroupId, k -> new ArrayList<>()).add(e);
e.getPropertyValue(DuplicateEdgeGroupProperty.class); if (duplicateEdgeGroupProperty.isPresent()) { final String duplicateGroupId = duplicateEdgeGroupProperty.get().getGroupId(); edgeGroupToIrEdge.computeIfAbsent(duplicateGroupId, k -> new ArrayList<>()).add(e);