From 333c7b4a76e819dec8d2b46a381e323266a16059 Mon Sep 17 00:00:00 2001
From: Nicolas Capponi <nicolas.capponi@forgerock.com>
Date: Thu, 03 Apr 2014 13:53:49 +0000
Subject: [PATCH] Checkpoint commit for OPENDJ-1308 Migrate schema support

---
 opendj3-server-dev/src/server/org/opends/server/api/EqualityMatchingRule.java |   41 +++++++++++++++++++++++++++++++++++++++++
 1 files changed, 41 insertions(+), 0 deletions(-)

diff --git a/opendj3-server-dev/src/server/org/opends/server/api/EqualityMatchingRule.java b/opendj3-server-dev/src/server/org/opends/server/api/EqualityMatchingRule.java
index 05a364e..81251f7 100644
--- a/opendj3-server-dev/src/server/org/opends/server/api/EqualityMatchingRule.java
+++ b/opendj3-server-dev/src/server/org/opends/server/api/EqualityMatchingRule.java
@@ -26,8 +26,13 @@
  */
 package org.opends.server.api;
 
+import org.forgerock.opendj.ldap.Assertion;
 import org.forgerock.opendj.ldap.ByteSequence;
+import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.ConditionResult;
+import org.forgerock.opendj.ldap.DecodeException;
+import org.forgerock.opendj.ldap.spi.IndexQueryFactory;
+import org.opends.server.api.AbstractMatchingRule.DefaultAssertion;
 
 /**
  * This class defines the set of methods and structures that must be
@@ -108,5 +113,41 @@
   {
     return attributeValue.hashCode();
   }
+
+  /** {@inheritDoc} */
+  @Override
+  public Assertion getAssertion(ByteSequence assertionValue) throws DecodeException
+  {
+    final ByteString normAssertionValue = normalizeAttributeValue(assertionValue);
+    return getEqualityAssertion(normAssertionValue);
+  }
+
+  /**
+   * Return the equality assertion for the matching rule.
+   *
+   * @param normAssertionValue
+   *            The normalized assertion value.
+   * @return the assertion
+   */
+  protected Assertion getEqualityAssertion(final ByteString normAssertionValue)
+  {
+    final DefaultAssertion eqAssertion = DefaultAssertion.equality(normAssertionValue);
+    return new Assertion()
+    {
+      @Override
+      public ConditionResult matches(ByteSequence normalizedAttributeValue)
+      {
+        return valuesMatch(normalizedAttributeValue, normAssertionValue);
+      }
+
+      @Override
+      public <T> T createIndexQuery(IndexQueryFactory<T> factory)
+          throws DecodeException
+      {
+       return eqAssertion.createIndexQuery(factory);
+      }
+    };
+  }
+
 }
 

--
Gitblit v1.10.0