From cd57b969289f568da79e41fffe451aa0ed837722 Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Wed, 28 Jan 2009 23:43:17 +0000
Subject: [PATCH] Fix issue 3446 and improve fix for issue 3726:
---
opends/src/server/org/opends/server/extensions/UserDefinedVirtualAttributeProvider.java | 32 ++++++++++++++++++++------------
1 files changed, 20 insertions(+), 12 deletions(-)
diff --git a/opends/src/server/org/opends/server/extensions/UserDefinedVirtualAttributeProvider.java b/opends/src/server/org/opends/server/extensions/UserDefinedVirtualAttributeProvider.java
index 33ed8d2..f893cd7 100644
--- a/opends/src/server/org/opends/server/extensions/UserDefinedVirtualAttributeProvider.java
+++ b/opends/src/server/org/opends/server/extensions/UserDefinedVirtualAttributeProvider.java
@@ -22,14 +22,15 @@
* CDDL HEADER END
*
*
- * Copyright 2008 Sun Microsystems, Inc.
+ * Copyright 2008-2009 Sun Microsystems, Inc.
*/
package org.opends.server.extensions;
import org.opends.messages.Message;
-import java.util.LinkedHashSet;
+import java.util.Collections;
+import java.util.HashSet;
import java.util.List;
import java.util.Set;
@@ -124,20 +125,27 @@
* {@inheritDoc}
*/
@Override()
- public LinkedHashSet<AttributeValue> getValues(Entry entry,
- VirtualAttributeRule rule)
+ public Set<AttributeValue> getValues(Entry entry,
+ VirtualAttributeRule rule)
{
AttributeType attributeType = rule.getAttributeType();
Set<String> userDefinedValues = currentConfig.getValue();
-
- LinkedHashSet<AttributeValue> values =
- new LinkedHashSet<AttributeValue>(userDefinedValues.size());
- for (String valueString : userDefinedValues)
- {
- values.add(new AttributeValue(attributeType, valueString));
+ switch (userDefinedValues.size()) {
+ case 0:
+ return Collections.emptySet();
+ case 1:
+ String valueString = userDefinedValues.iterator().next();
+ AttributeValue value = new AttributeValue(attributeType, valueString);
+ return Collections.singleton(value);
+ default:
+ HashSet<AttributeValue> values =
+ new HashSet<AttributeValue>(userDefinedValues.size());
+ for (String valueString2 : userDefinedValues)
+ {
+ values.add(new AttributeValue(attributeType, valueString2));
+ }
+ return Collections.unmodifiableSet(values);
}
-
- return values;
}
--
Gitblit v1.10.0