final List<ObjectAdapter> argAdapters = parseArguments(action, arguments);
// validate individual args
final List<ObjectActionParameter> parameters = action.getParameters();
for (int i = 0; i < parameters.size(); i++) {
final ObjectActionParameter parameter = parameters.get(i);
final ObjectAdapter argAdapter = argAdapters.get(i);
if (argAdapter == null) {
// can only happen if this is an optional parameter; nothing to
// do
continue;
}
if (argAdapter.getSpecification().containsFacet(ValueFacet.class)) {
final Object arg = argAdapter.getObject();
final String reasonNotValid = parameter.isValid(objectAdapter, arg);
if (reasonNotValid != null) {
throw JsonApplicationException.create(HttpStatusCode.NOT_ACCEPTABLE, reasonNotValid);
}
}
}