You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by cz...@apache.org on 2016/07/05 08:14:08 UTC

svn commit: r1751406 - /felix/trunk/configadmin/src/main/java/org/apache/felix/cm/impl/CaseInsensitiveDictionary.java

Author: cziegeler
Date: Tue Jul  5 08:14:08 2016
New Revision: 1751406

URL: http://svn.apache.org/viewvc?rev=1751406&view=rev
Log:
FELIX-5088 : CaseSensitiveDictionary should implement equals()

Modified:
    felix/trunk/configadmin/src/main/java/org/apache/felix/cm/impl/CaseInsensitiveDictionary.java

Modified: felix/trunk/configadmin/src/main/java/org/apache/felix/cm/impl/CaseInsensitiveDictionary.java
URL: http://svn.apache.org/viewvc/felix/trunk/configadmin/src/main/java/org/apache/felix/cm/impl/CaseInsensitiveDictionary.java?rev=1751406&r1=1751405&r2=1751406&view=diff
==============================================================================
--- felix/trunk/configadmin/src/main/java/org/apache/felix/cm/impl/CaseInsensitiveDictionary.java (original)
+++ felix/trunk/configadmin/src/main/java/org/apache/felix/cm/impl/CaseInsensitiveDictionary.java Tue Jul  5 08:14:08 2016
@@ -134,6 +134,7 @@ public class CaseInsensitiveDictionary e
      *
      * @see java.util.Dictionary#elements()
      */
+    @Override
     public Enumeration<Object> elements()
     {
         return Collections.enumeration( internalMap.values() );
@@ -145,6 +146,7 @@ public class CaseInsensitiveDictionary e
      *
      * @see java.util.Dictionary#get(java.lang.Object)
      */
+    @Override
     public Object get( Object key )
     {
         if ( key == null )
@@ -161,6 +163,7 @@ public class CaseInsensitiveDictionary e
      *
      * @see java.util.Dictionary#isEmpty()
      */
+    @Override
     public boolean isEmpty()
     {
         return internalMap.isEmpty();
@@ -172,6 +175,7 @@ public class CaseInsensitiveDictionary e
      *
      * @see java.util.Dictionary#keys()
      */
+    @Override
     public Enumeration<String> keys()
     {
         return Collections.enumeration( internalMap.keySet() );
@@ -183,6 +187,7 @@ public class CaseInsensitiveDictionary e
      *
      * @see java.util.Dictionary#put(java.lang.String, java.lang.Object)
      */
+    @Override
     public Object put( String key, Object value )
     {
         if ( key == null || value == null )
@@ -202,6 +207,7 @@ public class CaseInsensitiveDictionary e
      *
      * @see java.util.Dictionary#remove(java.lang.Object)
      */
+    @Override
     public Object remove( Object key )
     {
         if ( key == null )
@@ -218,6 +224,7 @@ public class CaseInsensitiveDictionary e
      *
      * @see java.util.Dictionary#size()
      */
+    @Override
     public int size()
     {
         return internalMap.size();
@@ -349,11 +356,64 @@ public class CaseInsensitiveDictionary e
 
     // ---------- Object Overwrites --------------------------------------------
 
+    @Override
     public String toString()
     {
         return internalMap.toString();
     }
 
+    @Override
+    public int hashCode()
+    {
+        return internalMap.hashCode();
+    }
+
+    @Override
+    public synchronized boolean equals(final Object o)
+    {
+        if (o == this)
+        {
+            return true;
+        }
+
+        if (!(o instanceof Dictionary))
+        {
+            return false;
+        }
+
+        @SuppressWarnings("unchecked")
+        final Dictionary<String,Object> t = (Dictionary<String,Object>) o;
+        if (t.size() != size())
+        {
+            return false;
+        }
+
+        try
+        {
+            final Enumeration<String> keys = keys();
+            while ( keys.hasMoreElements() )
+            {
+                final String key = keys.nextElement();
+                final Object value = get(key);
+
+                if (!value.equals(t.get(key)))
+                {
+                        return false;
+                }
+            }
+        }
+        catch (ClassCastException unused)
+        {
+            return false;
+        }
+        catch (NullPointerException unused)
+        {
+            return false;
+        }
+
+        return true;
+    }
+
     public static final Comparator<String> CASE_INSENSITIVE_ORDER = new CaseInsensitiveComparator();
 
     private static class CaseInsensitiveComparator implements Comparator<String>