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

Last change on this file since 8811 was 8390, checked in by Don-vip, 9 years ago

Sonar - various performance improvements

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