KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > micronova > util > MapBean


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

34
35 package com.micronova.util;
36
37 import java.util.*;
38 import java.beans.*;
39 import java.lang.reflect.*;
40
41 /** delegated map */
42
43 public class MapBean extends HashMap implements ObjectSource, ObjectTarget
44 {
45     protected static final Object JavaDoc REMOVE = new Object JavaDoc();
46
47     protected ObjectSource _objectSource;
48     protected ObjectTarget _ObjectTarget;
49
50     protected void init()
51     {
52         _objectSource = this;
53         _ObjectTarget = this;
54     }
55
56     public MapBean()
57     {
58         super();
59
60         init();
61     }
62
63     public MapBean(Object JavaDoc source)
64     {
65         super((Map)source);
66
67         init();
68     }
69
70     public void setObjectSource(ObjectSource objectSource)
71     {
72         _objectSource = objectSource;
73     }
74
75     public ObjectSource getObjectSource()
76     {
77         return _objectSource;
78     }
79
80     public void setObjectTarget(ObjectTarget ObjectTarget)
81     {
82         _ObjectTarget = ObjectTarget;
83     }
84
85     public ObjectTarget getObjectTarget()
86     {
87         return _ObjectTarget;
88     }
89
90     public Object JavaDoc getMapObject(Object JavaDoc key)
91     {
92         return super.get(key);
93     }
94
95     public Object JavaDoc putMapObject(Object JavaDoc key, Object JavaDoc value)
96     {
97         if (value == REMOVE)
98         {
99             return super.remove(key);
100         }
101         else
102         {
103             return super.put(key, value);
104         }
105     }
106
107     public Object JavaDoc putObject(Object JavaDoc objectSource, Object JavaDoc key, Object JavaDoc value)
108     {
109         return putMapObject(key, value);
110     }
111
112     public Object JavaDoc getObject(Object JavaDoc objectSource, Object JavaDoc key)
113     {
114         return getMapObject(key);
115     }
116
117     public Object JavaDoc get(Object JavaDoc key)
118     {
119         return _objectSource.getObject(this, key);
120     }
121
122     public Object JavaDoc get(Object JavaDoc key, Object JavaDoc defaultValue)
123     {
124         Object JavaDoc value = get(key);
125
126         if (value == null)
127         {
128             return defaultValue;
129         }
130         else
131         {
132             return value;
133         }
134     }
135
136     public Object JavaDoc put(Object JavaDoc key, Object JavaDoc value)
137     {
138         return _ObjectTarget.putObject(this, key, value);
139     }
140
141     public Object JavaDoc remove(Object JavaDoc key)
142     {
143         return put(key, REMOVE);
144     }
145
146     public String JavaDoc getString(Object JavaDoc key)
147     {
148         return (String JavaDoc)get(key);
149     }
150
151     public String JavaDoc getString(Object JavaDoc key, Object JavaDoc defaultValue)
152     {
153         return (String JavaDoc)get(key, defaultValue);
154     }
155
156     public int getInt(Object JavaDoc key, int defaultValue)
157     {
158         Integer JavaDoc value = TypeUtil.isInteger(get(key));
159
160         if (value != null)
161         {
162             return value.intValue();
163         }
164         else
165         {
166             return defaultValue;
167         }
168     }
169
170     public long getLong(Object JavaDoc key, long defaultValue)
171     {
172         Long JavaDoc value = TypeUtil.isLong(get(key));
173
174         if (value != null)
175         {
176             return value.longValue();
177         }
178         else
179         {
180             return defaultValue;
181         }
182     }
183
184     public double getDouble(Object JavaDoc key, double defaultValue)
185     {
186         Double JavaDoc value = TypeUtil.isDouble(get(key));
187
188         if (value != null)
189         {
190             return value.doubleValue();
191         }
192         else
193         {
194             return defaultValue;
195         }
196     }
197
198     public float getFloat(Object JavaDoc key, float defaultValue)
199     {
200         Float JavaDoc value = TypeUtil.isFloat(get(key));
201
202         if (value != null)
203         {
204             return value.floatValue();
205         }
206         else
207         {
208             return defaultValue;
209         }
210     }
211
212     public boolean getBoolean(Object JavaDoc key, boolean defaultValue)
213     {
214         Boolean JavaDoc value = TypeUtil.isBoolean(get(key));
215
216         if (value != null)
217         {
218             return value.booleanValue();
219         }
220         else
221         {
222             return defaultValue;
223         }
224     }
225 }
226
Popular Tags