package dslab.rmi.stub.dmtp; import dslab.routing.Address; import java.util.ArrayList; import java.util.List; import static dslab.util.Utils.listElements; public class AddressValidationResult { private final List
valid; private final List invalid; private final List ignored; public AddressValidationResult(ArrayList valid, ArrayList invalid, ArrayList ignored) { this.valid = valid; this.invalid = invalid; this.ignored = ignored; } public List getValid() { return valid; } public boolean hasInvalid() { return !invalid.isEmpty(); } public AddressValidationException asException() { return new AddressValidationException(invalid); } public List getValidAndIgnored() { var result = new ArrayList(); result.addAll(ignored); result.addAll(valid); return result; } public static class AddressValidationException extends Exception { private final List invalidAddresses; public AddressValidationException(List invalidAddresses) { super("The following recipients were invalid: " + listElements(invalidAddresses)); this.invalidAddresses = invalidAddresses; } public List getInvalidAddresses() { return invalidAddresses; } } }