private void executeMethod(ResourceMethod method, Object instance) { new Mirror() .on(instance) .invoke() .method(method.getMethod()) .withArgs( provider.getParametersFor(method, new ArrayList<Message>(), localization.getBundle())); }
@SuppressWarnings("unchecked") public List<Message> validate(Object object) { List<Message> errors = new ArrayList<Message>(); ClassValidator<Object> validator = (ClassValidator<Object>) locator.getValidator(object.getClass(), localization.getBundle()); InvalidValue[] invalidValues = validator.getInvalidValues(object); for (InvalidValue value : invalidValues) { errors.add(new ValidationMessage(value.getMessage(), value.getPropertyPath())); } return errors; }
@SuppressWarnings({"unchecked", "rawtypes"}) private Object load(String name, Class type) { String parameter = request.getParameter(name + ".id"); if (parameter == null) { return null; } Field field = new Mirror().on(type).reflect().field("id"); checkArgument( field != null, "Entity " + type.getSimpleName() + " must have an id property for @LoadObject."); Class<?> idType = field.getType(); Converter<?> converter = converters.to(idType); checkArgument( converter != null, "Entity " + type.getSimpleName() + " id type " + idType + " must have a converter"); Serializable id = (Serializable) converter.convert(parameter, type, localization.getBundle()); return em.find(type, id); }