You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2015/07/11 11:04:44 UTC

svn commit: r1690361 - /directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/wrappers/LimitsWrapper.java

Author: elecharny
Date: Sat Jul 11 09:04:44 2015
New Revision: 1690361

URL: http://svn.apache.org/r1690361
Log:
Completed the equals() method

Modified:
    directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/wrappers/LimitsWrapper.java

Modified: directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/wrappers/LimitsWrapper.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/wrappers/LimitsWrapper.java?rev=1690361&r1=1690360&r2=1690361&view=diff
==============================================================================
--- directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/wrappers/LimitsWrapper.java (original)
+++ directory/studio/trunk/plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/wrappers/LimitsWrapper.java Sat Jul 11 09:04:44 2015
@@ -661,6 +661,7 @@ public class LimitsWrapper implements Cl
     
     
     /**
+     * LimitsWrapper are ordered objects
      * @see Object#equals(Object)
      */
     public boolean equals( Object that )
@@ -675,6 +676,13 @@ public class LimitsWrapper implements Cl
         {
             LimitsWrapper thatInstance = (LimitsWrapper)that;
             
+            // Check the prefix first
+            if ( prefix != thatInstance.prefix )
+            {
+                return false;
+            }
+
+            // The selector
             if ( selector != thatInstance.selector )
             {
                 return false;
@@ -698,6 +706,26 @@ public class LimitsWrapper implements Cl
                     break;
                     
                 case GROUP :
+                    // If we have an ObjectClass, check it
+                    if ( ( objectClass != null ) && ( !objectClass.equals( thatInstance.objectClass ) ) )
+                    {
+                        return false;
+                    }
+                    else if ( thatInstance.objectClass != null )
+                    {
+                        return false;
+                    }
+
+                    // If we have an AttributeType, check it
+                    if ( ( attributeType != null ) && ( !attributeType.equals( thatInstance.attributeType ) ) )
+                    {
+                        return false;
+                    }
+                    else if ( thatInstance.attributeType != null )
+                    {
+                        return false;
+                    }
+
                     // Check the pattern
                     if ( selectorPattern != thatInstance.selectorPattern )
                     {
@@ -712,6 +740,31 @@ public class LimitsWrapper implements Cl
             }
             
             // Check the limits now
+            if ( limits.size() != thatInstance.limits.size() )
+            {
+                return false;
+            }
+            
+            // Iterate on both limits (they are not ordered... This is a O(n2) loop.
+            for ( LimitWrapper limit : limits )
+            {
+                boolean found = false;
+                
+                for ( LimitWrapper thatLimit : thatInstance.limits )
+                {
+                    if ( limit.equals( thatLimit ) )
+                    {
+                        found = true;
+                        break;
+                    }
+                }
+                
+                if ( !found )
+                {
+                    return false;
+                }
+            }
+            
             return true;
         }
         else