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/schema/AbstractOrderingMatchingRule.java |   53 ++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 34 insertions(+), 19 deletions(-)

diff --git a/opendj3-server-dev/src/server/org/opends/server/schema/AbstractOrderingMatchingRule.java b/opendj3-server-dev/src/server/org/opends/server/schema/AbstractOrderingMatchingRule.java
index 7ff209b..df653d9 100644
--- a/opendj3-server-dev/src/server/org/opends/server/schema/AbstractOrderingMatchingRule.java
+++ b/opendj3-server-dev/src/server/org/opends/server/schema/AbstractOrderingMatchingRule.java
@@ -28,8 +28,8 @@
 import java.util.Comparator;
 
 import org.forgerock.opendj.ldap.*;
+import org.forgerock.opendj.ldap.spi.IndexQueryFactory;
 import org.opends.server.api.AbstractMatchingRule;
-import org.opends.server.api.NotImplementedAssertion;
 import org.opends.server.api.OrderingMatchingRule;
 
 /**
@@ -57,46 +57,61 @@
 
   /** {@inheritDoc} */
   @Override
-  public Assertion getAssertion(final ByteSequence value)
-      throws DecodeException
+  public Assertion getAssertion(final ByteSequence assertionValue) throws DecodeException
   {
-    final ByteString assertionValue = normalizeAssertionValue(value);
-    return new NotImplementedAssertion()
+    final ByteString normAssertionValue = normalizeAttributeValue(assertionValue);
+    return new Assertion()
     {
       @Override
-      public ConditionResult matches(ByteSequence attributeValue)
+      public ConditionResult matches(final ByteSequence attributeValue)
       {
-        return ConditionResult.valueOf(compareValues(attributeValue, assertionValue) < 0);
+        return ConditionResult.valueOf(compareValues(attributeValue, normAssertionValue) < 0);
+      }
+
+      @Override
+      public <T> T createIndexQuery(IndexQueryFactory<T> factory) throws DecodeException
+      {
+        return factory.createRangeMatchQuery("ordering", ByteString.empty(), normAssertionValue, false, false);
       }
     };
   }
 
   /** {@inheritDoc} */
   @Override
-  public Assertion getGreaterOrEqualAssertion(ByteSequence value) throws DecodeException
+  public Assertion getGreaterOrEqualAssertion(final ByteSequence assertionValue) throws DecodeException
   {
-    final ByteString normAssertion = normalizeAssertionValue(value);
-    return new NotImplementedAssertion()
+    final ByteString normAssertionValue = normalizeAttributeValue(assertionValue);
+    return new Assertion()
     {
-      @Override
-      public ConditionResult matches(final ByteSequence normalizedAttributeValue)
-      {
-        return ConditionResult.valueOf(compareValues(normalizedAttributeValue, normAssertion) >= 0);
-      }
+        @Override
+        public ConditionResult matches(final ByteSequence normalizedAttributeValue) {
+          return ConditionResult.valueOf(compareValues(normalizedAttributeValue, normAssertionValue) >= 0);
+        }
+
+        @Override
+        public <T> T createIndexQuery(IndexQueryFactory<T> factory) throws DecodeException {
+            return factory.createRangeMatchQuery("ordering", normAssertionValue, ByteString.empty(), true, false);
+        }
     };
   }
 
   /** {@inheritDoc} */
   @Override
-  public Assertion getLessOrEqualAssertion(ByteSequence value) throws DecodeException
+  public Assertion getLessOrEqualAssertion(final ByteSequence assertionValue) throws DecodeException
   {
-    final ByteString normAssertion = normalizeAssertionValue(value);
-    return new NotImplementedAssertion()
+    final ByteString normAssertionValue = normalizeAttributeValue(assertionValue);
+    return new Assertion()
     {
       @Override
       public ConditionResult matches(final ByteSequence normalizedAttributeValue)
       {
-        return ConditionResult.valueOf(compareValues(normalizedAttributeValue, normAssertion) <= 0);
+        return ConditionResult.valueOf(compareValues(normalizedAttributeValue, normAssertionValue) <= 0);
+      }
+
+      @Override
+      public <T> T createIndexQuery(IndexQueryFactory<T> factory) throws DecodeException
+      {
+        return factory.createRangeMatchQuery("ordering", ByteString.empty(), normAssertionValue, false, true);
       }
     };
   }

--
Gitblit v1.10.0