001 /*
002 * Created on 16-Apr-2004
003 */
004 package ca.uhn.hl7v2.protocol;
005
006 import java.util.List;
007
008 /**
009 * The operational context of a <code>Processor</code>. This defines
010 * certain resources that are not part of the <code>Processor</code>,
011 * but are needed in order to implement it, and may vary between
012 * deployments.
013 *
014 * @author <a href="mailto:bryan.tripp@uhn.on.ca">Bryan Tripp</a>
015 * @version $Revision: 1.1 $ updated on $Date: 2007-02-19 02:24:38 $ by $Author: jamesagnew $
016 */
017 public interface ProcessorContext {
018
019 /**
020 * @return the router that directs unsolicited inbound messages to
021 * the appropriate <code>Application</code>
022 */
023 public ApplicationRouter getRouter();
024
025 /**
026 * @return the object responsible for transport of remotely initiated message
027 * exchanges (normally with a remote server)
028 */
029 public TransportLayer getRemotelyDrivenTransportLayer();
030
031
032 /**
033 * @return the object responsible for transport of locally initiated message
034 * exchanges (normally with a remote server)
035 */
036 public TransportLayer getLocallyDrivenTransportLayer();
037
038 /**
039 * @return the validators that determine whether a message can be
040 * accepted for routing to the appropriate application
041 */
042 public AcceptValidator[] getValidators();
043
044 /**
045 * Adds a new validator to the list of those returned by
046 * <code>getValidators()</code>.
047 *
048 * @param theValidator the validator to add
049 */
050 public void addValidator(AcceptValidator theValidator);
051
052 /**
053 * @return a store for messages while they are being routed to the
054 * appropriate application
055 */
056 public SafeStorage getSafeStorage();
057
058 /**
059 * Returns the list of fields that are to be included as metadata whenever a <code>Message</code>
060 * is converted to a <code>Transportable</code>. Each field is a String <code>Terser</code>
061 * path.
062 *
063 * @param theMetadataFields list of <code>Terser</code> paths of metadata fields
064 */
065 public List getMetadataFields();
066
067 }