1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 package com.sun.star.lib.util;
25 
26 /**
27  * Optional interface to be implemented by objects stored in a
28  * <code>WeakMap</code>.
29  *
30  * @see WeakMap
31  */
32 public interface DisposeNotifier {
33     /**
34      * Adds a dispose listener, to be notified when this object is disposed.
35      *
36      * <p>It is unspecified what happens when the same listener is added
37      * multiple times.</p>
38      *
39      * <p>It is unspecified exactly when the <code>notifyDispose</code> callback
40      * is fired: immediately before the notifier is disposed, while it is in the
41      * process of disposing, or some time after it got disposed.  But even if
42      * adding a listener to an already disposed notifer, the listener must
43      * eventually receive a <code>notifyDispose</code> callback.</p>
44      *
45      * @param listener a dispose listener, to be notified when this object is
46      * disposed; must not be <code>null</code>
47      */
addDisposeListener(DisposeListener listener)48     void addDisposeListener(DisposeListener listener);
49 }
50