| | |
| | | |
| | | |
| | | |
| | | import static com.sun.opends.sdk.messages.Messages.*; |
| | | import static com.sun.opends.sdk.util.StringPrepProfile.*; |
| | | import static com.sun.opends.sdk.messages.Messages.WARN_ATTR_SYNTAX_IA5_ILLEGAL_CHARACTER; |
| | | import static com.sun.opends.sdk.util.StringPrepProfile.NO_CASE_FOLD; |
| | | import static com.sun.opends.sdk.util.StringPrepProfile.TRIM; |
| | | import static com.sun.opends.sdk.util.StringPrepProfile.prepareUnicode; |
| | | |
| | | import org.opends.sdk.ByteSequence; |
| | | import org.opends.sdk.ByteString; |
| | |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * This class implements the caseExactIA5SubstringsMatch matching rule. |
| | | * This matching rule actually isn't defined in any official |
| | | * specification, but some directory vendors do provide an |
| | | * implementation using an OID from their own private namespace. |
| | | * This class implements the caseExactIA5SubstringsMatch matching rule. This |
| | | * matching rule actually isn't defined in any official specification, but some |
| | | * directory vendors do provide an implementation using an OID from their own |
| | | * private namespace. |
| | | */ |
| | | final class CaseExactIA5SubstringMatchingRuleImpl extends |
| | | AbstractSubstringMatchingRuleImpl |
| | | { |
| | | public ByteString normalizeAttributeValue(Schema schema, |
| | | ByteSequence value) throws DecodeException |
| | | public ByteString normalizeAttributeValue(final Schema schema, |
| | | final ByteSequence value) throws DecodeException |
| | | { |
| | | return normalize(TRIM, value); |
| | | } |
| | |
| | | |
| | | |
| | | @Override |
| | | ByteString normalizeSubString(Schema schema, ByteSequence value) |
| | | ByteString normalizeSubString(final Schema schema, final ByteSequence value) |
| | | throws DecodeException |
| | | { |
| | | return normalize(false, value); |
| | |
| | | |
| | | |
| | | |
| | | private ByteString normalize(boolean trim, ByteSequence value) |
| | | private ByteString normalize(final boolean trim, final ByteSequence value) |
| | | throws DecodeException |
| | | { |
| | | final StringBuilder buffer = new StringBuilder(); |
| | |
| | | // This is not a valid character for an IA5 string. If strict |
| | | // syntax enforcement is enabled, then we'll throw an exception. |
| | | // Otherwise, we'll get rid of the character. |
| | | final LocalizableMessage message = |
| | | WARN_ATTR_SYNTAX_IA5_ILLEGAL_CHARACTER.get( |
| | | value.toString(), String.valueOf(c)); |
| | | final LocalizableMessage message = WARN_ATTR_SYNTAX_IA5_ILLEGAL_CHARACTER |
| | | .get(value.toString(), String.valueOf(c)); |
| | | throw DecodeException.error(message); |
| | | } |
| | | } |