1 2 package gov.nasa.ltl.graph; 21 22 import java.io.PrintStream ; 23 24 import java.util.Enumeration ; 25 import java.util.Hashtable ; 26 import java.util.StringTokenizer ; 27 28 29 32 public class Attributes { 33 private Hashtable ht; 34 35 public Attributes () { 36 ht = new Hashtable (); 37 } 38 39 public Attributes (Attributes a) { 40 ht = new Hashtable (); 41 42 for (Enumeration e = a.ht.keys(); e.hasMoreElements();) { 43 Object key = e.nextElement(); 44 ht.put(key, a.ht.get(key)); 45 } 46 } 47 48 public Attributes (String s) { 49 ht = new Hashtable (); 50 51 if (s.equals("-")) { 52 return; 53 } 54 55 StringTokenizer st = new StringTokenizer (s, ","); 56 57 while (st.hasMoreTokens()) { 58 String e = st.nextToken(); 59 60 int idx = e.indexOf("="); 61 62 String key; 63 String value; 64 65 if (idx == -1) { 66 key = e; 67 value = ""; 68 } else { 69 key = e.substring(0, idx); 70 value = e.substring(idx + 1); 71 } 72 73 ht.put(key, value); 74 } 75 } 76 77 public void setBoolean (String name, boolean value) { 78 if (value) { 79 ht.put(name, ""); 80 } else { 81 ht.remove(name); 82 } 83 } 84 85 public boolean getBoolean (String name) { 86 return ht.get(name) != null; 87 } 88 89 public void setInt (String name, int value) { 90 ht.put(name, Integer.toString(value)); 91 } 92 93 public int getInt (String name) { 94 Object o = ht.get(name); 95 96 if (o == null) { 97 return 0; 98 } 99 100 try { 101 return Integer.parseInt((String ) o); 102 } catch (NumberFormatException e) { 103 return 0; 104 } 105 } 106 107 public void setString (String name, String value) { 108 ht.put(name, value); 109 } 110 111 public String getString (String name) { 112 return (String ) ht.get(name); 113 } 114 115 public synchronized void save (PrintStream out, int format) { 116 switch (format) { 117 case Graph.XML_FORMAT: 120 save_xml(out); 121 122 break; 123 } 124 } 125 126 public String toString () { 127 if (ht.size() == 0) { 128 return "-"; 129 } 130 131 StringBuffer sb = new StringBuffer (); 132 133 for (Enumeration e = ht.keys(); e.hasMoreElements();) { 134 Object key = e.nextElement(); 135 Object value = (String ) ht.get(key); 136 137 sb.append(key); 138 139 if (!value.equals("")) { 140 sb.append('='); 141 sb.append(value); 142 } 143 144 if (e.hasMoreElements()) { 145 sb.append(','); 146 } 147 } 148 149 return sb.toString(); 150 } 151 152 public void unset (String name) { 153 ht.remove(name); 154 } 155 156 private synchronized void save_xml (PrintStream out) { 157 if (ht.size() == 0) { 158 return; 159 } 160 161 for (Enumeration e = ht.keys(); e.hasMoreElements();) { 162 String key = (String ) e.nextElement(); 163 String value = (String ) ht.get(key); 164 165 if (value == "") { 166 out.println("<" + key + "/>"); 167 } else { 168 out.println("<" + key + ">" + value + "</" + key + ">"); 169 } 170 } 171 } 172 } | Popular Tags |