source: josm/trunk/src/org/openstreetmap/josm/tools/template_engine/Condition.java@ 11057

Last change on this file since 11057 was 11057, checked in by simon04, 8 years ago

Template engine: fix string representations

  • Property svn:eol-style set to native
File size: 1.5 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.tools.template_engine;
3
4import java.util.ArrayList;
5import java.util.List;
6
7public class Condition implements TemplateEntry {
8
9 private final List<TemplateEntry> entries = new ArrayList<>();
10
11 public List<TemplateEntry> getEntries() {
12 return entries;
13 }
14
15 @Override
16 public void appendText(StringBuilder result, TemplateEngineDataProvider dataProvider) {
17 for (TemplateEntry entry: entries) {
18 if (entry.isValid(dataProvider)) {
19 entry.appendText(result, dataProvider);
20 return;
21 }
22 }
23
24 // Fallback to last entry
25 TemplateEntry entry = entries.get(entries.size() - 1);
26 entry.appendText(result, dataProvider);
27 }
28
29 @Override
30 public boolean isValid(TemplateEngineDataProvider dataProvider) {
31
32 for (TemplateEntry entry: entries) {
33 if (entry.isValid(dataProvider))
34 return true;
35 }
36
37 return false;
38 }
39
40 @Override
41 public String toString() {
42 StringBuilder sb = new StringBuilder();
43 sb.append("?{ ");
44 for (TemplateEntry entry: entries) {
45 if (entry instanceof SearchExpressionCondition) {
46 sb.append(entry);
47 } else {
48 sb.append('\'').append(entry).append('\'');
49 }
50 sb.append(" | ");
51 }
52 sb.setLength(sb.length() - 3);
53 sb.append(" }");
54 return sb.toString();
55 }
56}
Note: See TracBrowser for help on using the repository browser.