private <O> OptionCollectionImpl validate(final String[] arguments, final Class<O> klass)
throws ArgumentValidationException {
final ArgumentValidatorImpl<O> impl =
new ArgumentValidatorImpl<O>(
InterfaceOptionsSpecificationParser.<O>createOptionsSpecificationImpl(type(klass)), new ValidationErrorBuilderImpl());
final ArgumentCollectionBuilder parsedArguments = new ArgumentCollectionBuilder();
createDefaultArgumentParser().parseArguments(parsedArguments, arguments);
return (OptionCollectionImpl) parsedArguments.processArguments(impl);