| | |
| | | * Portions Copyright 2011-2014 ForgeRock AS |
| | | */ |
| | | package org.opends.server.schema; |
| | | import org.opends.messages.Message; |
| | | import org.forgerock.i18n.LocalizableMessage; |
| | | |
| | | |
| | | |
| | |
| | | import static org.opends.server.loggers.debug.DebugLogger.*; |
| | | import org.opends.server.loggers.debug.DebugTracer; |
| | | import static org.opends.messages.SchemaMessages.*; |
| | | import org.opends.messages.MessageBuilder; |
| | | import org.forgerock.i18n.LocalizableMessageBuilder; |
| | | import static org.opends.server.schema.SchemaConstants.*; |
| | | import static org.opends.server.util.StaticUtils.*; |
| | | |
| | |
| | | */ |
| | | @Override |
| | | public boolean valueIsAcceptable(ByteSequence value, |
| | | MessageBuilder invalidReason) |
| | | LocalizableMessageBuilder invalidReason) |
| | | { |
| | | // Get string representations of the provided value using the provided form |
| | | // and with all lowercase characters. |
| | |
| | | false); |
| | | if (syntax == null) |
| | | { |
| | | Message message = ERR_ATTR_SYNTAX_MR_UNKNOWN_SYNTAX.get( |
| | | LocalizableMessage message = ERR_ATTR_SYNTAX_MR_UNKNOWN_SYNTAX.get( |
| | | valueStr, oidBuffer.toString()); |
| | | logError(message); |
| | | |
| | |
| | | |
| | | if (startPos >= length) |
| | | { |
| | | Message message = ERR_ATTR_SYNTAX_MR_TRUNCATED_VALUE.get(valueStr); |
| | | LocalizableMessage message = ERR_ATTR_SYNTAX_MR_TRUNCATED_VALUE.get(valueStr); |
| | | throw new DirectoryException( |
| | | ResultCode.INVALID_ATTRIBUTE_SYNTAX, message); |
| | | } |
| | |
| | | |
| | | if (startPos >= length) |
| | | { |
| | | Message message = ERR_ATTR_SYNTAX_MR_TRUNCATED_VALUE.get(valueStr); |
| | | LocalizableMessage message = ERR_ATTR_SYNTAX_MR_TRUNCATED_VALUE.get(valueStr); |
| | | throw new DirectoryException( |
| | | ResultCode.INVALID_ATTRIBUTE_SYNTAX, message); |
| | | } |
| | |
| | | // The next character must be a single quote. |
| | | if (c != '\'') |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_ATTR_SYNTAX_MR_EXPECTED_QUOTE_AT_POS.get( |
| | | valueStr, startPos, String.valueOf(c)); |
| | | throw new DirectoryException( |
| | |
| | | // If we're at the end of the value, then that's illegal. |
| | | if (startPos >= length) |
| | | { |
| | | Message message = ERR_ATTR_SYNTAX_MR_TRUNCATED_VALUE.get(valueStr); |
| | | LocalizableMessage message = ERR_ATTR_SYNTAX_MR_TRUNCATED_VALUE.get(valueStr); |
| | | throw new DirectoryException( |
| | | ResultCode.INVALID_ATTRIBUTE_SYNTAX, message); |
| | | } |
| | |
| | | |
| | | if (startPos >= length) |
| | | { |
| | | Message message = ERR_ATTR_SYNTAX_MR_TRUNCATED_VALUE.get(lowerStr); |
| | | LocalizableMessage message = ERR_ATTR_SYNTAX_MR_TRUNCATED_VALUE.get(lowerStr); |
| | | throw new DirectoryException( |
| | | ResultCode.INVALID_ATTRIBUTE_SYNTAX, message); |
| | | } |
| | |
| | | // The next character must be a single quote. |
| | | if (c != '\'') |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_ATTR_SYNTAX_MR_EXPECTED_QUOTE_AT_POS.get( |
| | | valueStr, startPos, String.valueOf(c)); |
| | | throw new DirectoryException( |
| | |
| | | // If we're at the end of the value, then that's illegal. |
| | | if (startPos >= length) |
| | | { |
| | | Message message = ERR_ATTR_SYNTAX_MR_TRUNCATED_VALUE.get(lowerStr); |
| | | LocalizableMessage message = ERR_ATTR_SYNTAX_MR_TRUNCATED_VALUE.get(lowerStr); |
| | | throw new DirectoryException( |
| | | ResultCode.INVALID_ATTRIBUTE_SYNTAX, message); |
| | | } |
| | |
| | | |
| | | if (startPos >= length) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_ATTR_SYNTAX_OBJECTCLASS_TRUNCATED_VALUE.get(lowerStr); |
| | | throw new DirectoryException( |
| | | ResultCode.INVALID_ATTRIBUTE_SYNTAX, message); |
| | |
| | | { |
| | | if (lastWasPeriod) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_ATTR_SYNTAX_OBJECTCLASS_DOUBLE_PERIOD_IN_NUMERIC_OID. |
| | | get(lowerStr, (startPos-1)); |
| | | throw new DirectoryException(ResultCode.INVALID_ATTRIBUTE_SYNTAX, |
| | |
| | | } |
| | | |
| | | // This must have been an illegal character. |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_ATTR_SYNTAX_OBJECTCLASS_ILLEGAL_CHAR_IN_NUMERIC_OID.get( |
| | | lowerStr, String.valueOf(c), (startPos - 1)); |
| | | throw new DirectoryException(ResultCode.INVALID_ATTRIBUTE_SYNTAX, |
| | |
| | | } |
| | | |
| | | // This must have been an illegal character. |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_ATTR_SYNTAX_OBJECTCLASS_ILLEGAL_CHAR_IN_STRING_OID. |
| | | get(lowerStr, String.valueOf(c), (startPos - 1)); |
| | | throw new DirectoryException(ResultCode.INVALID_ATTRIBUTE_SYNTAX, |
| | |
| | | } |
| | | else |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_ATTR_SYNTAX_OBJECTCLASS_ILLEGAL_CHAR.get( |
| | | lowerStr, String.valueOf(c), startPos); |
| | | throw new DirectoryException( |
| | |
| | | // If we're at the end of the value, then that's illegal. |
| | | if (startPos >= length) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_ATTR_SYNTAX_OBJECTCLASS_TRUNCATED_VALUE.get(lowerStr); |
| | | throw new DirectoryException( |
| | | ResultCode.INVALID_ATTRIBUTE_SYNTAX, message); |
| | |
| | | |
| | | if (startPos >= length) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_ATTR_SYNTAX_MR_TRUNCATED_VALUE.get(valueStr); |
| | | throw new DirectoryException( |
| | | ResultCode.INVALID_ATTRIBUTE_SYNTAX, message); |
| | |
| | | |
| | | if (startPos >= length) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_ATTR_SYNTAX_MR_TRUNCATED_VALUE.get(valueStr); |
| | | throw new DirectoryException(ResultCode.INVALID_ATTRIBUTE_SYNTAX, |
| | | message); |
| | |
| | | else if (c == '(') |
| | | { |
| | | // This is an illegal character. |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_ATTR_SYNTAX_MR_ILLEGAL_CHAR.get( |
| | | valueStr, String.valueOf(c), startPos); |
| | | throw new DirectoryException(ResultCode.INVALID_ATTRIBUTE_SYNTAX, |
| | |
| | | |
| | | if (startPos >= length) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_ATTR_SYNTAX_MR_TRUNCATED_VALUE.get(valueStr); |
| | | throw new DirectoryException(ResultCode.INVALID_ATTRIBUTE_SYNTAX, |
| | | message); |
| | |
| | | |
| | | if (startPos >= length) |
| | | { |
| | | Message message = |
| | | LocalizableMessage message = |
| | | ERR_ATTR_SYNTAX_MR_TRUNCATED_VALUE.get(valueStr); |
| | | throw new DirectoryException( |
| | | ResultCode.INVALID_ATTRIBUTE_SYNTAX, message); |