From 58ffacee660a4eb792f49dd311a4e2ddda05afad Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Fri, 25 May 2012 22:12:32 +0000
Subject: [PATCH] Checkpoint local changes: add more attribute mapping support.

---
 opendj3/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/DefaultAttributeMapper.java |   19 ++++++++++++++-----
 1 files changed, 14 insertions(+), 5 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 6b363b7..45f5ead 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
@@ -67,14 +67,23 @@
         }
     }
 
-    public void getLDAPAttributes(Set<String> ldapAttributes, JsonPointer resourceAttribute) {
-        String name = resourceAttribute.leaf();
-        if (name != null) {
+    public void getLDAPAttributes(JsonPointer jsonAttribute, Set<String> ldapAttributes) {
+        switch (jsonAttribute.size()) {
+        case 0:
+            // Requested everything.
+            if (!includedAttributes.isEmpty()) {
+                ldapAttributes.addAll(includedAttributes.values());
+            } else {
+                // All user attributes.
+                ldapAttributes.add("*");
+            }
+            break;
+        default:
+            String name = jsonAttribute.get(0);
             if (isIncludedAttribute(name)) {
                 ldapAttributes.add(name);
-            } else {
-                // FIXME: log something or return a ResourceException?
             }
+            break;
         }
     }
 

--
Gitblit v1.10.0