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