001 /*
002 * Created on 19-Apr-2004
003 */
004 package ca.uhn.hl7v2.protocol.impl;
005
006 import java.util.HashMap;
007 import java.util.Map;
008
009 import ca.uhn.hl7v2.protocol.Transportable;
010
011 /**
012 * Default implementation of <code>Transportable</code>.
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:26 $ by $Author: jamesagnew $
016 */
017 public class TransportableImpl implements Transportable {
018
019 private final String myMessageText;
020 private final Map<String, Object> myMetadata;
021
022 /**
023 * Creates a new instance with no associated metadata (metadata can
024 * be added later using <code>getMetadata()</code>.
025 *
026 * @param theMessageText the text of an HL7 message
027 */
028 public TransportableImpl(String theMessageText) {
029 myMessageText = theMessageText;
030 myMetadata = new HashMap<String, Object>();
031 }
032
033 /**
034 * Creates a new instance with specified metadata (further metadata can
035 * be added later using <code>getMetadata()</code>.
036 *
037 * @param theMessageText the text of an HL7 message
038 * @param theMetadata metadata associated with the message (typical examples
039 * would be selected field values for routing)
040 */
041 public TransportableImpl(String theMessageText, Map<String, Object> theMetadata) {
042 myMessageText = theMessageText;
043 myMetadata = theMetadata;
044 }
045
046 /**
047 * @see ca.uhn.hl7v2.protocol.Transportable#getMessage()
048 */
049 public String getMessage() {
050 return myMessageText;
051 }
052
053 /**
054 * @see ca.uhn.hl7v2.protocol.Transportable#getMetadata()
055 */
056 public Map<String, Object> getMetadata() {
057 return myMetadata;
058 }
059
060 }