View Javadoc
1   /*
2    * dpkg - Debian Package library and the Debian Package Maven plugin
3    * (c) Copyright 2016 Gerrit Hohl
4    *
5    * This program is free software; you can redistribute it and/or
6    * modify it under the terms of the GNU General Public License
7    * as published by the Free Software Foundation; either version 2
8    * of the License, or (at your option) any later version.
9    *
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.
14   *
15   * You should have received a copy of the GNU General Public License
16   * along with this program; if not, write to the Free Software
17   * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
18   */
19  package net.sourceforge.javadpkg.replace;
20  
21  import java.util.Map;
22  import java.util.TreeMap;
23  
24  /**
25   * <p>
26   * A {@link Replacements} implementation which is based on a {@link Map}.
27   * </p>
28   *
29   * @author Gerrit Hohl (gerrit-hohl@users.sourceforge.net)
30   * @version <b>1.0</b>, 04.05.2016 by Gerrit Hohl
31   */
32  public class ReplacementsMap implements Replacements {
33  	
34  	
35  	/** The variables and their values. */
36  	private Map<String, String> variables;
37  
38  
39  	/**
40  	 * <p>
41  	 * Creates replacements.
42  	 * </p>
43  	 */
44  	public ReplacementsMap() {
45  		super();
46  
47  		this.variables = new TreeMap<>();
48  	}
49  
50  
51  	/**
52  	 * <p>
53  	 * Creates replacements.
54  	 * </p>
55  	 *
56  	 * @param variables
57  	 *            The variables and their values.
58  	 * @throws IllegalArgumentException
59  	 *             If the map containing the variables and their values is
60  	 *             <code>null</code>.
61  	 */
62  	public ReplacementsMap(Map<String, String> variables) {
63  		super();
64  
65  		if (variables == null)
66  			throw new IllegalArgumentException("Argument variables is null.");
67  		
68  		this.variables = new TreeMap<>(variables);
69  	}
70  	
71  	
72  	@Override
73  	public String getValue(String name) throws ReplacementException {
74  		if (name == null)
75  			throw new IllegalArgumentException("Argument name is null.");
76  		
77  		return this.variables.get(name);
78  	}
79  
80  
81  }