@Override
@SuppressWarnings("unchecked")
public void validate(final Diagram diagram,
final Consumer<Collection<DiagramElementViolation<RuleViolation>>> resultConsumer) {
final Graph graph = diagram.getGraph();
final List<DiagramElementViolation<RuleViolation>> violations = new LinkedList<>();
graphValidator.validate(graph,
Optional.empty(),
Optional.of((g, v) -> consumeBeanAndViolations(() -> violations).accept(g,
v)),
Optional.of((n, v) -> consumeBeanAndViolations(() -> violations).accept(n,
v)),
Optional.of((e, v) -> consumeBeanAndViolations(() -> violations).accept(e,
v)),
vs -> resultConsumer.accept(violations)
);
}