001 /*
002 * Copyright 2004 The Apache Software Foundation
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016
017 package javax.servlet.http;
018
019 /**
020 *
021 * Events of this type are either sent to an object that implements
022 * {@link HttpSessionBindingListener} when it is bound or
023 * unbound from a session, or to a {@link HttpSessionAttributeListener}
024 * that has been configured in the deployment descriptor when any attribute is
025 * bound, unbound or replaced in a session.
026 *
027 * <p>The session binds the object by a call to
028 * <code>HttpSession.setAttribute</code> and unbinds the object
029 * by a call to <code>HttpSession.removeAttribute</code>.
030 *
031 *
032 *
033 * @author Various
034 * @version $Version$
035 *
036 * @see HttpSession
037 * @see HttpSessionBindingListener
038 * @see HttpSessionAttributeListener
039 */
040
041 public class HttpSessionBindingEvent extends HttpSessionEvent {
042
043 /* The name to which the object is being bound or unbound */
044
045 private String name;
046
047 /* The object is being bound or unbound */
048
049 private Object value;
050
051 /**
052 *
053 * Constructs an event that notifies an object that it
054 * has been bound to or unbound from a session.
055 * To receive the event, the object must implement
056 * {@link HttpSessionBindingListener}.
057 *
058 *
059 *
060 * @param session the session to which the object is bound or unbound
061 *
062 * @param name the name with which the object is bound or unbound
063 *
064 * @see #getName
065 * @see #getSession
066 *
067 */
068
069 public HttpSessionBindingEvent(HttpSession session, String name) {
070 super (session);
071 this .name = name;
072 }
073
074 /**
075 *
076 * Constructs an event that notifies an object that it
077 * has been bound to or unbound from a session.
078 * To receive the event, the object must implement
079 * {@link HttpSessionBindingListener}.
080 *
081 *
082 *
083 * @param session the session to which the object is bound or unbound
084 *
085 * @param name the name with which the object is bound or unbound
086 *
087 * @see #getName
088 * @see #getSession
089 *
090 */
091
092 public HttpSessionBindingEvent(HttpSession session, String name,
093 Object value) {
094 super (session);
095 this .name = name;
096 this .value = value;
097 }
098
099 /** Return the session that changed. */
100 public HttpSession getSession() {
101 return super .getSession();
102 }
103
104 /**
105 *
106 * Returns the name with which the attribute is bound to or
107 * unbound from the session.
108 *
109 *
110 * @return a string specifying the name with which
111 * the object is bound to or unbound from
112 * the session
113 *
114 *
115 */
116
117 public String getName() {
118 return name;
119 }
120
121 /**
122 * Returns the value of the attribute that has been added, removed or replaced.
123 * If the attribute was added (or bound), this is the value of the attribute. If the attribute was
124 * removed (or unbound), this is the value of the removed attribute. If the attribute was replaced, this
125 * is the old value of the attribute.
126 *
127 * @since 2.3
128 */
129
130 public Object getValue() {
131 return this.value;
132 }
133
134 }
|