1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.openehealth.ipf.commons.ihe.core.atna;
17
18 import lombok.Getter;
19 import lombok.extern.slf4j.Slf4j;
20 import org.openehealth.ipf.commons.audit.AuditContext;
21 import org.openehealth.ipf.commons.audit.marshal.dicom.Current;
22 import org.openehealth.ipf.commons.audit.model.AuditMessage;
23 import org.openehealth.ipf.commons.audit.queue.AbstractMockedAuditMessageQueue;
24 import org.openehealth.ipf.commons.xml.XsdValidator;
25
26 import java.util.ArrayList;
27 import java.util.Collections;
28 import java.util.List;
29
30 import static org.openehealth.ipf.commons.xml.XmlUtils.source;
31
32
33
34
35
36
37
38
39 @Slf4j
40 public class MockedAuditMessageQueue implements AbstractMockedAuditMessageQueue {
41
42 private static final String NEW_VALIDATION_SCHEMA = "/atna2.xsd";
43 private XsdValidator validator = new XsdValidator();
44 private final boolean needValidation;
45
46 @Getter
47 List<AuditMessage> messages = Collections.synchronizedList(new ArrayList<>());
48
49 public MockedAuditMessageQueue() {
50 this(true);
51 }
52
53 public MockedAuditMessageQueue(boolean needValidation) {
54 super();
55 this.needValidation = needValidation;
56 }
57
58 @Override
59 public void audit(AuditContext auditContext, AuditMessage... auditMessages) {
60 for (AuditMessage message : auditMessages) {
61 String s = Current.toString(message, true);
62 log.debug(s);
63 if (needValidation) {
64 validator.validate(source(s), NEW_VALIDATION_SCHEMA);
65 }
66 messages.add(message);
67 }
68 }
69
70 @Override
71 public void clear() {
72 messages.clear();
73 }
74 }