mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

Jean-Noel Rouvignac
25.03.2015 66459702e0e633dbddb145eb74d38c82cdc83c75
SearchFilter.java:
Used Collection.contains().

LDAPURL.java:
Simplified equals().
2 files modified
202 ■■■■ changed files
opendj-server-legacy/src/main/java/org/opends/server/types/LDAPURL.java 193 ●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/types/SearchFilter.java 9 ●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/types/LDAPURL.java
@@ -29,6 +29,9 @@
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Objects;
import java.util.Set;
import java.util.StringTokenizer;
import org.forgerock.i18n.LocalizableMessage;
@@ -57,70 +60,41 @@
{
  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
  /**
   * The default scheme that will be used if none is provided.
   */
  /** The default scheme that will be used if none is provided. */
  public static final String DEFAULT_SCHEME = "ldap";
  /**
   * The default port value that will be used if none is provided.
   */
  /** The default port value that will be used if none is provided. */
  public static final int DEFAULT_PORT = 389;
  /**
   * The default base DN that will be used if none is provided.
   */
  /** The default base DN that will be used if none is provided. */
  public static final DN DEFAULT_BASE_DN = DN.rootDN();
  /**
   * The default search scope that will be used if none is provided.
   */
  /** The default search scope that will be used if none is provided. */
  public static final SearchScope DEFAULT_SEARCH_SCOPE =
       SearchScope.BASE_OBJECT;
  /**
   * The default search filter that will be used if none is provided.
   */
  /** The default search filter that will be used if none is provided. */
  public static final SearchFilter DEFAULT_SEARCH_FILTER =
       SearchFilter.createPresenceFilter(
            DirectoryServer.getObjectClassAttributeType());
  /** The base DN for this LDAP URL. */
  private DN baseDN;
  /** The host for this LDAP URL. */
  private String host;
  /** The port number for this LDAP URL. */
  private int port;
  /** The base DN for this LDAP URL. */
  private DN baseDN;
  /** The raw base DN for this LDAP URL. */
  private String rawBaseDN;
  /** The search scope for this LDAP URL. */
  private SearchScope scope;
  /** The search filter for this LDAP URL. */
  private SearchFilter filter;
  /** The raw filter for this LDAP URL. */
  private String rawFilter;
  /** The set of attributes for this LDAP URL. */
  private LinkedHashSet<String> attributes;
  /** The set of extensions for this LDAP URL. */
  private LinkedList<String> extensions;
  /** The search scope for this LDAP URL. */
  private SearchScope scope;
  /** The search filter for this LDAP URL. */
  private SearchFilter filter;
  /** The host for this LDAP URL. */
  private String host;
  /** The raw base DN for this LDAP URL. */
  private String rawBaseDN;
  /** The raw filter for this LDAP URL. */
  private String rawFilter;
  /** The scheme (i.e., protocol) for this LDAP URL. */
  private String scheme;
@@ -1261,160 +1235,104 @@
  @Override
  public boolean equals(Object o)
  {
    if (o == null)
    {
      return false;
    }
    if (o == this)
    {
      return true;
    }
    if (! (o instanceof LDAPURL))
    {
      return false;
    }
    LDAPURL url = (LDAPURL) o;
    if (! scheme.equals(url.getScheme()))
    {
      return false;
    return scheme.equals(url.getScheme())
        && hostEquals(url)
        && port == url.getPort()
        && baseDnsEqual(url)
        && scope.equals(url.getScope())
        && filtersEqual(url)
        && attributesEqual(url.getAttributes())
        && extensionsEqual(url.getExtensions());
    }
    if (host == null)
  private boolean hostEquals(LDAPURL url)
    {
      if (url.getHost() != null)
    if (host != null)
      {
        return false;
      return host.equalsIgnoreCase(url.getHost());
      }
    }
    else
    {
      if (! host.equalsIgnoreCase(url.getHost()))
      {
        return false;
      }
    return url.getHost() == null;
    }
    if (port != url.getPort())
  private boolean baseDnsEqual(LDAPURL url)
    {
      return false;
    }
    try
    {
      DN dn = getBaseDN();
      if (! dn.equals(url.getBaseDN()))
      {
        return false;
      }
      return getBaseDN().equals(url.getBaseDN());
    }
    catch (Exception e)
    {
      logger.traceException(e);
      if (rawBaseDN == null)
      {
        if (url.getRawBaseDN() != null)
        {
          return false;
        }
      }
      else
      {
        if (! rawBaseDN.equals(url.getRawBaseDN()))
        {
          return false;
        }
      return Objects.equals(rawBaseDN, url.getRawBaseDN());
      }
    }
    if (scope != url.getScope())
  private boolean filtersEqual(LDAPURL url)
    {
      return false;
    }
    try
    {
      SearchFilter f = getFilter();
      if (! f.equals(url.getFilter()))
      {
        return false;
      }
      return getFilter().equals(url.getFilter());
    }
    catch (Exception e)
    {
      logger.traceException(e);
      if (rawFilter == null)
      {
        if (url.getRawFilter() != null)
        {
          return false;
        }
      }
      else
      {
        if (! rawFilter.equals(url.getRawFilter()))
        {
          return false;
        }
      return Objects.equals(rawFilter, url.getRawFilter());
      }
    }
    if (attributes.size() != url.getAttributes().size())
  private boolean attributesEqual(Set<String> urlAttrs)
  {
    if (attributes.size() != urlAttrs.size())
    {
      return false;
    }
    LinkedHashSet<String> urlAttrs = url.getAttributes();
outerAttrLoop:
    for (String attr : attributes)
    {
      if (urlAttrs.contains(attr))
      if (!urlAttrs.contains(attr) && !containsIgnoreCase(urlAttrs, attr))
      {
        continue;
        return false;
      }
    }
    return true;
      }
  private boolean containsIgnoreCase(Set<String> urlAttrs, String attr)
  {
      for (String attr2 : urlAttrs)
      {
        if (attr.equalsIgnoreCase(attr2))
        {
          continue outerAttrLoop;
        return true;
        }
      }
      return false;
    }
    if (extensions.size() != url.getExtensions().size())
  private boolean extensionsEqual(List<String> extensions)
  {
    if (this.extensions.size() != extensions.size())
    {
      return false;
    }
outerExtLoop:
    for (String ext : extensions)
    for (String ext : this.extensions)
    {
      for (String urlExt : url.getExtensions())
      if (!extensions.contains(ext))
      {
        if (ext.equals(urlExt))
        {
          continue outerExtLoop;
        }
      }
      return false;
    }
    // If we've gotten here, then we'll consider them equal.
    }
    return true;
  }
@@ -1593,4 +1511,3 @@
    }
  }
}
opendj-server-legacy/src/main/java/org/opends/server/types/SearchFilter.java
@@ -3560,18 +3560,13 @@
      return false;
    }
outerComponentLoop:
    for (SearchFilter outerFilter : filterComponents)
    {
      for (SearchFilter innerFilter : f.filterComponents)
      if (!f.filterComponents.contains(outerFilter))
      {
        if (outerFilter.equals(innerFilter))
        {
          continue outerComponentLoop;
        }
      }
      return false;
    }
    }
    return true;
  }