From 4ba67b612ac446dd8e0a83689983499491324eef Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Mon, 11 Feb 2013 14:13:31 +0000
Subject: [PATCH] Fix OPENDJ-691: Implement add/create support
---
opendj3/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/DefaultAttributeMapper.java | 35 ++++-------------------------------
1 files changed, 4 insertions(+), 31 deletions(-)
diff --git a/opendj3/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/DefaultAttributeMapper.java b/opendj3/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/DefaultAttributeMapper.java
index 3d29ddc..96b68f7 100644
--- a/opendj3/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/DefaultAttributeMapper.java
+++ b/opendj3/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/DefaultAttributeMapper.java
@@ -17,11 +17,11 @@
import static org.forgerock.opendj.rest2ldap.Utils.attributeToJson;
import static org.forgerock.opendj.rest2ldap.Utils.getAttributeName;
+import static org.forgerock.opendj.rest2ldap.Utils.jsonToAttribute;
import static org.forgerock.opendj.rest2ldap.Utils.toFilter;
import static org.forgerock.opendj.rest2ldap.Utils.toLowerCase;
import java.util.ArrayList;
-import java.util.Collection;
import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.List;
@@ -34,7 +34,6 @@
import org.forgerock.json.resource.ResultHandler;
import org.forgerock.opendj.ldap.Attribute;
import org.forgerock.opendj.ldap.AttributeDescription;
-import org.forgerock.opendj.ldap.Attributes;
import org.forgerock.opendj.ldap.Entry;
import org.forgerock.opendj.ldap.Filter;
@@ -138,38 +137,16 @@
if (!isIncludedAttribute(field.getKey())) {
continue;
}
- final AttributeDescription ad;
try {
- ad = AttributeDescription.valueOf(field.getKey(), c.getConfig().schema());
+ final AttributeDescription ad =
+ AttributeDescription.valueOf(field.getKey(), c.getConfig().schema());
+ result.add(jsonToAttribute(field.getValue(), ad));
} catch (final Exception e) {
// FIXME: improve error message.
h.handleError(new BadRequestException("The field " + field.getKey()
+ " is invalid"));
return;
}
- final Object value = field.getValue();
- if (isJSONPrimitive(value)) {
- result.add(Attributes.singletonAttribute(ad, value));
- } else if (value instanceof Collection<?>) {
- final Attribute a =
- c.getConfig().decodeOptions().getAttributeFactory().newAttribute(ad);
- for (final Object o : (Collection<?>) value) {
- if (isJSONPrimitive(o)) {
- a.add(o);
- } else {
- // FIXME: improve error message.
- h.handleError(new BadRequestException("The field " + field.getKey()
- + " is invalid"));
- return;
- }
- }
- result.add(a);
- } else {
- // FIXME: improve error message.
- h.handleError(new BadRequestException("The field " + field.getKey()
- + " is invalid"));
- return;
- }
}
h.handleResult(result);
} else {
@@ -192,8 +169,4 @@
return false;
}
-
- private boolean isJSONPrimitive(final Object value) {
- return value instanceof String || value instanceof Boolean || value instanceof Number;
- }
}
--
Gitblit v1.10.0