Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/datacage/templating/Builder.java @ 1716:3ca999f507b7
flys/issue314: Variables in datacage are now case insensitive.
flys-artifacts/trunk@2994 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Mon, 17 Oct 2011 15:53:03 +0000 |
parents | 3f3988bb6284 |
children | e3eb1ea885a7 |
comparison
equal
deleted
inserted
replaced
1715:a70e0cbc5e02 | 1716:3ca999f507b7 |
---|---|
415 protected void convert(Node parent, Element current) { | 415 protected void convert(Node parent, Element current) { |
416 | 416 |
417 String variable = expand(current.getAttribute("var")); | 417 String variable = expand(current.getAttribute("var")); |
418 String type = expand(current.getAttribute("type")); | 418 String type = expand(current.getAttribute("type")); |
419 | 419 |
420 if (frames.containsKey(variable)) { | 420 Object [] result = new Object[1]; |
421 Object object = TypeConverter.convert( | 421 |
422 frames.get(variable), | 422 if (frames.getStore(variable, result)) { |
423 type); | 423 Object object = TypeConverter.convert(result[0], type); |
424 frames.put(variable, object); | 424 frames.put(variable.toUpperCase(), object); |
425 } | 425 } |
426 } | 426 } |
427 | 427 |
428 protected String expand(String s) { | 428 protected String expand(String s) { |
429 Matcher m = CompiledStatement.VAR.matcher(s); | 429 Matcher m = CompiledStatement.VAR.matcher(s); |
430 | |
431 Object [] result = new Object[1]; | |
430 | 432 |
431 StringBuffer sb = new StringBuffer(); | 433 StringBuffer sb = new StringBuffer(); |
432 while (m.find()) { | 434 while (m.find()) { |
433 String key = m.group(1); | 435 String key = m.group(1); |
434 Object value = frames.get(key); | 436 result[0] = null; |
435 m.appendReplacement(sb, value != null ? value.toString() : ""); | 437 if (frames.getStore(key, result)) { |
438 m.appendReplacement( | |
439 sb, result[0] != null ? result[0].toString() : ""); | |
440 } | |
441 else { | |
442 m.appendReplacement(sb, "\\${" + key + "}"); | |
443 } | |
436 } | 444 } |
437 m.appendTail(sb); | 445 m.appendTail(sb); |
438 return sb.toString(); | 446 return sb.toString(); |
439 } | 447 } |
440 | 448 |