From a08c81f677247ec9eb7721a86250c663065e9930 Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Wed, 22 Jun 2016 22:12:03 +0000
Subject: [PATCH] OPENDJ-2871 Add support for sub-resources and inheritance

---
 opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/JsonConstantPropertyMapper.java |   46 ++++++++++++++++++++++------------------------
 1 files changed, 22 insertions(+), 24 deletions(-)

diff --git a/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/JsonConstantPropertyMapper.java b/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/JsonConstantPropertyMapper.java
index 230d2b7..f171ad8 100644
--- a/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/JsonConstantPropertyMapper.java
+++ b/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/JsonConstantPropertyMapper.java
@@ -22,6 +22,7 @@
 import static org.forgerock.opendj.rest2ldap.Utils.newBadRequestException;
 import static org.forgerock.opendj.rest2ldap.Utils.toFilter;
 import static org.forgerock.opendj.rest2ldap.Utils.toLowerCase;
+import static org.forgerock.util.promise.Promises.newResultPromise;
 
 import java.util.Collections;
 import java.util.List;
@@ -37,7 +38,6 @@
 import org.forgerock.opendj.ldap.Filter;
 import org.forgerock.opendj.ldap.Modification;
 import org.forgerock.util.promise.Promise;
-import org.forgerock.util.promise.Promises;
 
 /**
  * An property mapper which maps a single JSON attribute to a fixed value.
@@ -55,26 +55,26 @@
     }
 
     @Override
-    Promise<List<Attribute>, ResourceException> create(final Connection connection, final JsonPointer path,
-            final JsonValue v) {
+    Promise<List<Attribute>, ResourceException> create(final Connection connection,
+                                                       final Resource resource, final JsonPointer path,
+                                                       final JsonValue v) {
         if (!isNullOrEmpty(v) && !v.getObject().equals(value.getObject())) {
-            return Promises.<List<Attribute>, ResourceException> newExceptionPromise(
-                    newBadRequestException(ERR_CREATION_READ_ONLY_FIELD.get(path)));
+            return newBadRequestException(ERR_CREATION_READ_ONLY_FIELD.get(path)).asPromise();
         } else {
-            return Promises.newResultPromise(Collections.<Attribute> emptyList());
+            return newResultPromise(Collections.<Attribute> emptyList());
         }
     }
 
     @Override
-    void getLdapAttributes(final Connection connection, final JsonPointer path, final JsonPointer subPath,
-                           final Set<String> ldapAttributes) {
+    void getLdapAttributes(final JsonPointer path, final JsonPointer subPath, final Set<String> ldapAttributes) {
         // Nothing to do.
     }
 
     @Override
-    Promise<Filter, ResourceException> getLdapFilter(final Connection connection, final JsonPointer path,
-                                                     final JsonPointer subPath, final FilterType type,
-                                                     final String operator, final Object valueAssertion) {
+    Promise<Filter, ResourceException> getLdapFilter(final Connection connection, final Resource resource,
+                                                     final JsonPointer path, final JsonPointer subPath,
+                                                     final FilterType type, final String operator,
+                                                     final Object valueAssertion) {
         final Filter filter;
         final JsonValue subValue = value.get(subPath);
         if (subValue == null) {
@@ -107,29 +107,28 @@
             // This property mapper is a candidate but it does not match.
             filter = alwaysFalse();
         }
-        return Promises.newResultPromise(filter);
+        return newResultPromise(filter);
     }
 
     @Override
-    Promise<List<Modification>, ResourceException> patch(final Connection connection, final JsonPointer path,
-            final PatchOperation operation) {
-        return Promises.<List<Modification>, ResourceException> newExceptionPromise(
-                newBadRequestException(ERR_PATCH_READ_ONLY_FIELD.get(path)));
+    Promise<List<Modification>, ResourceException> patch(final Connection connection, final Resource resource,
+                                                         final JsonPointer path, final PatchOperation operation) {
+        return newBadRequestException(ERR_PATCH_READ_ONLY_FIELD.get(path)).asPromise();
     }
 
     @Override
-    Promise<JsonValue, ResourceException> read(final Connection connection, final JsonPointer path, final Entry e) {
-        return Promises.newResultPromise(value.copy());
+    Promise<JsonValue, ResourceException> read(final Connection connection, final Resource resource,
+                                               final JsonPointer path, final Entry e) {
+        return newResultPromise(value.copy());
     }
 
     @Override
-    Promise<List<Modification>, ResourceException> update(
-            final Connection connection, final JsonPointer path, final Entry e, final JsonValue v) {
+    Promise<List<Modification>, ResourceException> update(final Connection connection, final Resource resource,
+                                                          final JsonPointer path, final Entry e, final JsonValue v) {
         if (!isNullOrEmpty(v) && !v.getObject().equals(value.getObject())) {
-            return Promises.<List<Modification>, ResourceException> newExceptionPromise(
-                    newBadRequestException(ERR_MODIFY_READ_ONLY_FIELD.get("update", path)));
+            return newBadRequestException(ERR_MODIFY_READ_ONLY_FIELD.get("update", path)).asPromise();
         } else {
-            return Promises.newResultPromise(Collections.<Modification> emptyList());
+            return newResultPromise(Collections.<Modification>emptyList());
         }
     }
 
@@ -149,5 +148,4 @@
             return alwaysFalse(); // Not supported.
         }
     }
-
 }

--
Gitblit v1.10.0