1 package ca.uhn.hl7v2.hoh.relay;
2
3 import org.springframework.beans.factory.InitializingBean;
4
5 import ca.uhn.hl7v2.hoh.relay.listener.IRelayListener;
6 import ca.uhn.hl7v2.hoh.relay.sender.IRelaySender;
7 import ca.uhn.hl7v2.hoh.util.Validate;
8 import ca.uhn.hl7v2.hoh.util.VersionLogger;
9 import ca.uhn.hl7v2.protocol.impl.AppRoutingDataImpl;
10
11 public class Binder implements InitializingBean {
12
13 private static final org.slf4j.Logger ourLog = org.slf4j.LoggerFactory.getLogger(Binder.class);
14
15 private static final String ourProductName = "HAPI HL7 over HTTP Relay " + VersionLogger.getVersion();
16
17 private final String myMessageType = "*";
18 private final String myProcessingId = "*";
19 private IRelayListener myRelayListener;
20 private IRelaySender myRelaySender;
21 private final String myTriggerEvent = "*";
22 private final String myVersionId = "*";
23
24
25
26
27 public void afterPropertiesSet() {
28 Validate.propertySet(myRelayListener, "listener");
29 Validate.propertySet(myRelaySender, "sender");
30
31 ourLog.info("Binding sender[{}] to listener[{}] for messages with profile[MsgType:{} / MsgTrigger:{} / Version:{} / Processing:{}]", myRelaySender.getBeanName(), myRelayListener.getBeanName(), myMessageType, myTriggerEvent, myVersionId, myProcessingId);
32
33 AppRoutingDataImpl appRoutingData = new AppRoutingDataImpl(myMessageType, myTriggerEvent, myProcessingId, myVersionId);
34 myRelayListener.registerApplication(appRoutingData, myRelaySender);
35 }
36
37 public void setListener(IRelayListener theRelayListener) {
38 myRelayListener = theRelayListener;
39 }
40
41
42
43
44
45 public void setSender(IRelaySender theRelaySender) {
46 myRelaySender = theRelaySender;
47 }
48
49
50
51
52 public static String getProductname() {
53 return ourProductName;
54 }
55
56 }