1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.openehealth.ipf.platform.camel.hl7;
18
19 import ca.uhn.hl7v2.HL7Exception;
20 import ca.uhn.hl7v2.model.Message;
21 import org.apache.camel.Exchange;
22 import org.apache.camel.Expression;
23 import org.openehealth.ipf.modules.hl7.HL7v2Exception;
24 import org.openehealth.ipf.modules.hl7.message.MessageUtils;
25
26
27
28
29 class ResponseExpression implements Expression {
30
31 private final String eventType;
32 private final String triggerEvent;
33
34 public ResponseExpression(String eventType, String triggerEvent) {
35 this.eventType = eventType;
36 this.triggerEvent = triggerEvent;
37 }
38
39 @Override
40 public <T> T evaluate(Exchange exchange, Class<T> type) {
41 try {
42 Message msg = HL7v2.bodyMessage(exchange);
43 Message result = MessageUtils.response(msg, eventType, triggerEvent);
44 return type.cast(result);
45 } catch (HL7Exception e) {
46 throw new HL7v2Exception(e);
47 }
48
49 }
50 }