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/UserDefinedVirtualAttributeProvider.java |   41 +++++++++++++++--------------------------
 1 files changed, 15 insertions(+), 26 deletions(-)

diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/UserDefinedVirtualAttributeProvider.java b/opendj3-server-dev/src/server/org/opends/server/extensions/UserDefinedVirtualAttributeProvider.java
index 628d5b8..88f714e 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/UserDefinedVirtualAttributeProvider.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/UserDefinedVirtualAttributeProvider.java
@@ -25,23 +25,18 @@
  *      Portions Copyright 2012-2014 ForgeRock AS
  */
 package org.opends.server.extensions;
-import org.forgerock.i18n.LocalizableMessage;
 
-
-
-import java.util.Collections;
-import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.opendj.config.server.ConfigException;
+import org.forgerock.opendj.ldap.ResultCode;
 import org.opends.server.admin.server.ConfigurationChangeListener;
 import org.opends.server.admin.std.server.UserDefinedVirtualAttributeCfg;
 import org.opends.server.api.VirtualAttributeProvider;
-import org.forgerock.opendj.config.server.ConfigException;
 import org.opends.server.core.SearchOperation;
 import org.opends.server.types.*;
-import org.forgerock.opendj.ldap.ResultCode;
-
 
 /**
  * This class implements a virtual attribute provider that allows administrators
@@ -103,14 +98,11 @@
   @Override()
   public boolean isMultiValued()
   {
-    if (currentConfig == null)
+    if (currentConfig != null)
     {
-      return true;
+      return currentConfig.getValue().size() > 1;
     }
-    else
-    {
-      return (currentConfig.getValue().size() > 1);
-    }
+    return true;
   }
 
 
@@ -119,28 +111,23 @@
    * {@inheritDoc}
    */
   @Override()
-  public Set<AttributeValue> getValues(Entry entry,
-                                       VirtualAttributeRule rule)
+  public Attribute getValues(Entry entry, VirtualAttributeRule rule)
   {
-    AttributeType attributeType = rule.getAttributeType();
     Set<String> userDefinedValues = currentConfig.getValue();
 
     switch (userDefinedValues.size()) {
     case 0:
-      return Collections.emptySet();
+      return Attributes.empty(rule.getAttributeType());
     case 1:
       String valueString = userDefinedValues.iterator().next();
-      AttributeValue value =
-          AttributeValues.create(attributeType, valueString);
-      return Collections.singleton(value);
+      return Attributes.create(rule.getAttributeType(), valueString);
     default:
-      HashSet<AttributeValue> values =
-          new HashSet<AttributeValue>(userDefinedValues.size());
-      for (String valueString2 : userDefinedValues)
+      AttributeBuilder builder = new AttributeBuilder(rule.getAttributeType());
+      for (String valueStr : userDefinedValues)
       {
-        values.add(AttributeValues.create(attributeType, valueString2));
+        builder.add(valueStr);
       }
-      return Collections.unmodifiableSet(values);
+      return builder.toAttribute();
     }
   }
 
@@ -176,6 +163,7 @@
   /**
    * {@inheritDoc}
    */
+  @Override
   public boolean isConfigurationChangeAcceptable(
                       UserDefinedVirtualAttributeCfg configuration,
                       List<LocalizableMessage> unacceptableReasons)
@@ -189,6 +177,7 @@
   /**
    * {@inheritDoc}
    */
+  @Override
   public ConfigChangeResult applyConfigurationChange(
                                  UserDefinedVirtualAttributeCfg configuration)
   {

--
Gitblit v1.10.0