int pos = 0;
for ( Value<?> value : attr )
{
LdapSyntax ldapSyntax = null;
try
{
ldapSyntax = syntaxParser.parseLdapSyntaxDescription( value.getString() );
ldapSyntax.setSpecification( value.getString() );
}
catch ( ParseException e )
{
LdapInvalidAttributeValueException iave = new LdapInvalidAttributeValueException(
ResultCodeEnum.INVALID_ATTRIBUTE_SYNTAX, I18n.err( I18n.ERR_422,
value.getString() ) );
iave.initCause( e );
throw iave;
}
if ( !schemaManager.getSyntaxCheckerRegistry().contains( ldapSyntax.getOid() ) )
{
throw new LdapUnwillingToPerformException( ResultCodeEnum.UNWILLING_TO_PERFORM, I18n.err( I18n.ERR_423 ) );
}
// Call this method once to initialize the flags
ldapSyntax.isHumanReadable();
syntaxes[pos++] = ldapSyntax;
}
return syntaxes;