1 /*
2 * Licensed to The Apereo Foundation under one or more contributor license
3 * agreements. See the NOTICE file distributed with this work for additional
4 * information regarding copyright ownership.
5 *
6 *
7 * The Apereo Foundation licenses this file to you under the Educational
8 * Community License, Version 2.0 (the "License"); you may not use this file
9 * except in compliance with the License. You may obtain a copy of the License
10 * at:
11 *
12 * http://opensource.org/licenses/ecl2.txt
13 *
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
16 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
17 * License for the specific language governing permissions and limitations under
18 * the License.
19 *
20 */
21
22 package org.opencastproject.util;
23
24 import org.apache.commons.io.IOUtils;
25
26 import java.io.IOException;
27 import java.util.HashMap;
28 import java.util.Map;
29 import java.util.Map.Entry;
30 import java.util.Properties;
31
32 /**
33 * See this JAXB bug for the full explanation: https://jaxb.dev.java.net/issues/show_bug.cgi?id=223
34 */
35 public class LocalHashMap {
36
37 /** The internal backing map */
38 protected Map<String, String> map = new HashMap<String, String>();
39
40 /** Returns the internal map storing the properties */
41 public Map<String, String> getMap() {
42 return map;
43 }
44
45 /** No-arg constructor needed by JAXB */
46 public LocalHashMap() {
47 }
48
49 /**
50 * Constructs this map from a properties list, expressed as a string:
51 *
52 * <code>
53 * foo=bar
54 * this=that
55 * </code>
56 *
57 * @param in
58 * The properties list
59 * @throws IOException
60 * if parsing the string fails
61 */
62 public LocalHashMap(String in) throws IOException {
63 Properties properties = new Properties();
64 properties.load(IOUtils.toInputStream(in, "UTF-8"));
65 for (Entry<Object, Object> e : properties.entrySet()) {
66 map.put((String) e.getKey(), (String) e.getValue());
67 }
68 }
69 }