On 04/12/2012 10:50 AM, Omer Frenkel wrote:


------------------------------------------------------------------------

    *From: *"Shireesh Anjal" <[email protected]>
    *To: *[email protected]
    *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
    [email protected]
    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
_______________________________________________
Engine-devel mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-devel

Reply via email to