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