| | |
| | | import java.util.regex.Pattern; |
| | | |
| | | import org.opends.sdk.DecodeException; |
| | | import org.opends.sdk.LocalizedIllegalArgumentException; |
| | | import org.opends.sdk.LocalizableMessage; |
| | | |
| | | import com.sun.opends.sdk.util.*; |
| | | |
| | |
| | | { |
| | | // This means that the definition was empty or contained only |
| | | // whitespace. That is illegal. |
| | | final Message message = |
| | | final LocalizableMessage message = |
| | | ERR_ATTR_SYNTAX_ATTRTYPE_EMPTY_VALUE.get(); |
| | | throw new LocalizedIllegalArgumentException(message); |
| | | } |
| | |
| | | final char c = reader.read(); |
| | | if (c != '(') |
| | | { |
| | | final Message message = |
| | | final LocalizableMessage message = |
| | | ERR_ATTR_SYNTAX_ATTRTYPE_EXPECTED_OPEN_PARENTHESIS.get( |
| | | definition, (reader.pos() - 1), String.valueOf(c)); |
| | | throw new LocalizedIllegalArgumentException(message); |
| | |
| | | } |
| | | else |
| | | { |
| | | final Message message = |
| | | final LocalizableMessage message = |
| | | WARN_ATTR_SYNTAX_ATTRTYPE_INVALID_ATTRIBUTE_USAGE.get( |
| | | String.valueOf(oid), usageStr); |
| | | throw new LocalizedIllegalArgumentException(message); |
| | |
| | | } |
| | | else |
| | | { |
| | | final Message message = |
| | | final LocalizableMessage message = |
| | | ERR_ATTR_SYNTAX_ILLEGAL_TOKEN.get(tokenName); |
| | | throw new LocalizedIllegalArgumentException(message); |
| | | } |
| | |
| | | { |
| | | // This means that the value was empty or contained only |
| | | // whitespace. That is illegal. |
| | | final Message message = ERR_ATTR_SYNTAX_DCR_EMPTY_VALUE.get(); |
| | | final LocalizableMessage message = ERR_ATTR_SYNTAX_DCR_EMPTY_VALUE.get(); |
| | | throw new LocalizedIllegalArgumentException(message); |
| | | } |
| | | |
| | |
| | | final char c = reader.read(); |
| | | if (c != '(') |
| | | { |
| | | final Message message = |
| | | final LocalizableMessage message = |
| | | ERR_ATTR_SYNTAX_DCR_EXPECTED_OPEN_PARENTHESIS.get( |
| | | definition, (reader.pos() - 1), String.valueOf(c)); |
| | | throw new LocalizedIllegalArgumentException(message); |
| | |
| | | } |
| | | else |
| | | { |
| | | final Message message = |
| | | final LocalizableMessage message = |
| | | ERR_ATTR_SYNTAX_ILLEGAL_TOKEN.get(tokenName); |
| | | throw new LocalizedIllegalArgumentException(message); |
| | | } |
| | |
| | | { |
| | | // This means that the value was empty or contained only |
| | | // whitespace. That is illegal. |
| | | final Message message = ERR_ATTR_SYNTAX_DSR_EMPTY_VALUE.get(); |
| | | final LocalizableMessage message = ERR_ATTR_SYNTAX_DSR_EMPTY_VALUE.get(); |
| | | throw new LocalizedIllegalArgumentException(message); |
| | | } |
| | | |
| | |
| | | final char c = reader.read(); |
| | | if (c != '(') |
| | | { |
| | | final Message message = |
| | | final LocalizableMessage message = |
| | | ERR_ATTR_SYNTAX_DSR_EXPECTED_OPEN_PARENTHESIS.get( |
| | | definition, (reader.pos() - 1), String.valueOf(c)); |
| | | throw new LocalizedIllegalArgumentException(message); |
| | |
| | | } |
| | | else |
| | | { |
| | | final Message message = |
| | | final LocalizableMessage message = |
| | | ERR_ATTR_SYNTAX_ILLEGAL_TOKEN.get(tokenName); |
| | | throw new LocalizedIllegalArgumentException(message); |
| | | } |
| | |
| | | |
| | | if (nameForm == null) |
| | | { |
| | | final Message message = |
| | | final LocalizableMessage message = |
| | | ERR_ATTR_SYNTAX_DSR_NO_NAME_FORM.get(definition); |
| | | throw new LocalizedIllegalArgumentException(message); |
| | | } |
| | |
| | | { |
| | | // This means that the value was empty or contained only |
| | | // whitespace. That is illegal. |
| | | final Message message = ERR_ATTR_SYNTAX_MR_EMPTY_VALUE.get(); |
| | | final LocalizableMessage message = ERR_ATTR_SYNTAX_MR_EMPTY_VALUE.get(); |
| | | throw new LocalizedIllegalArgumentException(message); |
| | | } |
| | | |
| | |
| | | final char c = reader.read(); |
| | | if (c != '(') |
| | | { |
| | | final Message message = |
| | | final LocalizableMessage message = |
| | | ERR_ATTR_SYNTAX_MR_EXPECTED_OPEN_PARENTHESIS.get( |
| | | definition, (reader.pos() - 1), String.valueOf(c)); |
| | | throw new LocalizedIllegalArgumentException(message); |
| | |
| | | } |
| | | else |
| | | { |
| | | final Message message = |
| | | final LocalizableMessage message = |
| | | ERR_ATTR_SYNTAX_ILLEGAL_TOKEN.get(tokenName); |
| | | throw new LocalizedIllegalArgumentException(message); |
| | | } |
| | |
| | | // Make sure that a syntax was specified. |
| | | if (syntax == null) |
| | | { |
| | | final Message message = |
| | | final LocalizableMessage message = |
| | | ERR_ATTR_SYNTAX_MR_NO_SYNTAX.get(definition); |
| | | throw new LocalizedIllegalArgumentException(message); |
| | | } |
| | |
| | | { |
| | | // This means that the value was empty or contained only |
| | | // whitespace. That is illegal. |
| | | final Message message = ERR_ATTR_SYNTAX_MRUSE_EMPTY_VALUE.get(); |
| | | final LocalizableMessage message = ERR_ATTR_SYNTAX_MRUSE_EMPTY_VALUE.get(); |
| | | throw new LocalizedIllegalArgumentException(message); |
| | | } |
| | | |
| | |
| | | final char c = reader.read(); |
| | | if (c != '(') |
| | | { |
| | | final Message message = |
| | | final LocalizableMessage message = |
| | | ERR_ATTR_SYNTAX_MRUSE_EXPECTED_OPEN_PARENTHESIS.get( |
| | | definition, (reader.pos() - 1), String.valueOf(c)); |
| | | throw new LocalizedIllegalArgumentException(message); |
| | |
| | | } |
| | | else |
| | | { |
| | | final Message message = |
| | | final LocalizableMessage message = |
| | | ERR_ATTR_SYNTAX_ILLEGAL_TOKEN.get(tokenName); |
| | | throw new LocalizedIllegalArgumentException(message); |
| | | } |
| | |
| | | // Make sure that the set of attributes was defined. |
| | | if (attributes == null || attributes.size() == 0) |
| | | { |
| | | final Message message = |
| | | final LocalizableMessage message = |
| | | ERR_ATTR_SYNTAX_MRUSE_NO_ATTR.get(definition); |
| | | throw new LocalizedIllegalArgumentException(message); |
| | | } |
| | |
| | | { |
| | | // This means that the value was empty or contained only |
| | | // whitespace. That is illegal. |
| | | final Message message = |
| | | final LocalizableMessage message = |
| | | ERR_ATTR_SYNTAX_NAME_FORM_EMPTY_VALUE.get(); |
| | | throw new LocalizedIllegalArgumentException(message); |
| | | } |
| | |
| | | final char c = reader.read(); |
| | | if (c != '(') |
| | | { |
| | | final Message message = |
| | | final LocalizableMessage message = |
| | | ERR_ATTR_SYNTAX_NAME_FORM_EXPECTED_OPEN_PARENTHESIS.get( |
| | | definition, (reader.pos() - 1), c); |
| | | throw new LocalizedIllegalArgumentException(message); |
| | |
| | | } |
| | | else |
| | | { |
| | | final Message message = |
| | | final LocalizableMessage message = |
| | | ERR_ATTR_SYNTAX_ILLEGAL_TOKEN.get(tokenName); |
| | | throw new LocalizedIllegalArgumentException(message); |
| | | } |
| | |
| | | // it cannot be valid. |
| | | if (structuralClass == null) |
| | | { |
| | | final Message message = |
| | | final LocalizableMessage message = |
| | | ERR_ATTR_SYNTAX_NAME_FORM_NO_STRUCTURAL_CLASS |
| | | .get(definition); |
| | | throw new LocalizedIllegalArgumentException(message); |
| | |
| | | |
| | | if (requiredAttributes == null || requiredAttributes.size() == 0) |
| | | { |
| | | final Message message = |
| | | final LocalizableMessage message = |
| | | ERR_ATTR_SYNTAX_NAME_FORM_NO_REQUIRED_ATTR.get(definition); |
| | | throw new LocalizedIllegalArgumentException(message); |
| | | } |
| | |
| | | { |
| | | // This means that the value was empty or contained only |
| | | // whitespace. That is illegal. |
| | | final Message message = |
| | | final LocalizableMessage message = |
| | | ERR_ATTR_SYNTAX_OBJECTCLASS_EMPTY_VALUE.get(); |
| | | throw new LocalizedIllegalArgumentException(message); |
| | | } |
| | |
| | | final char c = reader.read(); |
| | | if (c != '(') |
| | | { |
| | | final Message message = |
| | | final LocalizableMessage message = |
| | | ERR_ATTR_SYNTAX_OBJECTCLASS_EXPECTED_OPEN_PARENTHESIS.get( |
| | | definition, (reader.pos() - 1), String.valueOf(c)); |
| | | throw new LocalizedIllegalArgumentException(message); |
| | |
| | | } |
| | | else |
| | | { |
| | | final Message message = |
| | | final LocalizableMessage message = |
| | | ERR_ATTR_SYNTAX_ILLEGAL_TOKEN.get(tokenName); |
| | | throw new LocalizedIllegalArgumentException(message); |
| | | } |
| | |
| | | { |
| | | // This means that the value was empty or contained only |
| | | // whitespace. That is illegal. |
| | | final Message message = |
| | | final LocalizableMessage message = |
| | | ERR_ATTR_SYNTAX_ATTRSYNTAX_EMPTY_VALUE.get(); |
| | | throw new LocalizedIllegalArgumentException(message); |
| | | } |
| | |
| | | final char c = reader.read(); |
| | | if (c != '(') |
| | | { |
| | | final Message message = |
| | | final LocalizableMessage message = |
| | | ERR_ATTR_SYNTAX_ATTRSYNTAX_EXPECTED_OPEN_PARENTHESIS.get( |
| | | definition, (reader.pos() - 1), String.valueOf(c)); |
| | | throw new LocalizedIllegalArgumentException(message); |
| | |
| | | } |
| | | else |
| | | { |
| | | final Message message = |
| | | final LocalizableMessage message = |
| | | ERR_ATTR_SYNTAX_ILLEGAL_TOKEN.get(tokenName); |
| | | throw new LocalizedIllegalArgumentException(message); |
| | | } |
| | |
| | | * contained in this schema builder as well as the same set of |
| | | * schema compatibility options |
| | | */ |
| | | public Schema toSchema(List<Message> errorMessages) |
| | | public Schema toSchema(List<LocalizableMessage> errorMessages) |
| | | { |
| | | if (errorMessages == null) |
| | | { |
| | | errorMessages = new LinkedList<Message>(); |
| | | errorMessages = new LinkedList<LocalizableMessage>(); |
| | | } |
| | | |
| | | validate(errorMessages); |
| | |
| | | numericOID2AttributeTypes.get(attribute.getOID()); |
| | | if (!overwrite) |
| | | { |
| | | final Message message = |
| | | final LocalizableMessage message = |
| | | ERR_SCHEMA_CONFLICTING_ATTRIBUTE_OID.get(attribute |
| | | .getNameOrOID(), attribute.getOID(), |
| | | conflictingAttribute.getNameOrOID()); |
| | |
| | | numericOID2ContentRules.get(rule.getStructuralClassOID()); |
| | | if (!overwrite) |
| | | { |
| | | final Message message = |
| | | final LocalizableMessage message = |
| | | ERR_SCHEMA_CONFLICTING_DIT_CONTENT_RULE.get(rule |
| | | .getNameOrOID(), rule.getStructuralClassOID(), |
| | | conflictingRule.getNameOrOID()); |
| | |
| | | conflictingRule = id2StructureRules.get(rule.getRuleID()); |
| | | if (!overwrite) |
| | | { |
| | | final Message message = |
| | | final LocalizableMessage message = |
| | | ERR_SCHEMA_CONFLICTING_DIT_STRUCTURE_RULE_ID.get(rule |
| | | .getNameOrRuleID(), rule.getRuleID(), conflictingRule |
| | | .getNameOrRuleID()); |
| | |
| | | conflictingRule = numericOID2MatchingRules.get(rule.getOID()); |
| | | if (!overwrite) |
| | | { |
| | | final Message message = |
| | | final LocalizableMessage message = |
| | | ERR_SCHEMA_CONFLICTING_MR_OID.get(rule.getNameOrOID(), rule |
| | | .getOID(), conflictingRule.getNameOrOID()); |
| | | throw new ConflictingSchemaElementException(message); |
| | |
| | | numericOID2MatchingRuleUses.get(use.getMatchingRuleOID()); |
| | | if (!overwrite) |
| | | { |
| | | final Message message = |
| | | final LocalizableMessage message = |
| | | ERR_SCHEMA_CONFLICTING_MATCHING_RULE_USE.get(use |
| | | .getNameOrOID(), use.getMatchingRuleOID(), |
| | | conflictingUse.getNameOrOID()); |
| | |
| | | conflictingForm = numericOID2NameForms.get(form.getOID()); |
| | | if (!overwrite) |
| | | { |
| | | final Message message = |
| | | final LocalizableMessage message = |
| | | ERR_SCHEMA_CONFLICTING_NAME_FORM_OID.get(form |
| | | .getNameOrOID(), form.getOID(), conflictingForm |
| | | .getNameOrOID()); |
| | |
| | | conflictingOC = numericOID2ObjectClasses.get(oc.getOID()); |
| | | if (!overwrite) |
| | | { |
| | | final Message message = |
| | | final LocalizableMessage message = |
| | | ERR_SCHEMA_CONFLICTING_OBJECTCLASS_OID.get(oc |
| | | .getNameOrOID(), oc.getOID(), conflictingOC |
| | | .getNameOrOID()); |
| | |
| | | conflictingSyntax = numericOID2Syntaxes.get(syntax.getOID()); |
| | | if (!overwrite) |
| | | { |
| | | final Message message = |
| | | final LocalizableMessage message = |
| | | ERR_SCHEMA_CONFLICTING_SYNTAX_OID.get(syntax.toString(), |
| | | syntax.getOID(), conflictingSyntax.getOID()); |
| | | throw new ConflictingSchemaElementException(message); |
| | |
| | | |
| | | |
| | | |
| | | private synchronized void validate(List<Message> warnings) |
| | | private synchronized void validate(List<LocalizableMessage> warnings) |
| | | { |
| | | // Verify all references in all elements |
| | | for (final Syntax syntax : numericOID2Syntaxes.values().toArray( |