[Engine-devel] Query regarding ValidationUtils#validateInputs

Roy Golan rgolan at redhat.com
Sun Apr 15 06:01:32 UTC 2012


On 04/12/2012 10:50 AM, Omer Frenkel wrote:
>
>
> ------------------------------------------------------------------------
>
>     *From: *"Shireesh Anjal" <sanjal at redhat.com>
>     *To: *engine-devel at ovirt.org
>     *Sent: *Thursday, April 12, 2012 9:35:25 AM
>     *Subject: *[Engine-devel] Query regarding
>     ValidationUtils#validateInputs
>
>     Hi,
>
>     This is regarding the following validation method we have in
>     ValidationUtils:
>
>     /public static <T extends VdcActionParametersBase>
>     ArrayList<String> validateInputs(List<Class<?>>
>     validationGroupList, T parameters);/
>
>     I there any particular reason for supporting the validations only
>     on objects of classes derived from VdcActionParametersBase? I
>     guess this was done because this method is primarily intended to
>     validate the action parameters passed to a BLL action, using the
>     validation annotations on the parameter class. However I think
>     this method can be useful for general use as well. e.g. I cannot
>     add a "@Valid" annotation on a "list" or a "map" in a parameter
>     class. So I need to iterate over the list/map, and validate each
>     element inside the loop. The validation inside the loop can also
>     utilize the above method if the restriction "extends
>     VdcActionParametersBase" is removed. This will allow me to do the
>     following in the canDoAction method:
>
>     protected boolean canDoAction() {
>     ...
>         for(GlusterBrickEntity brick :
>     getParameters().getGlusterVolume().getBricks()) {
>             List<String> errors =
>     ValidationUtils.validateInputs(getValidationGroups(), brick);
>             if(errors != null) {
>                 for(String error : errors) {
>                     addCanDoActionMessage(error);
>                 }
>             }
>         }
>     ...
>     }
>
>     Regards,
>     Shireesh
>
>     _______________________________________________
>     Engine-devel mailing list
>     Engine-devel at ovirt.org
>     http://lists.ovirt.org/mailman/listinfo/engine-devel
>
> i don't think there is a reason to restrict only for 
> VdcActionParametersBase, roy what do you think?
>
> also you can use here
> getReturnValue().getCanDoActionMessages().addAll(errors);
> instead of going over on all errors.

pls see SetupNetworksParameters.java for validating a list of network 
interfaces.

hibernate validator supports trivial object graphs and members that are 
arrays, list and java.util.map implementations.
If your code looks like that it should work. If you are using special 
validation groups please add them to your command with addValidationGroups.

this should work:

GlusterCommandParameters.java
  @Valid
  List<Bricks> bricks

  Bricks.java
  @NotNull
  Guid id
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ovirt.org/pipermail/engine-devel/attachments/20120415/22cacd32/attachment.html>


More information about the Engine-devel mailing list