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    }