View Javadoc
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  	 * {@inheritDoc}
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  	 * @param theRelaySender
43  	 *            the sender to set
44  	 */
45  	public void setSender(IRelaySender theRelaySender) {
46  		myRelaySender = theRelaySender;
47  	}
48  
49  	/**
50  	 * Returns the product name
51  	 */
52  	public static String getProductname() {
53  		return ourProductName;
54  	}
55  
56  }