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