From bdc34b39ae76a66f786bbb6d46b20e0785bb99e7 Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Thu, 29 Oct 2015 12:16:19 +0000
Subject: [PATCH] OPENDJ-2328: Optimize UUID equality matching rule indexing

---
 opendj-server-legacy/src/main/java/org/opends/server/extensions/EntryUUIDVirtualAttributeProvider.java |   30 ++----------------------------
 1 files changed, 2 insertions(+), 28 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/server/extensions/EntryUUIDVirtualAttributeProvider.java b/opendj-server-legacy/src/main/java/org/opends/server/extensions/EntryUUIDVirtualAttributeProvider.java
index 283883b..7ab14d5 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/extensions/EntryUUIDVirtualAttributeProvider.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/extensions/EntryUUIDVirtualAttributeProvider.java
@@ -32,11 +32,9 @@
 import java.util.UUID;
 
 import org.forgerock.i18n.LocalizableMessage;
-import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.ConditionResult;
 import org.forgerock.opendj.ldap.ResultCode;
-import org.forgerock.opendj.ldap.schema.MatchingRule;
 import org.opends.server.admin.std.server.EntryUUIDVirtualAttributeCfg;
 import org.opends.server.api.VirtualAttributeProvider;
 import org.opends.server.core.SearchOperation;
@@ -56,8 +54,6 @@
 public class EntryUUIDVirtualAttributeProvider
        extends VirtualAttributeProvider<EntryUUIDVirtualAttributeCfg>
 {
-  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
-
   /**
    * Creates a new instance of this entryUUID virtual attribute provider.
    */
@@ -80,13 +76,9 @@
   @Override
   public Attribute getValues(Entry entry, VirtualAttributeRule rule)
   {
-    return Attributes.create(rule.getAttributeType(), getUUIDString(entry));
-  }
-
-  private String getUUIDString(Entry entry)
-  {
     ByteString normDN = entry.getName().toNormalizedByteString();
-    return UUID.nameUUIDFromBytes(normDN.toByteArray()).toString();
+    String uuid = UUID.nameUUIDFromBytes(normDN.toByteArray()).toString();
+    return Attributes.create(rule.getAttributeType(), uuid);
   }
 
   /** {@inheritDoc} */
@@ -99,24 +91,6 @@
 
   /** {@inheritDoc} */
   @Override
-  public boolean hasValue(Entry entry, VirtualAttributeRule rule, ByteString value)
-  {
-    MatchingRule matchingRule = rule.getAttributeType().getEqualityMatchingRule();
-    try
-    {
-      String uuidString = getUUIDString(entry);
-      ByteString normValue = matchingRule.normalizeAttributeValue(value);
-      return uuidString.equals(normValue.toString());
-    }
-    catch (Exception e)
-    {
-      logger.traceException(e);
-      return false;
-    }
-  }
-
-  /** {@inheritDoc} */
-  @Override
   public ConditionResult matchesSubstring(Entry entry,
                                           VirtualAttributeRule rule,
                                           ByteString subInitial,

--
Gitblit v1.10.0