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