From ab91fa0bcce896e020ff1be42ed994b95e26b8a0 Mon Sep 17 00:00:00 2001
From: Violette Roche-Montane <violette.roche-montane@forgerock.com>
Date: Mon, 14 Apr 2014 14:39:19 +0000
Subject: [PATCH] OPENDJ-1373 - Added Scope converter.

---
 opendj-server3x-adapter/src/test/java/org/forgerock/opendj/adapter/server3x/ConvertersTestCase.java |   16 ++++++++++++++++
 opendj-server3x-adapter/src/main/java/org/forgerock/opendj/adapter/server3x/Converters.java         |   28 ++++++++++++++++++++++++++++
 2 files changed, 44 insertions(+), 0 deletions(-)

diff --git a/opendj-server3x-adapter/src/main/java/org/forgerock/opendj/adapter/server3x/Converters.java b/opendj-server3x-adapter/src/main/java/org/forgerock/opendj/adapter/server3x/Converters.java
index 862edc2..854208f 100644
--- a/opendj-server3x-adapter/src/main/java/org/forgerock/opendj/adapter/server3x/Converters.java
+++ b/opendj-server3x-adapter/src/main/java/org/forgerock/opendj/adapter/server3x/Converters.java
@@ -46,6 +46,7 @@
 import org.forgerock.opendj.ldap.LinkedHashMapEntry;
 import org.forgerock.opendj.ldap.RDN;
 import org.forgerock.opendj.ldap.ResultCode;
+import org.forgerock.opendj.ldap.SearchScope;
 import org.forgerock.opendj.ldap.controls.Control;
 import org.forgerock.opendj.ldap.controls.GenericControl;
 import org.forgerock.opendj.ldap.responses.Responses;
@@ -579,6 +580,33 @@
     }
 
     /**
+     * Converts from OpenDJ server
+     * {@link org.opends.server.admin.std.meta.VirtualAttributeCfgDefn.Scope} to OpenDJ LDAP SDK
+     * {@link org.forgerock.opendj.ldap.SearchScope}.
+     *
+     * @param srvScope
+     *          The server scope value.
+     * @return The SDK scope value.
+     */
+    public static SearchScope from(
+            org.opends.server.admin.std.meta.VirtualAttributeCfgDefn.Scope srvScope) {
+        if (srvScope != null && srvScope.name() != null) {
+            final String srvScopeName = srvScope.name().toLowerCase();
+            if ("base_object".equals(srvScopeName)) {
+                return SearchScope.BASE_OBJECT;
+            } else if ("single_level".equals(srvScopeName)) {
+                return SearchScope.SINGLE_LEVEL;
+            } else if ("subordinate_subtree".equals(srvScopeName)) {
+                return SearchScope.SUBORDINATES;
+            } else if ("whole_subtree".equals(srvScopeName)) {
+                return SearchScope.WHOLE_SUBTREE;
+            }
+        }
+        return null;
+    }
+
+
+    /**
      * Converts from OpenDJ server {@link org.opends.server.types.DN} to OpenDJ
      * LDAP SDK {@link DN}.
      *
diff --git a/opendj-server3x-adapter/src/test/java/org/forgerock/opendj/adapter/server3x/ConvertersTestCase.java b/opendj-server3x-adapter/src/test/java/org/forgerock/opendj/adapter/server3x/ConvertersTestCase.java
index 6ed26f5..b2bf954 100644
--- a/opendj-server3x-adapter/src/test/java/org/forgerock/opendj/adapter/server3x/ConvertersTestCase.java
+++ b/opendj-server3x-adapter/src/test/java/org/forgerock/opendj/adapter/server3x/ConvertersTestCase.java
@@ -58,6 +58,7 @@
 import org.forgerock.opendj.ldap.responses.Responses;
 import org.forgerock.opendj.ldap.responses.Result;
 import org.forgerock.testng.ForgeRockTestCase;
+import org.opends.server.admin.std.meta.VirtualAttributeCfgDefn.Scope;
 import org.opends.server.core.BindOperation;
 import org.opends.server.core.CompareOperation;
 import org.opends.server.core.DirectoryServer;
@@ -469,6 +470,21 @@
     }
 
     /**
+     * Converts an Scope to an SDK Scope.
+     */
+    @Test()
+    public static void testFromScope() {
+        // WHOLE SUBTREE
+        assertThat(org.forgerock.opendj.ldap.SearchScope.WHOLE_SUBTREE).isEqualTo(from(Scope.WHOLE_SUBTREE));
+        // BASE OBJECT
+        assertThat(org.forgerock.opendj.ldap.SearchScope.BASE_OBJECT).isEqualTo(from(Scope.BASE_OBJECT));
+        // SINGLE LEVEL
+        assertThat(org.forgerock.opendj.ldap.SearchScope.SINGLE_LEVEL).isEqualTo(from(Scope.SINGLE_LEVEL));
+        // SUBORDINATE
+        assertThat(org.forgerock.opendj.ldap.SearchScope.SUBORDINATES).isEqualTo(from(Scope.SUBORDINATE_SUBTREE));
+    }
+
+    /**
      * Converts a server control to an SDK control.
      */
     @Test()

--
Gitblit v1.10.0