KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > hsqldb > lib > IntKeyHashMap


1 /* Copyright (c) 2001-2005, The HSQL Development Group
2  * All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions are met:
6  *
7  * Redistributions of source code must retain the above copyright notice, this
8  * list of conditions and the following disclaimer.
9  *
10  * Redistributions in binary form must reproduce the above copyright notice,
11  * this list of conditions and the following disclaimer in the documentation
12  * and/or other materials provided with the distribution.
13  *
14  * Neither the name of the HSQL Development Group nor the names of its
15  * contributors may be used to endorse or promote products derived from this
16  * software without specific prior written permission.
17  *
18  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21  * ARE DISCLAIMED. IN NO EVENT SHALL HSQL DEVELOPMENT GROUP, HSQLDB.ORG,
22  * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
23  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
24  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
26  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
28  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29  */

30
31
32 package org.hsqldb.lib;
33
34 import org.hsqldb.store.BaseHashMap;
35
36 /**
37  *
38  * @author fredt@users
39  * @version 1.7.2
40  * @since 1.7.2
41  */

42 public class IntKeyHashMap extends BaseHashMap {
43
44     Set keySet;
45     Collection values;
46
47     public IntKeyHashMap() {
48         this(16, 0.75f);
49     }
50
51     public IntKeyHashMap(int initialCapacity)
52     throws IllegalArgumentException JavaDoc {
53         this(initialCapacity, 0.75f);
54     }
55
56     public IntKeyHashMap(int initialCapacity,
57                          float loadFactor) throws IllegalArgumentException JavaDoc {
58         super(initialCapacity, loadFactor, BaseHashMap.intKeyOrValue,
59               BaseHashMap.objectKeyOrValue, false);
60     }
61
62     public Object JavaDoc get(int key) {
63
64         int lookup = getLookup(key);
65
66         if (lookup != -1) {
67             return objectValueTable[lookup];
68         }
69
70         return null;
71     }
72
73     public Object JavaDoc put(int key, Object JavaDoc value) {
74         return super.addOrRemove(key, 0, null, value, false);
75     }
76
77     public boolean containsValue(Object JavaDoc value) {
78         return super.containsValue(value);
79     }
80
81     public Object JavaDoc remove(int key) {
82         return super.addOrRemove(key, 0, null, null, true);
83     }
84
85     public Set keySet() {
86
87         if (keySet == null) {
88             keySet = new KeySet();
89         }
90
91         return keySet;
92     }
93
94     public Collection values() {
95
96         if (values == null) {
97             values = new Values();
98         }
99
100         return values;
101     }
102
103     class KeySet implements Set {
104
105         public Iterator iterator() {
106             return IntKeyHashMap.this.new BaseHashIterator(true);
107         }
108
109         public int size() {
110             return IntKeyHashMap.this.size();
111         }
112
113         public boolean contains(Object JavaDoc o) {
114             throw new RuntimeException JavaDoc();
115         }
116
117         public Object JavaDoc get(Object JavaDoc key) {
118             throw new RuntimeException JavaDoc();
119         }
120
121         public boolean add(Object JavaDoc value) {
122             throw new RuntimeException JavaDoc();
123         }
124
125         public boolean addAll(Collection c) {
126             throw new RuntimeException JavaDoc();
127         }
128
129         public boolean remove(Object JavaDoc o) {
130             throw new RuntimeException JavaDoc();
131         }
132
133         public boolean isEmpty() {
134             return size() == 0;
135         }
136
137         public void clear() {
138             IntKeyHashMap.this.clear();
139         }
140     }
141
142     class Values implements Collection {
143
144         public Iterator iterator() {
145             return IntKeyHashMap.this.new BaseHashIterator(false);
146         }
147
148         public int size() {
149             return IntKeyHashMap.this.size();
150         }
151
152         public boolean contains(Object JavaDoc o) {
153             throw new RuntimeException JavaDoc();
154         }
155
156         public boolean add(Object JavaDoc value) {
157             throw new RuntimeException JavaDoc();
158         }
159
160         public boolean addAll(Collection c) {
161             throw new RuntimeException JavaDoc();
162         }
163
164         public boolean remove(Object JavaDoc o) {
165             throw new RuntimeException JavaDoc();
166         }
167
168         public boolean isEmpty() {
169             return size() == 0;
170         }
171
172         public void clear() {
173             IntKeyHashMap.this.clear();
174         }
175     }
176 }
177
Popular Tags