View Javadoc

    1   package org.codehaus.xfire;
    2
    3   import java.util.HashMap;
    4   import java.util.Map;
    5
    6   import org.codehaus.xfire.exchange.InExchange;
    7   import org.codehaus.xfire.exchange.InMessage;
    8   import org.codehaus.xfire.exchange.MessageExchange;
    9   import org.codehaus.xfire.exchange.OutMessage;
    10  import org.codehaus.xfire.exchange.RobustInOutExchange;
    11  import org.codehaus.xfire.handler.HandlerPipeline;
    12  import org.codehaus.xfire.service.OperationInfo;
    13  import org.codehaus.xfire.service.Service;
    14  import org.codehaus.xfire.soap.SoapConstants;
    15  import org.codehaus.xfire.transport.Session;
    16
    17  /***
    18   * Holds inforrmation about the message request and response.
    19   *
    20   * @author <a href="mailto:dan@envoisolutions.com">Dan Diephouse</a>
    21   * @since Feb 13, 2004
    22   */
    23  public class MessageContext
    24  {
    25      private Session session;
    26      private Map properties;
    27
    28      private Service service;
    29
    30      private MessageExchange exchange;
    31
    32      private HandlerPipeline inPipeline;
    33      private HandlerPipeline outPipeline;
    34      private XFire xfire;
    35
    36      public MessageContext()
    37      {
    38          properties = new HashMap();
    39      }
    40
    41      public XFire getXFire()
    42      {
    43          return xfire;
    44      }
    45
    46      public void setXFire(XFire xfire)
    47      {
    48          this.xfire = xfire;
    49      }
    50
    51      public MessageExchange createMessageExchange(OperationInfo operation)
    52      {
    53          MessageExchange ex = createMessageExchange(operation.getMEP());
    54          ex.setOperation(operation);
    55
    56          return ex;
    57      }
    58
    59      public MessageExchange createMessageExchange(String mepUri)
    60      {
    61          MessageExchange ex = null;
    62
    63          if (mepUri.equals(SoapConstants.MEP_ROBUST_IN_OUT))
    64          {
    65              ex = new RobustInOutExchange(this);
    66          }
    67          else if (mepUri.equals(SoapConstants.MEP_IN))
    68          {
    69              ex = new InExchange(this);
    70          }
    71
    72          setExchange(ex);
    73
    74          return ex;
    75      }
    76
    77      public MessageExchange getExchange()
    78      {
    79          return exchange;
    80      }
    81
    82      public void setExchange(MessageExchange exchange)
    83      {
    84          this.exchange = exchange;
    85      }
    86
    87      public OutMessage getOutMessage()
    88      {
    89          return exchange.getOutMessage();
    90      }
    91
    92      public InMessage getInMessage()
    93      {
    94          return exchange.getInMessage();
    95      }
    96
    97      public Object getProperty(Object key)
    98      {
    99          return properties.get(key);
    100     }
    101
    102     public void setProperty(Object key, Object value)
    103     {
    104         properties.put(key, value);
    105     }
    106
    107     /***
    108      * The session that this request is a part of.
    109      *
    110      * @return
    111      */
    112     public Session getSession()
    113     {
    114         return session;
    115     }
    116
    117     public void setSession(Session session)
    118     {
    119         this.session = session;
    120     }
    121
    122     /***
    123      * The service being invoked.
    124      *
    125      * @return
    126      */
    127     public Service getService()
    128     {
    129         return service;
    130     }
    131
    132     public void setService(Service service)
    133     {
    134         this.service = service;
    135     }
    136
    137     public HandlerPipeline getInPipeline()
    138     {
    139         return inPipeline;
    140     }
    141
    142     public void setInPipeline(HandlerPipeline messagePipeline)
    143     {
    144         this.inPipeline = messagePipeline;
    145     }
    146
    147     public HandlerPipeline getOutPipeline()
    148     {
    149         return outPipeline;
    150     }
    151
    152     public void setOutPipeline(HandlerPipeline outPipeline)
    153     {
    154         this.outPipeline = outPipeline;
    155     }
    156 }