From 33255bfee39fb3cb3813894831a76bc7c014c13a Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Fri, 08 Feb 2013 18:23:37 +0000
Subject: [PATCH] Partial fix for OPENDJ-691: Implement add/create support
---
opendj3/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/CompositeAttributeMapper.java | 26 +++++++++++++++++++++++++-
1 files changed, 25 insertions(+), 1 deletions(-)
diff --git a/opendj3/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/CompositeAttributeMapper.java b/opendj3/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/CompositeAttributeMapper.java
index ca359ed..cf77ea8 100644
--- a/opendj3/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/CompositeAttributeMapper.java
+++ b/opendj3/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/CompositeAttributeMapper.java
@@ -121,7 +121,31 @@
@Override
void toLDAP(final Context c, final JsonValue v, final ResultHandler<List<Attribute>> h) {
- // TODO Auto-generated method stub
+ final ResultHandler<List<Attribute>> handler =
+ accumulate(attributeMappers.size(), transform(
+ new Function<List<List<Attribute>>, List<Attribute>, Void>() {
+ @Override
+ public List<Attribute> apply(final List<List<Attribute>> value,
+ final Void p) {
+ switch (value.size()) {
+ case 0:
+ return Collections.emptyList();
+ case 1:
+ return value.get(0) != null ? value.get(0) : Collections
+ .<Attribute> emptyList();
+ default:
+ List<Attribute> attributes =
+ new ArrayList<Attribute>(value.size());
+ for (List<Attribute> a : value) {
+ attributes.addAll(a);
+ }
+ return attributes;
+ }
+ }
+ }, h));
+ for (final AttributeMapper mapper : attributeMappers) {
+ mapper.toLDAP(c, v, handler);
+ }
}
@SuppressWarnings("unchecked")
--
Gitblit v1.10.0