mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

Nicolas Capponi
20.06.2014 5203374a1e5dc294088749071cf5350d2f82787d
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;
  }
  /**