From 377b2709c64b32fe93905b466482216c2cc0581c Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Wed, 19 Mar 2014 16:30:32 +0000
Subject: [PATCH] OPENDJ-1368 (CR-3232) Remove AttributeValue

---
 opendj3-server-dev/src/server/org/opends/server/extensions/MemberVirtualAttributeProvider.java |   58 ++++++++++++++++------------------------------------------
 1 files changed, 16 insertions(+), 42 deletions(-)

diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/MemberVirtualAttributeProvider.java b/opendj3-server-dev/src/server/org/opends/server/extensions/MemberVirtualAttributeProvider.java
index 2cfa855..08c86cc 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/MemberVirtualAttributeProvider.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/MemberVirtualAttributeProvider.java
@@ -26,32 +26,29 @@
  */
 package org.opends.server.extensions;
 
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
 import java.util.List;
-import java.util.Set;
 
 import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
+import org.forgerock.opendj.config.server.ConfigException;
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.ConditionResult;
+import org.forgerock.opendj.ldap.ResultCode;
 import org.opends.server.admin.server.ConfigurationChangeListener;
 import org.opends.server.admin.std.server.MemberVirtualAttributeCfg;
 import org.opends.server.api.Group;
 import org.opends.server.api.VirtualAttributeProvider;
-import org.forgerock.opendj.config.server.ConfigException;
 import org.opends.server.core.DirectoryServer;
+import org.opends.server.types.Attribute;
+import org.opends.server.types.AttributeBuilder;
+import org.opends.server.types.Attributes;
 import org.opends.server.core.SearchOperation;
-import org.opends.server.types.AttributeValue;
-import org.opends.server.types.AttributeValues;
 import org.opends.server.types.ConfigChangeResult;
 import org.opends.server.types.DN;
 import org.opends.server.types.Entry;
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.MemberList;
 import org.opends.server.types.MembershipException;
-import org.forgerock.opendj.ldap.ResultCode;
 import org.opends.server.types.VirtualAttributeRule;
 
 /**
@@ -112,22 +109,21 @@
    * {@inheritDoc}
    */
   @Override()
-  public Set<AttributeValue> getValues(Entry entry,
-                                       VirtualAttributeRule rule)
+  public Attribute getValues(Entry entry, VirtualAttributeRule rule)
   {
     if (! currentConfig.isAllowRetrievingMembership())
     {
-      return Collections.emptySet();
+      return Attributes.empty(rule.getAttributeType());
     }
 
     Group<?> g =
       DirectoryServer.getGroupManager().getGroupInstance(entry.getName());
     if (g == null)
     {
-      return Collections.emptySet();
+      return Attributes.empty(rule.getAttributeType());
     }
 
-    HashSet<AttributeValue> values = new HashSet<AttributeValue>();
+    AttributeBuilder builder = new AttributeBuilder(rule.getAttributeType());
     try
     {
       MemberList memberList = g.getMembers();
@@ -138,8 +134,7 @@
           DN memberDN = memberList.nextMemberDN();
           if (memberDN != null)
           {
-            values.add(AttributeValues.create(rule.getAttributeType(),
-                                          memberDN.toString()));
+            builder.add(ByteString.valueOf(memberDN.toString()));
           }
         }
         catch (MembershipException me)
@@ -156,7 +151,7 @@
       logger.traceException(e);
     }
 
-    return Collections.unmodifiableSet(values);
+    return builder.toAttribute();
   }
 
 
@@ -211,8 +206,7 @@
    * {@inheritDoc}
    */
   @Override()
-  public boolean hasValue(Entry entry, VirtualAttributeRule rule,
-                          AttributeValue value)
+  public boolean hasValue(Entry entry, VirtualAttributeRule rule, ByteString value)
   {
     Group<?> g =
       DirectoryServer.getGroupManager().getGroupInstance(entry.getName());
@@ -223,7 +217,7 @@
 
     try
     {
-      return g.isMember(DN.decode(value.getValue()));
+      return g.isMember(DN.decode(value));
     }
     catch (Exception e)
     {
@@ -239,26 +233,6 @@
    * {@inheritDoc}
    */
   @Override()
-  public boolean hasAnyValue(Entry entry, VirtualAttributeRule rule,
-                             Collection<AttributeValue> values)
-  {
-    for (AttributeValue v : values)
-    {
-      if (hasValue(entry, rule, v))
-      {
-        return true;
-      }
-    }
-
-    return false;
-  }
-
-
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override()
   public ConditionResult matchesSubstring(Entry entry,
                                           VirtualAttributeRule rule,
                                           ByteString subInitial,
@@ -277,7 +251,7 @@
   @Override()
   public ConditionResult greaterThanOrEqualTo(Entry entry,
                               VirtualAttributeRule rule,
-                              AttributeValue value)
+                              ByteString value)
   {
     // DNs cannot be used in ordering matching.
     return ConditionResult.UNDEFINED;
@@ -291,7 +265,7 @@
   @Override()
   public ConditionResult lessThanOrEqualTo(Entry entry,
                               VirtualAttributeRule rule,
-                              AttributeValue value)
+                              ByteString value)
   {
     // DNs cannot be used in ordering matching.
     return ConditionResult.UNDEFINED;
@@ -305,7 +279,7 @@
   @Override()
   public ConditionResult approximatelyEqualTo(Entry entry,
                               VirtualAttributeRule rule,
-                              AttributeValue value)
+                              ByteString value)
   {
     // DNs cannot be used in approximate matching.
     return ConditionResult.UNDEFINED;

--
Gitblit v1.10.0