001: /**
002: * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
003: * Unpublished - rights reserved under the Copyright Laws of the United States.
004: * Copyright © 2003 Sun Microsystems, Inc. All rights reserved.
005: * Copyright © 2005 BEA Systems, Inc. All rights reserved.
006: *
007: * Use is subject to license terms.
008: *
009: * This distribution may include materials developed by third parties.
010: *
011: * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
012: *
013: * Module Name : JSIP Specification
014: * File Name : TransactionTerminatedEvent.java
015: * Author : Phelim O'Doherty
016: *
017: * HISTORY
018: * Version Date Author Comments
019: * 1.2 03/05/2005 M. Ranganathan New class
020: *
021: *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
022: */package javax.sip;
023:
024: import java.util.EventObject;
025:
026: /**
027: *
028: * TransactionTerminatedEvent is delivered to the Listener when the
029: * transaction transitions to the terminated state. An implementation
030: * is expected to deliver this event to the listener when it discards
031: * all internal book keeping records for a given transaction - thereby
032: * allowing the Listener to unmap its own data structures.
033: *
034: * @author BEA Systems, NIST
035: * @since v1.2
036: *
037: */
038: public class TransactionTerminatedEvent extends EventObject {
039:
040: /**
041: * Constructs a TransactionTerminatedEvent to indicate a server retransmission
042: * or transaction timeout.
043: *
044: * @param source - the source of TransactionTerminatedEvent (the SipProvider associated with the transaction).
045: * @param serverTransaction - the server transaction that timed out.
046: */
047: public TransactionTerminatedEvent(Object source,
048: ServerTransaction serverTransaction) {
049: super (source);
050: m_serverTransaction = serverTransaction;
051: m_isServerTransaction = true;
052:
053: }
054:
055: /**
056: * Constructs a TransactionTerminatedEvent to indicate a client
057: * retransmission or transaction timeout.
058: *
059: * @param source - source of TransactionTerminatedEvent (the SipProvider associated with the transaction).
060: * @param clientTransaction - the client transaction that timed out.
061: */
062: public TransactionTerminatedEvent(Object source,
063: ClientTransaction clientTransaction) {
064: super (source);
065: m_clientTransaction = clientTransaction;
066: m_isServerTransaction = false;
067: }
068:
069: /**
070: * Gets the server transaction associated with this TransactionTerminatedEvent.
071: *
072: * @return server transaction associated with this TransactionTerminatedEvent,
073: * or null if this event is specific to a client transaction.
074: */
075: public ServerTransaction getServerTransaction() {
076: return m_serverTransaction;
077: }
078:
079: /**
080: * Gets the client transaction associated with this TransactionTerminatedEvent.
081: *
082: * @return client transaction associated with this TransactionTerminatedEvent,
083: * or null if this event is specific to a server transaction.
084: */
085: public ClientTransaction getClientTransaction() {
086: return m_clientTransaction;
087: }
088:
089: /**
090: * Indicates if the transaction associated with this
091: * TransactionTerminatedEvent is a server transaction.
092: *
093: * @return returns true if a server transaction or false if a client
094: * transaction.
095: */
096: public boolean isServerTransaction() {
097: return m_isServerTransaction;
098: }
099:
100: // internal variables
101: private boolean m_isServerTransaction;
102: private ServerTransaction m_serverTransaction = null;
103: private ClientTransaction m_clientTransaction = null;
104:
105: }
|