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 }