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 @Override 039 public String toString() { 040 StringBuilder result = new StringBuilder(); 041 for (TemplateEntry te: entries) { 042 result.append(te); 043 } 044 return result.toString(); 045 } 046}