001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm.tools.template_engine;
003
004
005public final 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}