Source code: com/port80/util/struct/MapWrapper.java
1 /*
2 * $id$
3 *
4 */
5
6 //
7 // Copyright(c) 2002, Chris Leung
8 //
9
10 package com.port80.util.struct;
11
12 import java.io.*;
13 import java.util.*;
14
15 import com.port80.util.msg;
16
17 /** A wrapper around a Map to provide convinient access to basic type objects such as int and float.
18 */
19 public class MapWrapper {
20
21 ////////////////////////////////////////////////////////////////////////
22 // Data
23
24 private Map _map =null;
25
26
27 ////////////////////////////////////////////////////////////////////////
28 // Method
29
30 public MapWrapper(Map map) {
31 _map=map;
32 }
33
34 public Object get(String key) {
35 return _map.get(key);
36 }
37
38 public String getText(String key) {
39 Object object=_map.get(key);
40 if(object!=null) return object.toString();
41 return null;
42 }
43
44 public boolean getBoolean(String key, boolean def) {
45 Object object=_map.get(key);
46 if(object==null) return def;
47 if(object instanceof String) {
48 boolean ret;
49 try {
50 ret=Boolean.valueOf((String)object).booleanValue();
51 } catch(NumberFormatException e) {
52 ret=def;
53 } catch(Exception e) {
54 msg.err("MapWrapper.getBoolean(): " + key + ": " +(String)object, e);
55 ret=def;
56 }
57 return ret;
58 } else {
59 msg.err("MapWrapper.getBoolean(): " + key + ": " +object.toString());
60 return def;
61 }
62 }
63
64 public int getInt(String key, int def) {
65 Object object=_map.get(key);
66 if(object==null) return def;
67 if(object instanceof String) {
68 int ret;
69 try {
70 ret=Integer.parseInt((String)object);
71 } catch(NumberFormatException e) {
72 ret=def;
73 } catch(Exception e) {
74 msg.err("MapWrapper.getInt(): " + key + ": " +(String)object,e);
75 ret=def;
76 }
77 return ret;
78 } else {
79 msg.err("MapWrapper.getInt(): " + key + ": " +object.toString());
80 return def;
81 }
82 }
83
84 public long getLong(String key, long def) {
85 Object object=_map.get(key);
86 if(object==null) return def;
87 if(object instanceof String) {
88 long ret;
89 try {
90 ret=Long.parseLong((String)object);
91 } catch(NumberFormatException e) {
92 ret=def;
93 } catch(Exception e) {
94 msg.err("MapWrapper.getLong(): " + key + ": " +(String)object, e);
95 ret=def;
96 }
97 return ret;
98 } else {
99 msg.err("MapWrapper.getLong(): " + key + ": " +object.toString());
100 return def;
101 }
102 }
103
104 public float getFloat(String key, float def) {
105 Object object=_map.get(key);
106 if(object==null) return def;
107 if(object instanceof String) {
108 float ret;
109 try {
110 ret=Float.parseFloat((String)object);
111 } catch(NumberFormatException e) {
112 ret=def;
113 } catch(Exception e) {
114 msg.err("MapWrapper.getFloat(): " + key + ": " +(String)object,e);
115 ret=def;
116 }
117 return ret;
118 } else {
119 msg.err("MapWrapper.getFloat(): " + key + ": " +object.toString());
120 return def;
121 }
122 }
123
124 public double getDouble(String key, double def) {
125 Object object=_map.get(key);
126 if(object==null) return def;
127 if(object instanceof String) {
128 double ret;
129 try {
130 ret=Double.parseDouble((String)object);
131 } catch(NumberFormatException e) {
132 ret=def;
133 } catch(Exception e) {
134 msg.err("MapWrapper.getDouble(): " + key + ": " +(String)object,e);
135 ret=def;
136 }
137 return ret;
138 } else {
139 msg.err("MapWrapper.getDouble(): " + key + ": " +object.toString());
140 return def;
141 }
142 }
143
144 public int getHex (String key, int def) {
145 int ret=def;
146 String a=(String)_map.get(key);
147 if(a==null) return def;
148 if (a.charAt(1)=='x' ||
149 a.charAt(1)=='X') {
150 a=a.substring(2,a.length()-1);
151 }
152 try {
153 ret=Integer.parseInt(a,16);
154 } catch (Exception e) {
155 msg.warn("MapWrapper.getHex(): Error parsing: " + key + ": " + a);
156 return def;
157 }
158 return ret;
159 }
160
161 }
162
163