<html><head><style type='text/css'>p { margin: 0; }</style></head><body><div style='font-family: Times New Roman; font-size: 12pt; color: #000000'><br><br><hr id="zwchr"><blockquote style="border-left:2px solid rgb(16, 16, 255);margin-left:5px;padding-left:5px;color:#000;font-weight:normal;font-style:normal;text-decoration:none;font-family:Helvetica,Arial,sans-serif;font-size:12pt;"><b>From: </b>"Shireesh Anjal" &lt;sanjal@redhat.com&gt;<br><b>To: </b>engine-devel@ovirt.org<br><b>Sent: </b>Thursday, April 12, 2012 9:35:25 AM<br><b>Subject: </b>[Engine-devel] Query regarding ValidationUtils#validateInputs<br><br>
  

    
  
  
    Hi,<br>
    <br>
    This is regarding the following validation method we have in
    ValidationUtils:<br>
    <br>
    <i>public static &lt;T extends VdcActionParametersBase&gt;
      ArrayList&lt;String&gt; validateInputs(List&lt;Class&lt;?&gt;&gt;
      validationGroupList, T parameters);</i><br>
    <br>
    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:<br>
    <br>
    protected boolean canDoAction() {<br>
    ...<br>
    &nbsp;&nbsp;&nbsp; for(GlusterBrickEntity brick :
    getParameters().getGlusterVolume().getBricks()) {<br>
    &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; List&lt;String&gt; errors =
    ValidationUtils.validateInputs(getValidationGroups(), brick);<br>
    &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(errors != null) {<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(String error : errors) {<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; addCanDoActionMessage(error);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
    &nbsp;&nbsp;&nbsp; }<br>
    ...<br>
    }<br>
    <br>
    Regards,<br>
    Shireesh<br>
  

<br>_______________________________________________<br>Engine-devel mailing list<br>Engine-devel@ovirt.org<br>http://lists.ovirt.org/mailman/listinfo/engine-devel<br></blockquote>i don't think there is a reason to restrict only for VdcActionParametersBase, roy what do you think?<br><br>also you can use here<br>getReturnValue().getCanDoActionMessages().addAll(errors);<br>instead of going over on all errors.<br></div></body></html>