@Override public Failure build() { return new Failure( reason, message, items); }
/** * Obtains a failure for a non-empty collection of failure items. * * @param items the failures, not empty * @return the failure */ public static Failure of(Collection<FailureItem> items) { ArgChecker.notEmpty(items, "items"); Set<FailureItem> itemSet = ImmutableSet.copyOf(items); String message = itemSet.stream() .map(FailureItem::getMessage) .collect(Collectors.joining(", ")); FailureReason reason = itemSet.stream() .map(FailureItem::getReason) .reduce((s1, s2) -> s1 == s2 ? s1 : FailureReason.MULTIPLE).get(); return new Failure(reason, message, itemSet); }
/** * Obtains a failure for a single failure item. * * @param item the failure item * @return the failure */ public static Failure of(FailureItem item) { return new Failure(item.getReason(), item.getMessage(), ImmutableSet.of(item)); }