1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.openehealth.ipf.commons.ihe.xds.core.validate;
17
18 import static org.apache.commons.lang3.Validate.noNullElements;
19 import static org.openehealth.ipf.commons.ihe.xds.core.validate.ValidationMessage.*;
20 import static org.openehealth.ipf.commons.ihe.xds.core.validate.ValidatorAssertions.*;
21
22 import java.util.List;
23
24
25
26
27
28
29
30 public class RecipientListValidator implements ValueListValidator {
31 private final XCNValidator xcnValidator = new XCNValidator();
32 private final XONValidator xonValidator = new XONValidator();
33
34 @Override
35 public void validate(List<String> values) throws XDSMetaDataException {
36 noNullElements(values, "values cannot contain null elements");
37
38
39
40 for (String value : values) {
41 metaDataAssert(!value.isEmpty(), RECIPIENT_EMPTY);
42
43 String[] parts = value.split("\\|", 4);
44 metaDataAssert((parts.length > 0) && (parts.length <= 3), INVALID_RECIPIENT, value);
45
46 if (! parts[0].isEmpty()) {
47 xonValidator.validate(parts[0]);
48 }
49
50 if ((parts.length > 1) && (! parts[1].isEmpty())) {
51 xcnValidator.validate(parts[1]);
52 }
53 }
54 }
55 }