1 /* 2 * Created on 16-Apr-2004 3 */ 4 package ca.uhn.hl7v2.protocol; 5 6 import java.util.List; 7 8 /** 9 * The operational context of a <code>Processor</code>. This defines 10 * certain resources that are not part of the <code>Processor</code>, 11 * but are needed in order to implement it, and may vary between 12 * deployments. 13 * 14 * @author <a href="mailto:bryan.tripp@uhn.on.ca">Bryan Tripp</a> 15 * @version $Revision: 1.1 $ updated on $Date: 2007-02-19 02:24:38 $ by $Author: jamesagnew $ 16 */ 17 public interface ProcessorContext { 18 19 /** 20 * @return the router that directs unsolicited inbound messages to 21 * the appropriate <code>Application</code> 22 */ 23 ApplicationRouter getRouter(); 24 25 /** 26 * @return the object responsible for transport of remotely initiated message 27 * exchanges (normally with a remote server) 28 */ 29 TransportLayer getRemotelyDrivenTransportLayer(); 30 31 32 /** 33 * @return the object responsible for transport of locally initiated message 34 * exchanges (normally with a remote server) 35 */ 36 TransportLayer getLocallyDrivenTransportLayer(); 37 38 /** 39 * @return the validators that determine whether a message can be 40 * accepted for routing to the appropriate application 41 */ 42 AcceptValidator[] getValidators(); 43 44 /** 45 * Adds a new validator to the list of those returned by 46 * <code>getValidators()</code>. 47 * 48 * @param theValidator the validator to add 49 */ 50 void addValidator(AcceptValidator theValidator); 51 52 /** 53 * @return a store for messages while they are being routed to the 54 * appropriate application 55 */ 56 SafeStorage getSafeStorage(); 57 58 /** 59 * Returns the list of fields that are to be included as metadata whenever a <code>Message</code> 60 * is converted to a <code>Transportable</code>. Each field is a String <code>Terser</code> 61 * path. 62 */ 63 List<String> getMetadataFields(); 64 65 }