in common/src/main/java/org/apache/nemo/common/ir/IRDAG.java [195:214]
private Set<IRVertex> getVertexGroupToDelete(final IRVertex vertexToDelete) {
if (vertexToDelete instanceof RelayVertex) {
return Sets.newHashSet(vertexToDelete);
} else if (vertexToDelete instanceof SamplingVertex) {
final Set<SamplingVertex> samplingVertexGroup = samplingVertexToGroup.get(vertexToDelete);
final Set<IRVertex> converted = new HashSet<>(samplingVertexGroup.size());
for (final IRVertex sv : samplingVertexGroup) {
converted.add(sv); // explicit conversion to IRVertex is needed.. otherwise the compiler complains :(
}
return converted;
} else if (vertexToDelete instanceof MessageAggregatorVertex || vertexToDelete instanceof MessageGeneratorVertex) {
return messageVertexToGroup.get(vertexToDelete);
} else if (vertexToDelete instanceof SignalVertex) {
return Sets.newHashSet(vertexToDelete);
} else if (vertexToDelete instanceof TaskSizeSplitterVertex) {
return Sets.newHashSet(vertexToDelete);
} else {
throw new IllegalArgumentException(vertexToDelete.getId());
}
}