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 ca.uhn.hl7v2.util.Terser;
22 import org.apache.camel.Exchange;
23 import org.apache.camel.Expression;
24 import org.openehealth.ipf.modules.hl7.HL7v2Exception;
25
26
27
28
29 public class TerserSetExpression implements Expression {
30
31 private final String spec;
32 private final Expression value;
33
34 public TerserSetExpression(String spec, Expression value) {
35 super();
36 this.spec = spec;
37 this.value = value;
38 }
39
40 @Override
41 public <T> T evaluate(Exchange exchange, Class<T> type) {
42 try {
43 Message msg = HL7v2.bodyMessage(exchange);
44 new Terser(msg).set(spec, value.evaluate(exchange, String.class));
45 return (T)msg;
46 } catch (HL7Exception e) {
47 throw new HL7v2Exception(e);
48 }
49 }
50
51
52 public String getDescription() {
53
54 return "";
55 }
56
57 }