int pos = 0;
for ( Value<?> value:attr )
{
DITContentRuleDescription desc = null;
try
{
desc = ditContentRuleParser.parseDITContentRuleDescription( value.getString() );
}
catch ( ParseException e )
{
LdapInvalidAttributeValueException iave = new LdapInvalidAttributeValueException(
"The following does not conform to the ditContentRuleDescription syntax: " + value.getString(),
ResultCodeEnum.INVALID_ATTRIBUTE_SYNTAX );
iave.setRootCause( e );
throw iave;
}
DitContentRuleImpl dcr = new DitContentRuleImpl( desc.getNumericOid(), globalRegistries );
dcr.setAuxObjectClassOids( desc.getAuxiliaryObjectClasses().toArray( EMPTY ) );
dcr.setMayNameOids( desc.getMayAttributeTypes().toArray( EMPTY ) );
dcr.setMustNameOids( desc.getMustAttributeTypes().toArray( EMPTY ) );
dcr.setNotNameOids( desc.getNotAttributeTypes().toArray( EMPTY ) );
setSchemaObjectProperties( desc, dcr );
ditContentRules[pos++] = dcr;
}