keep alpha source states during node propagation
[IRC.git] / Robust / src / Benchmarks / mlp / tagger / mlp-smaller / PropertyMap.java
1 /**\r
2  * PropertyMap class\r
3  * Maps identifiers to property lists\r
4  * Used for stylesheets, character maps, etc\r
5  *\r
6  * @author  Daniel Jackson\r
7  * @version 0, 07/03/01\r
8  */\r
9 \r
10 //package tagger;\r
11 //import java.io.*;\r
12 //import java.util.*;\r
13 \r
14 public class PropertyMap {\r
15   private HashMap map;  // String -> LinkedList [Property]\r
16   private HashSet keys;\r
17 \r
18   /**\r
19    * ensures: constructs an empty property map\r
20    */\r
21   public PropertyMap () {\r
22     map = new HashMap ();\r
23     keys = new HashSet();\r
24   }\r
25 \r
26   /**\r
27    * ensures: constructs a property map using the parser <code>p</code>.\r
28    */\r
29   public PropertyMap (PropertyParser p) {\r
30     map = new HashMap ();\r
31     keys = new HashSet();\r
32         \r
33     while (p.has_more_properties ()) {\r
34       LinkedList props = p.get_property_list ();\r
35       Property prop = (Property) props.removeFirst ();\r
36       map.put (prop.value, props);\r
37       keys.add(prop.value);\r
38     }\r
39   }\r
40 \r
41   /**\r
42    * ensures: incorporates properties using the parser <code>p</code>.\r
43    */\r
44   public void incorporate (PropertyParser p) {\r
45     \r
46     while (p.has_more_properties ()) {\r
47       LinkedList props = p.get_property_list ();\r
48       Property prop = (Property) props.removeFirst ();\r
49       map.put (prop.value, props);\r
50       keys.add(prop.value);\r
51     }\r
52         \r
53   }\r
54 \r
55   /**\r
56    * @return the property list for item <code>item</code>. Returns null if no such item.\r
57    */\r
58   public LinkedList get_property_list (String item) {\r
59     return (LinkedList) map.get (item);\r
60   }\r
61 \r
62   /**\r
63    * @return the value of property <code>prop</code> for item <code>item</code>\r
64    * or null if it does not exist\r
65    */\r
66   public String get_property (String item, String prop) {\r
67     LinkedList props = (LinkedList) map.get (item);\r
68     if (props == null) return null;\r
69     Iterator iter = props.iterator ();\r
70     while (iter.hasNext ()) {\r
71       Property p = (Property) iter.next ();\r
72       if (p.property.equals (prop))\r
73         return p.value;\r
74     }\r
75     return null;\r
76   }\r
77 \r
78   /**\r
79    * @return the set of items with property lists in the map\r
80    */\r
81   public HashSet get_items () {\r
82     return keys; //map.keySet ();\r
83   }\r
84   \r
85   public String toString () {\r
86     return map.toString ();\r
87   }\r
88 }\r