From 128ba28f7c5d5ec1e2e8b08acf590e4ff2062432 Mon Sep 17 00:00:00 2001
From: Jean-Noël Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Mon, 07 Mar 2016 15:44:49 +0000
Subject: [PATCH] Use switch statement with SearchScope instead of if statement

---
 opendj-sdk/opendj-core/src/main/java/org/forgerock/opendj/ldap/MemoryBackend.java |   16 +++++++++++-----
 opendj-sdk/opendj-core/src/main/java/org/forgerock/opendj/ldap/DN.java            |   11 ++++++-----
 2 files changed, 17 insertions(+), 10 deletions(-)

diff --git a/opendj-sdk/opendj-core/src/main/java/org/forgerock/opendj/ldap/DN.java b/opendj-sdk/opendj-core/src/main/java/org/forgerock/opendj/ldap/DN.java
index d93d03f..ee69eba 100644
--- a/opendj-sdk/opendj-core/src/main/java/org/forgerock/opendj/ldap/DN.java
+++ b/opendj-sdk/opendj-core/src/main/java/org/forgerock/opendj/ldap/DN.java
@@ -511,20 +511,21 @@
      *             If {@code dn} or {@code scope} was {@code null}.
      */
     public boolean isInScopeOf(DN dn, SearchScope scope) {
-        if (scope == SearchScope.BASE_OBJECT) {
+        switch (scope.asEnum()) {
+        case BASE_OBJECT:
             // The base DN must equal this DN.
             return equals(dn);
-        } else if (scope == SearchScope.SINGLE_LEVEL) {
+        case SINGLE_LEVEL:
             // The parent DN must equal the base DN.
             return isChildOf(dn);
-        } else if (scope == SearchScope.SUBORDINATES) {
+        case SUBORDINATES:
             // This DN must be a descendant of the provided base DN, but
             // not equal to it.
             return isSubordinateOrEqualTo(dn) && !equals(dn);
-        } else if (scope == SearchScope.WHOLE_SUBTREE) {
+        case WHOLE_SUBTREE:
             // This DN must be a descendant of the provided base DN.
             return isSubordinateOrEqualTo(dn);
-        } else {
+        default:
             // This is a scope that we don't recognize.
             return false;
         }
diff --git a/opendj-sdk/opendj-core/src/main/java/org/forgerock/opendj/ldap/MemoryBackend.java b/opendj-sdk/opendj-core/src/main/java/org/forgerock/opendj/ldap/MemoryBackend.java
index 3b42be5..714817d 100644
--- a/opendj-sdk/opendj-core/src/main/java/org/forgerock/opendj/ldap/MemoryBackend.java
+++ b/opendj-sdk/opendj-core/src/main/java/org/forgerock/opendj/ldap/MemoryBackend.java
@@ -11,7 +11,7 @@
  * Header, with the fields enclosed by brackets [] replaced by your own identifying
  * information: "Portions Copyright [year] [name of copyright owner]".
  *
- * Copyright 2013-2015 ForgeRock AS.
+ * Copyright 2013-2016 ForgeRock AS.
  */
 package org.forgerock.opendj.ldap;
 
@@ -379,18 +379,24 @@
             final Matcher matcher = filter.matcher(schema);
             final AttributeFilter attributeFilter =
                 new AttributeFilter(request.getAttributes(), schema).typesOnly(request.isTypesOnly());
-            if (scope.equals(SearchScope.BASE_OBJECT)) {
+            switch (scope.asEnum()) {
+            case BASE_OBJECT:
                 final Entry baseEntry = getRequiredEntry(request, dn);
                 if (matcher.matches(baseEntry).toBoolean()) {
                     sendEntry(attributeFilter, entryHandler, baseEntry);
                 }
                 resultHandler.handleResult(newResult(ResultCode.SUCCESS));
-            } else if (scope.equals(SearchScope.SINGLE_LEVEL) || scope.equals(SearchScope.SUBORDINATES)
-                || scope.equals(SearchScope.WHOLE_SUBTREE)) {
+                break;
+
+            case SINGLE_LEVEL:
+            case SUBORDINATES:
+            case WHOLE_SUBTREE:
                 searchWithSubordinates(requestContext, entryHandler, resultHandler, dn, matcher, attributeFilter,
                     request.getSizeLimit(), scope,
                     request.getControl(SimplePagedResultsControl.DECODER, new DecodeOptions()));
-            } else {
+                break;
+
+            default:
                 throw newLdapException(ResultCode.PROTOCOL_ERROR,
                         "Search request contains an unsupported search scope");
             }

--
Gitblit v1.10.0