// License: GPL. For details, see LICENSE file.
package org.openstreetmap.josm.tools.template_engine;
import java.util.ArrayList;
import java.util.List;
public class Condition implements TemplateEntry {
private final List<TemplateEntry> entries = new ArrayList<>();
public List<TemplateEntry> getEntries() {
return entries;
}
@Override
public void appendText(StringBuilder result, TemplateEngineDataProvider dataProvider) {
for (TemplateEntry entry: entries) {
if (entry.isValid(dataProvider)) {
entry.appendText(result, dataProvider);
return;
}
}
// Fallback to last entry
TemplateEntry entry = entries.get(entries.size() - 1);
entry.appendText(result, dataProvider);
}
@Override
public boolean isValid(TemplateEngineDataProvider dataProvider) {
for (TemplateEntry entry: entries) {
if (entry.isValid(dataProvider))
return true;
}
return false;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("?{ ");
for (TemplateEntry entry: entries) {
if (entry instanceof SearchExpressionCondition) {
sb.append(entry);
} else {
sb.append('\'').append(entry).append('\'');
}
sb.append(" | ");
}
sb.setLength(sb.length() - 3);
sb.append(" }");
return sb.toString();
}
}