001    /*
002     * Created on 16-May-2005
003     */
004    package ca.uhn.hl7v2.protocol.impl;
005    
006    import java.util.Map;
007    
008    import ca.uhn.hl7v2.HL7Exception;
009    import ca.uhn.hl7v2.app.Application;
010    import ca.uhn.hl7v2.app.ApplicationException;
011    import ca.uhn.hl7v2.model.Message;
012    import ca.uhn.hl7v2.protocol.ReceivingApplication;
013    import ca.uhn.hl7v2.protocol.ReceivingApplicationException;
014    
015    /**
016     * Wraps a ca.uhn.hl7v2.app.Application as a ca.uhn.hl7v2.protocol.ReceivingApplication. 
017     * ReceivingApplication replaces Application with HAPI 0.5.
018     *  
019     * @author <a href="mailto:bryan.tripp@uhn.on.ca">Bryan Tripp</a>
020     * @version $Revision: 1.1 $ updated on $Date: 2007/02/19 02:24:26 $ by $Author: jamesagnew $
021     */
022    public class AppWrapper implements ReceivingApplication {
023    
024        private Application myApplication;
025        
026        /**
027         * @param theApplication an Application to wrap as a ReceivingApplication.  
028         */
029        public AppWrapper(Application theApplication) {
030            myApplication = theApplication;
031        }
032    
033        /** 
034         * @see ca.uhn.hl7v2.protocol.ReceivingApplication#processMessage(ca.uhn.hl7v2.model.Message, java.util.Map)
035         */
036        public Message processMessage(Message theMessage, Map theMetadata) 
037                throws ReceivingApplicationException, HL7Exception {
038            Message result =  null;
039            
040            try {
041                result = myApplication.processMessage(theMessage);
042            } catch (ApplicationException e) {
043                throw new ReceivingApplicationException(e);
044            }
045            
046            return result;
047        }
048    
049        /** 
050         * @see ca.uhn.hl7v2.protocol.ReceivingApplication#canProcess(ca.uhn.hl7v2.model.Message)
051         */
052        public boolean canProcess(Message theMessage) {
053            return myApplication.canProcess(theMessage);
054        }
055    
056    }