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}