package org.freehep.util.template; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** A simple implementation of ValueProvider. * <pre> Template store = new Template(); * * store.set("title", "Simple Book Template Example"); * store.set("name", "JavaBY"); * * Template book1 = new Template(); * book1.set("author", "Alexey Popov"); * book1.set("title", "Patterns of using JavaBY Template Engine."); * book1.set("year", "2002"); * store.append("book", book1);</PRE> * * Template book2 = new Template(); * book2.set("author", "Garmash Viacheslav"); * book2.set("title", "Creating web shop using JavaBY Template Engine."); * book2.set("year", "2002"); * store.append("book", book2); * * TemplateEngine engine = new TemplateEngine(); * engine.addValueProvider(store); * Reader in = new InputStreamReader(Test.class.getResourceAsStream("test.html")); * Reader out = engine.filter(in);</pre> * @author tonyj * @version $Id: Template.java 8584 2006-08-10 23:06:37Z duns $ */ public class Template implements ValueProvider { private Map values = new HashMap(); private Map templates = new HashMap(); /** Create an empty template. */ public Template() { } public String getValue(String name) { return (String) values.get(name); } public List getValues(String name) { return (List) templates.get(name); } /** Set a value. * @param name The name of the value * @param value The value */ public void set(String name, String value) { values.put(name,value); } /** Append a template to this template * @param name The name of the template to add. * @param template The template. */ public void append(String name, Template template) { List l = (List) templates.get(name); if (l == null) { l = new ArrayList(); templates.put(name,l); } l.add(template); } }