From e4c0edea06c8fee28369f03f393b7d54b2b6235c Mon Sep 17 00:00:00 2001
From: Jean-Noël Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Fri, 16 Sep 2016 13:25:06 +0000
Subject: [PATCH] OPENDJ-3246 Return the CREST descriptor over REST for rest2ldap endpoints
---
opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/ReferencePropertyMapper.java | 21 ++++++++++++++++-----
1 files changed, 16 insertions(+), 5 deletions(-)
diff --git a/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/ReferencePropertyMapper.java b/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/ReferencePropertyMapper.java
index a1496b3..69169a4 100644
--- a/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/ReferencePropertyMapper.java
+++ b/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/ReferencePropertyMapper.java
@@ -15,14 +15,15 @@
*/
package org.forgerock.opendj.rest2ldap;
+import static org.forgerock.json.JsonValue.*;
import static org.forgerock.opendj.ldap.ResultCode.ADMIN_LIMIT_EXCEEDED;
-import static org.forgerock.opendj.rest2ldap.Rest2ldapMessages.*;
import static org.forgerock.opendj.ldap.LdapException.newLdapException;
import static org.forgerock.opendj.ldap.requests.Requests.newSearchRequest;
import static org.forgerock.opendj.rest2ldap.Rest2Ldap.asResourceException;
+import static org.forgerock.opendj.rest2ldap.Rest2ldapMessages.*;
import static org.forgerock.opendj.rest2ldap.Utils.connectionFrom;
-import static org.forgerock.util.Reject.checkNotNull;
import static org.forgerock.opendj.rest2ldap.Utils.newBadRequestException;
+import static org.forgerock.util.Reject.checkNotNull;
import static org.forgerock.util.promise.Promises.newResultPromise;
import java.util.ArrayList;
@@ -67,9 +68,7 @@
* valued LDAP attribute.
*/
public final class ReferencePropertyMapper extends AbstractLdapPropertyMapper<ReferencePropertyMapper> {
- /**
- * The maximum number of candidate references to allow in search filters.
- */
+ /** The maximum number of candidate references to allow in search filters. */
private static final int SEARCH_MAX_CANDIDATES = 1000;
private final DnTemplate baseDnTemplate;
@@ -358,4 +357,16 @@
}
});
}
+
+ @Override
+ JsonValue toJsonSchema() {
+ if (mapper.isMultiValued()) {
+ final JsonValue jsonSchema = json(object(field("type", "array")));
+ jsonSchema.put("items", mapper.toJsonSchema());
+ jsonSchema.put("uniqueItems", true);
+ putWritabilityProperties(jsonSchema);
+ return jsonSchema;
+ }
+ return mapper.toJsonSchema();
+ }
}
--
Gitblit v1.10.0