Result (@NotNull Map<TraceElement, List<TraceElement>> direct, @NotNull Map<TraceElement, List<TraceElement>> reverse) { return new Result() { @NotNull @Override public Map<TraceElement, List<TraceElement>> getDirectOrder() { return direct; } @NotNull @Override public Map<TraceElement, List<TraceElement>> getReverseOrder() { return reverse; } }; }