summaryrefslogtreecommitdiff
path: root/src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DBusMap.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DBusMap.java')
-rwxr-xr-xsrc/traffic-incidents-service/org.genivi.trafficinfo.dbus-java/src/main/java/org/freedesktop/dbus/DBusMap.java152
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(".$", " }");
+ }
+}