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<Address> valid; private final List<Address> invalid; private final List<Address> ignored; public AddressValidationResult(ArrayList<Address> valid, ArrayList<Address> invalid, ArrayList<Address> ignored) { this.valid = valid; this.invalid = invalid; this.ignored = ignored; } public List<Address> getValid() { return valid; } public boolean hasInvalid() { return !invalid.isEmpty(); } public AddressValidationException asException() { return new AddressValidationException(invalid); } public List<Address> getValidAndIgnored() { var result = new ArrayList<Address>(); result.addAll(ignored); result.addAll(valid); return result; } public static class AddressValidationException extends Exception { private final List<Address> invalidAddresses; public AddressValidationException(List<Address> invalidAddresses) { super("The following recipients were invalid: " + listElements(invalidAddresses)); this.invalidAddresses = invalidAddresses; } public List<Address> getInvalidAddresses() { return invalidAddresses; } } }