View Javadoc

1   /*
2    *   @(#) $Id: IdentityHashSet.java 332218 2005-11-10 03:52:42Z trustin $
3    *
4    *   Copyright 2004 The Apache Software Foundation
5    *
6    *   Licensed under the Apache License, Version 2.0 (the "License");
7    *   you may not use this file except in compliance with the License.
8    *   You may obtain a copy of the License at
9    *
10   *       http://www.apache.org/licenses/LICENSE-2.0
11   *
12   *   Unless required by applicable law or agreed to in writing, software
13   *   distributed under the License is distributed on an "AS IS" BASIS,
14   *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15   *   See the License for the specific language governing permissions and
16   *   limitations under the License.
17   *
18   */
19  package org.apache.mina.util;
20  
21  import java.util.AbstractSet;
22  import java.util.IdentityHashMap;
23  import java.util.Iterator;
24  import java.util.Map;
25  import java.util.Set;
26  
27  /***
28   * An {@link IdentityHashMap}-backed {@link Set}.
29   *
30   * @author The Apache Directory Project (dev@directory.apache.org)
31   * @version $Rev: 332218 $, $Date: 2005-11-10 12:52:42 +0900 $
32   */
33  public class IdentityHashSet extends AbstractSet
34  {
35      private final Map delegate = new IdentityHashMap();
36  
37      public IdentityHashSet()
38      {
39      }
40  
41      public int size()
42      {
43          return delegate.size();
44      }
45  
46      public boolean contains( Object o )
47      {
48          return delegate.containsKey( o );
49      }
50  
51      public Iterator iterator()
52      {
53          return delegate.keySet().iterator();
54      }
55  
56      public boolean add( Object arg0 )
57      {
58          return delegate.put( arg0, Boolean.TRUE ) == null;
59      }
60  
61      public boolean remove( Object o )
62      {
63          return delegate.remove( o ) != null;
64      }
65  
66      public void clear()
67      {
68          delegate.clear();
69      }
70  }