package com.hwlcn.ldap.ldap.matchingrules;
import com.hwlcn.ldap.asn1.ASN1OctetString;
import com.hwlcn.ldap.ldap.sdk.LDAPException;
import com.hwlcn.core.annotation.Extensible;
import com.hwlcn.core.annotation.ThreadSafety;
import com.hwlcn.ldap.util.ThreadSafetyLevel;
import static com.hwlcn.ldap.util.Debug.*;
@Extensible()
@ThreadSafety(level=ThreadSafetyLevel.INTERFACE_THREADSAFE)
public abstract class AcceptAllSimpleMatchingRule
extends SimpleMatchingRule
{
private static final long serialVersionUID = -7450007924568660003L;
@Override()
public boolean valuesMatch(final ASN1OctetString value1,
final ASN1OctetString value2)
{
return normalize(value1).equals(normalize(value2));
}
@Override()
public boolean matchesSubstring(final ASN1OctetString value,
final ASN1OctetString subInitial,
final ASN1OctetString[] subAny,
final ASN1OctetString subFinal)
{
try
{
return super.matchesSubstring(value, subInitial, subAny, subFinal);
}
catch (LDAPException le)
{
debugException(le);
return false;
}
}
@Override()
public int compareValues(final ASN1OctetString value1,
final ASN1OctetString value2)
{
try
{
return super.compareValues(value1, value2);
}
catch (LDAPException le)
{
debugException(le);
return 0;
}
}
@Override()
public abstract ASN1OctetString normalize(final ASN1OctetString value);
@Override()
public abstract ASN1OctetString normalizeSubstring(
final ASN1OctetString value,
final byte substringType);
}