Changeset 4431 in josm for trunk/src/org/openstreetmap/josm/tools/template_engine/Variable.java
- Timestamp:
- 2011-09-17T10:59:32+02:00 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/tools/template_engine/Variable.java
r4282 r4431 2 2 package org.openstreetmap.josm.tools.template_engine; 3 3 4 import java.util. List;4 import java.util.Collection; 5 5 6 6 7 7 public class Variable implements TemplateEntry { 8 8 9 private static final String SPECIAL_VARIABLE_PREFIX = "special:"; 10 private static final String SPECIAL_VALUE_EVERYTHING = "everything"; 11 12 9 13 private final String variableName; 14 private final boolean special; 10 15 11 16 public Variable(String variableName) { 12 this.variableName = variableName; 17 if (variableName.toLowerCase().startsWith(SPECIAL_VARIABLE_PREFIX)) { 18 this.variableName = variableName.substring(SPECIAL_VARIABLE_PREFIX.length()); 19 // special:special:key means that real key named special:key is needed, not special variable 20 this.special = !this.variableName.toLowerCase().startsWith(SPECIAL_VARIABLE_PREFIX); 21 } else { 22 this.variableName = variableName; 23 this.special = false; 24 } 13 25 } 14 26 15 27 @Override 16 28 public void appendText(StringBuilder result, TemplateEngineDataProvider dataProvider) { 17 if ( "*".equals(variableName)) {18 List<String> keys = dataProvider.getTemplateKeys();29 if (special && SPECIAL_VALUE_EVERYTHING.equals(variableName)) { 30 Collection<String> keys = dataProvider.getTemplateKeys(); 19 31 boolean first = true; 20 32 for (String key: keys) { … … 24 36 first = false; 25 37 } 26 result.append(key).append("=").append(dataProvider.getTemplateValue(key ));38 result.append(key).append("=").append(dataProvider.getTemplateValue(key, false)); 27 39 } 28 40 } else { 29 Object value = dataProvider.getTemplateValue(variableName );41 Object value = dataProvider.getTemplateValue(variableName, special); 30 42 if (value != null) { 31 43 result.append(value); … … 36 48 @Override 37 49 public boolean isValid(TemplateEngineDataProvider dataProvider) { 38 if ( "*".equals(variableName))50 if (special && SPECIAL_VALUE_EVERYTHING.equals(variableName)) 39 51 return true; 40 52 else 41 return dataProvider.getTemplateValue(variableName ) != null;53 return dataProvider.getTemplateValue(variableName, special) != null; 42 54 } 43 55 … … 47 59 } 48 60 61 public boolean isSpecial() { 62 return special; 63 } 64 49 65 }
Note:
See TracChangeset
for help on using the changeset viewer.