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.query;
17
18 import org.openehealth.ipf.commons.ihe.xds.core.ebxml.EbXMLAdhocQueryRequest;
19 import org.openehealth.ipf.commons.ihe.xds.core.metadata.DocumentEntryType;
20 import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.QueryParameter;
21 import org.openehealth.ipf.commons.ihe.xds.core.transform.requests.query.QuerySlotHelper;
22 import org.openehealth.ipf.commons.ihe.xds.core.validate.XDSMetaDataException;
23
24 import java.util.List;
25
26 import static org.openehealth.ipf.commons.ihe.xds.core.validate.ValidationMessage.INVALID_QUERY_PARAMETER_VALUE;
27 import static org.openehealth.ipf.commons.ihe.xds.core.validate.ValidationMessage.MISSING_REQUIRED_QUERY_PARAMETER;
28 import static org.openehealth.ipf.commons.ihe.xds.core.validate.ValidatorAssertions.metaDataAssert;
29
30
31
32
33
34 public class DocumentEntryTypeValidation implements QueryParameterValidation {
35 private final QueryParameter param = QueryParameter.DOC_ENTRY_TYPE;
36
37 @Override
38 public void validate(EbXMLAdhocQueryRequest request) throws XDSMetaDataException {
39 List<String> slotValues = request.getSlotValues(param.getSlotName());
40 for (String slotValue : slotValues) {
41 metaDataAssert(slotValue != null, MISSING_REQUIRED_QUERY_PARAMETER, param);
42 }
43
44 QuerySlotHelper slots = new QuerySlotHelper(request);
45 List<DocumentEntryType> list = slots.toDocumentEntryType(param);
46
47 if (list != null) {
48 for (DocumentEntryType type : list) {
49 metaDataAssert(type != null, INVALID_QUERY_PARAMETER_VALUE, param);
50 }
51 }
52 }
53 }