1package gov.nist.javax.sip;
2
3import javax.sip.ClientTransaction;
4import javax.sip.Dialog;
5import javax.sip.ResponseEvent;
6import javax.sip.message.Response;
7
8/**
9 * Extension for ResponseEvent.
10 *
11 * @since v2.0
12 */
13public class ResponseEventExt extends ResponseEvent {
14    private ClientTransactionExt  m_originalTransaction;
15    public ResponseEventExt(Object source, ClientTransactionExt clientTransaction,
16            Dialog dialog,  Response response) {
17        super(source,clientTransaction,dialog,response);
18        m_originalTransaction = clientTransaction;
19    }
20
21    /**
22     * Return true if this is a forked response.
23     *
24     * @return true if the response event is for a forked response.
25     */
26    public boolean isForkedResponse() {
27        return super.getClientTransaction() == null && m_originalTransaction != null;
28    }
29
30    /**
31     * Set the original transaction for a forked response.
32     *
33     * @param originalTransaction - the original transaction for which this response event is a fork.
34     */
35    public void setOriginalTransaction(ClientTransactionExt originalTransaction ) {
36        m_originalTransaction = originalTransaction;
37    }
38
39    /**
40     * Get the original transaction for which this is a forked response.
41     * Note that this transaction can be in a TERMINATED state.
42     *
43     * @return the original clientTx for which this is a forked response.
44     */
45    public ClientTransactionExt getOriginalTransaction() {
46        return this.m_originalTransaction;
47    }
48
49
50}
51