| 255 | } |
| 256 | |
| 257 | private synchronized void |
| 258 | addElement(Name name, Element element) { |
| 259 | Object types = data.get(name); |
| 260 | if (types == null) { |
| 261 | data.put(name, element); |
| 262 | return; |
| 263 | } |
| 264 | int type = element.getType(); |
| 265 | if (types instanceof List) { |
| 266 | List list = (List) types; |
| 267 | for (int i = 0; i < list.size(); i++) { |
| 268 | Element elt = (Element) list.get(i); |
| 269 | if (elt.getType() == type) { |
| 270 | list.set(i, element); |
| 271 | return; |
| 272 | } |
| 273 | } |
| 274 | list.add(element); |
| 275 | } else { |
| 276 | Element elt = (Element) types; |
| 277 | if (elt.getType() == type) |
| 278 | data.put(name, element); |
| 279 | else { |
| 280 | LinkedList list = new LinkedList(); |
| 281 | list.add(elt); |
| 282 | list.add(element); |
| 283 | data.put(name, list); |
| 284 | } |
| 285 | } |
| 286 | } |
| 287 | |
| 288 | private synchronized void |
| 289 | removeElement(Name name, int type) { |