Changeset 84 for java/main/src/main/java/com/framsticks/parsers/Schema.java
- Timestamp:
- 06/22/13 21:51:33 (11 years ago)
- Location:
- java/main
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
java/main
-
Property
svn:ignore
set to
target
-
Property
svn:ignore
set to
-
java/main/src/main/java/com/framsticks/parsers/Schema.java
r78 r84 1 1 package com.framsticks.parsers; 2 2 3 import java.io.File;4 import java.io.FileInputStream;5 3 import java.io.IOException; 6 4 import java.io.InputStream; … … 8 6 import java.util.HashMap; 9 7 import java.util.Map; 10 import java.util.Map.Entry;11 8 12 9 import com.framsticks.params.*; 13 import com.framsticks.params.types.DecimalParam; 14 import com.framsticks.params.types.FloatParam; 15 import com.framsticks.params.types.StringParam; 10 import com.framsticks.util.lang.Numbers; 16 11 import org.apache.log4j.Logger; 17 12 … … 224 219 } 225 220 221 private static <T extends Number> T extractAttribute(NamedNodeMap attributes, String name, Class<T> type) { 222 String value = getAttribute(attributes, name); 223 if (value == null) { 224 return null; 225 } 226 return Numbers.parse(value, type); 227 } 226 228 /** 227 229 * It analyses the single property within the class … … 265 267 } 266 268 267 Map<String, String> minMaxDef = new HashMap<String, String>();268 269 for (String key : new String[] { "MIN", "MAX", "DEF" }) {270 String value = getAttribute(attributes, key);271 if (value != null && !value.trim().equals(""))272 minMaxDef.put(key, value);273 }274 275 269 ParamBuilder builder = new ParamBuilder(); 276 270 builder.setId(id).setName(name).setHelp(description).setGroup(group).setFlags(flags); 277 271 272 builder.setType(type); 273 278 274 if ("d".equals(type)) { 279 280 Map<String, Integer> minMaxDefInt = new HashMap<String, Integer>(); 281 for (Entry<String, String> entry : minMaxDef.entrySet()) { 282 try { 283 minMaxDefInt.put(entry.getKey(), 284 Integer.parseInt(entry.getValue())); 285 } catch (NumberFormatException e) { 286 logger.warn(entry.getKey() + " attribute in property \"" 287 + id + "\" getId in class \"" + classId 288 + "\" should be an integer value"); 289 } 290 } 291 292 builder.setType(DecimalParam.class); 293 builder.setMin(minMaxDefInt.get("MIN")); 294 builder.setMax(minMaxDefInt.get("MAX")); 295 builder.setDef(minMaxDefInt.get("DEF")); 296 275 builder.setMin(extractAttribute(attributes, "MIN", Integer.class)); 276 builder.setMax(extractAttribute(attributes, "MAX", Integer.class)); 277 builder.setDef(extractAttribute(attributes, "DEF", Integer.class)); 297 278 } else if ("f".equals(type)) { 298 299 Map<String, Double> minMaxDefDouble = new HashMap<String, Double>(); 300 for (Entry<String, String> entry : minMaxDef.entrySet()) { 301 try { 302 minMaxDefDouble.put(entry.getKey(), 303 Double.parseDouble(entry.getValue())); 304 } catch (NumberFormatException e) { 305 logger.warn(entry.getKey() + " attribute in property \"" 306 + id + "\" getId in class \"" + classId 307 + "\" should be a double value"); 308 } 309 } 310 builder.setType(FloatParam.class); 311 builder.setMin(minMaxDefDouble.get("MIN")); 312 builder.setMax(minMaxDefDouble.get("MAX")); 313 builder.setDef(minMaxDefDouble.get("DEF")); 314 315 279 builder.setMin(extractAttribute(attributes, "MIN", Double.class)); 280 builder.setMax(extractAttribute(attributes, "MAX", Double.class)); 281 builder.setDef(extractAttribute(attributes, "DEF", Double.class)); 316 282 } else if ("s".equals(type)) { 317 builder.setType(StringParam.class); 318 builder.setDef(minMaxDef.get("DEF")); 283 builder.setMin(extractAttribute(attributes, "MIN", Integer.class)); 284 builder.setMax(extractAttribute(attributes, "MAX", Integer.class)); 285 builder.setDef(extractAttribute(attributes, "DEF", Integer.class)); 286 builder.setDef(getAttribute(attributes, "DEF")); 319 287 } else { 320 288 builder.setType(type);
Note: See TracChangeset
for help on using the changeset viewer.