3 * see AUTHORS for the list of contributors
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
19 package org.sonews.util;
21 import java.util.HashMap;
25 * Class that allows simple String template handling.
26 * @author Christian Lins
29 public class StringTemplate
32 private String str = null;
33 private String templateDelimiter = "%";
34 private Map<String, String> templateValues = new HashMap<String, String>();
36 public StringTemplate(String str, final String templateDelimiter)
38 if (str == null || templateDelimiter == null) {
39 throw new IllegalArgumentException("null arguments not allowed");
43 this.templateDelimiter = templateDelimiter;
46 public StringTemplate(String str)
51 public StringTemplate set(String template, String value)
53 if (template == null || value == null) {
54 throw new IllegalArgumentException("null arguments not allowed");
57 this.templateValues.put(template, value);
61 public StringTemplate set(String template, long value)
63 return set(template, Long.toString(value));
66 public StringTemplate set(String template, double value)
68 return set(template, Double.toString(value));
71 public StringTemplate set(String template, Object obj)
73 if (template == null || obj == null) {
74 throw new IllegalArgumentException("null arguments not allowed");
77 return set(template, obj.toString());
81 public String toString()
85 for (String key : this.templateValues.keySet()) {
86 String value = this.templateValues.get(key);
87 ret = ret.replace(templateDelimiter + key, value);