001 // License: GPL. For details, see LICENSE file.
002 package org.openstreetmap.josm.tools.template_engine;
003
004
005 public class CompoundTemplateEntry implements TemplateEntry {
006
007 public static TemplateEntry fromArray(TemplateEntry... entry) {
008 if (entry.length == 0)
009 return new StaticText("");
010 else if (entry.length == 1)
011 return entry[0];
012 else
013 return new CompoundTemplateEntry(entry);
014 }
015
016 private CompoundTemplateEntry(TemplateEntry[] entries) {
017 this.entries = entries;
018 }
019
020 private final TemplateEntry[] entries;
021
022 @Override
023 public void appendText(StringBuilder result, TemplateEngineDataProvider dataProvider) {
024 for (TemplateEntry te: entries) {
025 te.appendText(result, dataProvider);
026 }
027 }
028
029 @Override
030 public boolean isValid(TemplateEngineDataProvider dataProvider) {
031 for (TemplateEntry te: entries) {
032 if (!te.isValid(dataProvider))
033 return false;
034 }
035 return true;
036 }
037
038
039 @Override
040 public String toString() {
041 StringBuilder result = new StringBuilder();
042 for (TemplateEntry te: entries) {
043 result.append(te.toString());
044 }
045 return result.toString();
046 }
047
048
049 }