From 5d8774080700c97c4f290818e4b5aa42a209740b Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Wed, 23 May 2012 16:39:10 +0000
Subject: [PATCH] Add support for complex and simple JSON attribute mappings.

---
 opendj3/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/Example.java |   13 ++++++++++---
 1 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/opendj3/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/Example.java b/opendj3/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/Example.java
index 2994682..651c38d 100644
--- a/opendj3/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/Example.java
+++ b/opendj3/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/Example.java
@@ -61,8 +61,15 @@
 
         // Create user resource.
         AttributeMapper userMapper =
-                new SimpleAttributeMapper().includeAttribute("uid", "cn", "sn", "mail",
-                        "isMemberOf", "modifyTimestamp");
+                new CompositeAttributeMapper().addMapper(
+                        new DefaultAttributeMapper().includeAttribute("uid", "isMemberOf",
+                                "modifyTimestamp")).addMapper(
+                        new ComplexAttributeMapper("name", new DefaultAttributeMapper()
+                                .includeAttribute("cn", "sn", "givenName"))).addMapper(
+                        new ComplexAttributeMapper("contactInformation",
+                                new CompositeAttributeMapper().addMapper(
+                                        new SimpleAttributeMapper("telephoneNumber")).addMapper(
+                                        new SimpleAttributeMapper("emailAddress", "mail"))));
         LDAPResource userResource = new LDAPResource(userContainer, userMapper);
         ResourceInvoker userResourceInvoker = new ResourceInvoker();
         userResourceInvoker.resource = userResource; // FIXME: Yuk!
@@ -70,7 +77,7 @@
 
         // Create group resource.
         AttributeMapper groupMapper =
-                new SimpleAttributeMapper().includeAttribute("cn", "ou", "description",
+                new DefaultAttributeMapper().includeAttribute("cn", "ou", "description",
                         "uniquemember");
         LDAPResource groupResource = new LDAPResource(groupContainer, groupMapper);
         ResourceInvoker groupResourceInvoker = new ResourceInvoker();

--
Gitblit v1.10.0