diff options
Diffstat (limited to 'src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DBusMap.java')
-rwxr-xr-x | src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DBusMap.java | 152 |
1 files changed, 152 insertions, 0 deletions
diff --git a/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DBusMap.java b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DBusMap.java new file mode 100755 index 0000000..b9d06d7 --- /dev/null +++ b/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DBusMap.java @@ -0,0 +1,152 @@ +/* + D-Bus Java Implementation + Copyright (c) 2005-2006 Matthew Johnson + + This program is free software; you can redistribute it and/or modify it + under the terms of either the GNU Lesser General Public License Version 2 or the + Academic Free Licence Version 2.1. + + Full licence texts are included in the COPYING file with this program. +*/ +package org.freedesktop.dbus; + +import java.util.Arrays; +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.TreeSet; +import java.util.Vector; + +class DBusMap<K, V> implements Map<K, V> +{ + Object[][] entries; + public DBusMap(Object[][] entries) + { + this.entries=entries; + } + class Entry implements Map.Entry<K,V>, Comparable<Entry> + { + private int entry; + public Entry(int i) + { + this.entry = i; + } + public boolean equals(Object o) + { + if (null == o) return false; + if (!(o instanceof DBusMap.Entry)) return false; + return this.entry == ((Entry) o).entry; + } + @SuppressWarnings("unchecked") + public K getKey() + { + return (K) entries[entry][0]; + } + @SuppressWarnings("unchecked") + public V getValue() + { + return (V) entries[entry][1]; + } + public int hashCode() + { + return entries[entry][0].hashCode(); + } + public V setValue(V value) + { + throw new UnsupportedOperationException(); + } + public int compareTo(Entry e) + { + return entry - e.entry; + } + } + + public void clear() + { + throw new UnsupportedOperationException(); + } + public boolean containsKey(Object key) + { + for (int i = 0; i < entries.length; i++) + if (key == entries[i][0] || (key != null && key.equals(entries[i][0]))) + return true; + return false; + } + public boolean containsValue(Object value) + { + for (int i = 0; i < entries.length; i++) + if (value == entries[i][1] || (value != null && value.equals(entries[i][1]))) + return true; + return false; + } + public Set<Map.Entry<K,V>> entrySet() + { + Set<Map.Entry<K,V>> s = new TreeSet<Map.Entry<K,V>>(); + for (int i = 0; i < entries.length; i++) + s.add(new Entry(i)); + return s; + } + @SuppressWarnings("unchecked") + public V get(Object key) + { + for (int i = 0; i < entries.length; i++) + if (key == entries[i][0] || (key != null && key.equals(entries[i][0]))) + return (V) entries[i][1]; + return null; + } + public boolean isEmpty() + { + return entries.length == 0; + } + @SuppressWarnings("unchecked") + public Set<K> keySet() + { + Set<K> s = new TreeSet<K>(); + for (Object[] entry: entries) + s.add((K) entry[0]); + return s; + } + public V put(K key, V value) + { + throw new UnsupportedOperationException(); + } + public void putAll(Map<? extends K,? extends V> t) + { + throw new UnsupportedOperationException(); + } + public V remove(Object key) + { + throw new UnsupportedOperationException(); + } + public int size() + { + return entries.length; + } + @SuppressWarnings("unchecked") + public Collection<V> values() + { + List<V> l = new Vector<V>(); + for (Object[] entry: entries) + l.add((V) entry[1]); + return l; + } + public int hashCode() + { + return Arrays.deepHashCode(entries); + } + @SuppressWarnings("unchecked") + public boolean equals(Object o) + { + if (null == o) return false; + if (!(o instanceof Map)) return false; + return ((Map<K,V>) o).entrySet().equals(entrySet()); + } + public String toString() + { + String s = "{ "; + for (int i = 0; i < entries.length; i++) + s += entries[i][0] + " => " + entries[i][1] + ","; + return s.replaceAll(".$", " }"); + } +} |