content: package gov2.nist.javax2.sip;
  
  import javax2.sip.ClientTransaction;
  import javax2.sip.Dialog;
  import javax2.sip.ResponseEvent;
  import javax2.sip.message.Response;
  
  /**
   * Extension for ResponseEvent. 
   * 
   * @since v2.0
   */
  public class ResponseEventExt extends ResponseEvent {
      private ClientTransactionExt  m_originalTransaction;
      public ResponseEventExt(Object source, ClientTransactionExt clientTransaction, 
              Dialog dialog,  Response response) {
          super(source,clientTransaction,dialog,response);
          m_originalTransaction = clientTransaction;
      }
      
      /**
       * Return true if this is a forked response.
       * 
       * @return true if the response event is for a forked response.
       */
      public boolean isForkedResponse() {
          return super.getClientTransaction() == null && m_originalTransaction != null;
      }
      
      /**
       * Set the original transaction for a forked response.
       * 
       * @param originalTransaction - the original transaction for which this response event is a fork.
       */
      public void setOriginalTransaction(ClientTransactionExt originalTransaction ) {
          m_originalTransaction = originalTransaction;
      }
      
      /**
       * Get the original transaction for which this is a forked response.
       * Note that this transaction can be in a TERMINATED state.
       * 
       * @return the original clientTx for which this is a forked response.
       */
      public ClientTransactionExt getOriginalTransaction() {
          return this.m_originalTransaction;
      }
      
      
  }
  