1. /*
  2. * The Apache Software License, Version 1.1
  3. *
  4. * Copyright (c) 1999 The Apache Software Foundation. All rights
  5. * reserved.
  6. *
  7. * Redistribution and use in source and binary forms, with or without
  8. * modification, are permitted provided that the following conditions
  9. * are met:
  10. *
  11. * 1. Redistributions of source code must retain the above copyright
  12. * notice, this list of conditions and the following disclaimer.
  13. *
  14. * 2. Redistributions in binary form must reproduce the above copyright
  15. * notice, this list of conditions and the following disclaimer in
  16. * the documentation and/or other materials provided with the
  17. * distribution.
  18. *
  19. * 3. The end-user documentation included with the redistribution, if
  20. * any, must include the following acknowlegement:
  21. * "This product includes software developed by the
  22. * Apache Software Foundation (http://www.apache.org/)."
  23. * Alternately, this acknowlegement may appear in the software itself,
  24. * if and wherever such third-party acknowlegements normally appear.
  25. *
  26. * 4. The names "The Jakarta Project", "Tomcat", and "Apache Software
  27. * Foundation" must not be used to endorse or promote products derived
  28. * from this software without prior written permission. For written
  29. * permission, please contact apache@apache.org.
  30. *
  31. * 5. Products derived from this software may not be called "Apache"
  32. * nor may "Apache" appear in their names without prior written
  33. * permission of the Apache Group.
  34. *
  35. * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  36. * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  37. * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  38. * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  39. * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  40. * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  41. * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  42. * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  43. * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  44. * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  45. * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  46. * SUCH DAMAGE.
  47. * ====================================================================
  48. *
  49. * This software consists of voluntary contributions made by many
  50. * individuals on behalf of the Apache Software Foundation. For more
  51. * information on the Apache Software Foundation, please see
  52. * <http://www.apache.org/>.
  53. *
  54. * ====================================================================
  55. *
  56. * This source code implements specifications defined by the Java
  57. * Community Process. In order to remain compliant with the specification
  58. * DO NOT add / change / or delete method signatures!
  59. */
  60. package javax.servlet.http;
  61. import java.util.EventObject;
  62. /**
  63. *
  64. * Events of this type are either sent to an object that implements
  65. * {@link HttpSessionBindingListener} when it is bound or
  66. * unbound from a session, or to a {@link HttpSessionAttributeListener}
  67. * that has been configured in the deployment descriptor when any attribute is
  68. * bound, unbound or replaced in a session.
  69. *
  70. * <p>The session binds the object by a call to
  71. * <code>HttpSession.setAttribute</code> and unbinds the object
  72. * by a call to <code>HttpSession.removeAttribute</code>.
  73. *
  74. *
  75. *
  76. * @author Various
  77. * @version $Version$
  78. *
  79. * @see HttpSession
  80. * @see HttpSessionBindingListener
  81. * @see HttpSessionAttributeListener
  82. */
  83. public class HttpSessionBindingEvent extends HttpSessionEvent {
  84. /* The name to which the object is being bound or unbound */
  85. private String name;
  86. /* The object is being bound or unbound */
  87. private Object value;
  88. /**
  89. *
  90. * Constructs an event that notifies an object that it
  91. * has been bound to or unbound from a session.
  92. * To receive the event, the object must implement
  93. * {@link HttpSessionBindingListener}.
  94. *
  95. *
  96. *
  97. * @param session the session to which the object is bound or unbound
  98. *
  99. * @param name the name with which the object is bound or unbound
  100. *
  101. * @see #getName
  102. * @see #getSession
  103. *
  104. */
  105. public HttpSessionBindingEvent(HttpSession session, String name) {
  106. super(session);
  107. this.name = name;
  108. }
  109. /**
  110. *
  111. * Constructs an event that notifies an object that it
  112. * has been bound to or unbound from a session.
  113. * To receive the event, the object must implement
  114. * {@link HttpSessionBindingListener}.
  115. *
  116. *
  117. *
  118. * @param session the session to which the object is bound or unbound
  119. *
  120. * @param name the name with which the object is bound or unbound
  121. *
  122. * @see #getName
  123. * @see #getSession
  124. *
  125. */
  126. public HttpSessionBindingEvent(HttpSession session, String name, Object value) {
  127. super(session);
  128. this.name = name;
  129. this.value = value;
  130. }
  131. /** Return the session that changed. */
  132. public HttpSession getSession () {
  133. return super.getSession();
  134. }
  135. /**
  136. *
  137. * Returns the name with which the attribute is bound to or
  138. * unbound from the session.
  139. *
  140. *
  141. * @return a string specifying the name with which
  142. * the object is bound to or unbound from
  143. * the session
  144. *
  145. *
  146. */
  147. public String getName() {
  148. return name;
  149. }
  150. /**
  151. * Returns the value of the attribute that has been added, removed or replaced.
  152. * If the attribute was added (or bound), this is the value of the attribute. If the attrubute was
  153. * removed (or unbound), this is the value of the removed attribute. If the attribute was replaced, this
  154. * is the old value of the attribute.
  155. *
  156. * @since 2.3
  157. */
  158. public Object getValue() {
  159. return this.value;
  160. }
  161. }