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/IsMemberOfVirtualAttributeProvider.java | 60 +++++++++++-------------------------------------------------
1 files changed, 11 insertions(+), 49 deletions(-)
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/IsMemberOfVirtualAttributeProvider.java b/opendj3-server-dev/src/server/org/opends/server/extensions/IsMemberOfVirtualAttributeProvider.java
index 054d5f6..bb2870c 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/IsMemberOfVirtualAttributeProvider.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/IsMemberOfVirtualAttributeProvider.java
@@ -26,7 +26,7 @@
*/
package org.opends.server.extensions;
-import java.util.*;
+import java.util.List;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.ldap.ByteString;
@@ -71,34 +71,17 @@
/** {@inheritDoc} */
@Override()
- public Set<AttributeValue> getValues(Entry entry,
- VirtualAttributeRule rule)
+ public Attribute getValues(Entry entry, VirtualAttributeRule rule)
{
// FIXME -- This probably isn't the most efficient implementation.
- Set<AttributeValue> values = null;
+ AttributeBuilder builder = new AttributeBuilder(rule.getAttributeType());
for (Group<?> g : DirectoryServer.getGroupManager().getGroupInstances())
{
try
{
if (g.isMember(entry))
{
- AttributeValue value = AttributeValues.create(
- rule.getAttributeType(), g.getGroupDN().toString());
- if (values == null)
- {
- values = Collections.singleton(value);
- }
- else if (values.size() == 1)
- {
- Set<AttributeValue> tmp = new HashSet<AttributeValue>(2);
- tmp.addAll(values);
- tmp.add(value);
- values = tmp;
- }
- else
- {
- values.add(value);
- }
+ builder.add(g.getGroupDN().toString());
}
}
catch (Exception e)
@@ -106,12 +89,7 @@
logger.traceException(e);
}
}
-
- if (values != null)
- {
- return Collections.unmodifiableSet(values);
- }
- return Collections.emptySet();
+ return builder.toAttribute();
}
/** {@inheritDoc} */
@@ -140,11 +118,11 @@
/** {@inheritDoc} */
@Override()
public boolean hasValue(Entry entry, VirtualAttributeRule rule,
- AttributeValue value)
+ ByteString value)
{
try
{
- DN groupDN = DN.decode(value.getValue());
+ DN groupDN = DN.decode(value);
Group<?> g = DirectoryServer.getGroupManager().getGroupInstance(groupDN);
return g != null && g.isMember(entry);
}
@@ -158,22 +136,6 @@
/** {@inheritDoc} */
@Override()
- public boolean hasAnyValue(Entry entry, VirtualAttributeRule rule,
- Collection<AttributeValue> values)
- {
- for (AttributeValue value : values)
- {
- if (hasValue(entry, rule, value))
- {
- return true;
- }
- }
-
- return false;
- }
-
- /** {@inheritDoc} */
- @Override()
public ConditionResult matchesSubstring(Entry entry,
VirtualAttributeRule rule,
ByteString subInitial,
@@ -188,7 +150,7 @@
@Override()
public ConditionResult greaterThanOrEqualTo(Entry entry,
VirtualAttributeRule rule,
- AttributeValue value)
+ ByteString value)
{
// DNs cannot be used in ordering matching.
return ConditionResult.UNDEFINED;
@@ -198,7 +160,7 @@
@Override()
public ConditionResult lessThanOrEqualTo(Entry entry,
VirtualAttributeRule rule,
- AttributeValue value)
+ ByteString value)
{
// DNs cannot be used in ordering matching.
return ConditionResult.UNDEFINED;
@@ -208,7 +170,7 @@
@Override()
public ConditionResult approximatelyEqualTo(Entry entry,
VirtualAttributeRule rule,
- AttributeValue value)
+ ByteString value)
{
// DNs cannot be used in approximate matching.
return ConditionResult.UNDEFINED;
@@ -354,7 +316,7 @@
{
try
{
- DN dn = DN.decode(filter.getAssertionValue().getValue());
+ DN dn = DN.decode(filter.getAssertionValue());
return DirectoryServer.getGroupManager().getGroupInstance(dn);
}
catch (Exception e)
--
Gitblit v1.10.0