From 5203374a1e5dc294088749071cf5350d2f82787d Mon Sep 17 00:00:00 2001
From: Nicolas Capponi <nicolas.capponi@forgerock.com>
Date: Thu, 20 Mar 2014 10:06:11 +0000
Subject: [PATCH] Checkpoint commit for OPENDJ-1308 Migrate schema support Code Review : CR-3230

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

diff --git a/opendj3-server-dev/src/server/org/opends/server/api/AbstractMatchingRule.java b/opendj3-server-dev/src/server/org/opends/server/api/AbstractMatchingRule.java
index 65ab9fd..5a1605d 100644
--- a/opendj3-server-dev/src/server/org/opends/server/api/AbstractMatchingRule.java
+++ b/opendj3-server-dev/src/server/org/opends/server/api/AbstractMatchingRule.java
@@ -27,6 +27,7 @@
 package org.opends.server.api;
 
 import java.util.Collection;
+import java.util.Comparator;
 
 import org.forgerock.opendj.ldap.Assertion;
 import org.forgerock.opendj.ldap.ByteSequence;
@@ -35,6 +36,7 @@
 import org.forgerock.opendj.ldap.DecodeException;
 import org.forgerock.opendj.ldap.schema.Schema;
 import org.forgerock.opendj.ldap.schema.Syntax;
+import org.forgerock.opendj.ldap.spi.IndexQueryFactory;
 
 /**
  * This class provides default implementation of MatchingRule. A
@@ -49,6 +51,24 @@
 public abstract class AbstractMatchingRule implements MatchingRule
 {
 
+  private static final Assertion UNDEFINED_ASSERTION = new Assertion()
+  {
+    @Override
+    public ConditionResult matches(final ByteSequence normalizedAttributeValue)
+    {
+      return ConditionResult.UNDEFINED;
+    }
+
+    @Override
+    public <T> T createIndexQuery(IndexQueryFactory<T> factory)
+        throws DecodeException
+    {
+      // Subclassing this class will always work, albeit inefficiently.
+      // This is better than throwing an exception for no good reason.
+      return factory.createMatchAllQuery();
+    }
+  };
+
   /**
    * {@inheritDoc}
    */
@@ -110,6 +130,24 @@
 
   /** {@inheritDoc} */
   @Override
+  public Assertion getGreaterOrEqualAssertion(ByteSequence value)
+      throws DecodeException
+  {
+    return UNDEFINED_ASSERTION;
+  }
+
+
+
+  /** {@inheritDoc} */
+  @Override
+  public Assertion getLessOrEqualAssertion(ByteSequence value)
+      throws DecodeException
+  {
+    return UNDEFINED_ASSERTION;
+  }
+
+  /** {@inheritDoc} */
+  @Override
   public boolean isObsolete()
   {
     return false;
@@ -140,6 +178,23 @@
     return ConditionResult.UNDEFINED;
   }
 
+  private static final Comparator<ByteSequence> DEFAULT_COMPARATOR =
+      new Comparator<ByteSequence>()
+      {
+        @Override
+        public int compare(final ByteSequence o1, final ByteSequence o2)
+        {
+          return o1.compareTo(o2);
+        }
+      };
+
+  /** {@inheritDoc} */
+  @Override
+  public Comparator<ByteSequence> comparator()
+  {
+    return DEFAULT_COMPARATOR;
+  }
+
 
 
   /**

--
Gitblit v1.10.0