1/*
2 *  Licensed to the Apache Software Foundation (ASF) under one or more
3 *  contributor license agreements.  See the NOTICE file distributed with
4 *  this work for additional information regarding copyright ownership.
5 *  The ASF licenses this file to You under the Apache License, Version 2.0
6 *  (the "License"); you may not use this file except in compliance with
7 *  the License.  You may obtain a copy of the License at
8 *
9 *     http://www.apache.org/licenses/LICENSE-2.0
10 *
11 *  Unless required by applicable law or agreed to in writing, software
12 *  distributed under the License is distributed on an "AS IS" BASIS,
13 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 *  See the License for the specific language governing permissions and
15 *  limitations under the License.
16 */
17
18package javax.net.ssl;
19
20import java.util.EventObject;
21
22/**
23 * The event sent to an {@code SSLSessionBindingListener} when the listener
24 * object is bound ({@link SSLSession#putValue(String, Object)}) or unbound
25 * ({@link SSLSession#removeValue(String)}) to an {@code SSLSession}.
26 */
27public class SSLSessionBindingEvent extends EventObject {
28
29    private final String name;
30
31    /**
32     * Creates a new {@code SSLSessionBindingEvent} for the specified session
33     * indicating a binding event for the specified name.
34     *
35     * @param session
36     *            the session for which the event occurs.
37     * @param name
38     *            the name of the object being (un)bound.
39     */
40    public SSLSessionBindingEvent(SSLSession session, String name) {
41        super(session);
42        this.name = name;
43    }
44
45    /**
46     * Returns the name of the binding being added or removed.
47     *
48     * @return the name of the binding.
49     */
50    public String getName() {
51        return name;
52    }
53
54    /**
55     * Returns the session to which the binding is added or from which it is
56     * removed.
57     *
58     * @return the session to which the binding is added or from which it is
59     *         removed.
60     */
61    public SSLSession getSession() {
62        return (SSLSession) this.source;
63    }
64
65}
66