<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    On 04/12/2012 10:50 AM, Omer Frenkel wrote:
    <blockquote
cite="mid:15a5329c-4579-4ef6-b1c8-be0b260e859b@zmail07.collab.prod.int.phx2.redhat.com"
      type="cite">
      <style type="text/css">p { margin: 0; }</style>
      <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" <a class="moz-txt-link-rfc2396E" href="mailto:sanjal@redhat.com">&lt;sanjal@redhat.com&gt;</a><br>
          <b>To: </b><a class="moz-txt-link-abbreviated" href="mailto:engine-devel@ovirt.org">engine-devel@ovirt.org</a><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>
              for(GlusterBrickEntity brick :
          getParameters().getGlusterVolume().getBricks()) {<br>
                  List&lt;String&gt; errors =
          ValidationUtils.validateInputs(getValidationGroups(), brick);<br>
                  if(errors != null) {<br>
                      for(String error : errors) {<br>
                          addCanDoActionMessage(error);<br>
                      }<br>
                  }<br>
              }<br>
          ...<br>
          }<br>
          <br>
          Regards,<br>
          Shireesh<br>
          <br>
          _______________________________________________<br>
          Engine-devel mailing list<br>
          <a class="moz-txt-link-abbreviated" href="mailto:Engine-devel@ovirt.org">Engine-devel@ovirt.org</a><br>
          <a class="moz-txt-link-freetext" href="http://lists.ovirt.org/mailman/listinfo/engine-devel">http://lists.ovirt.org/mailman/listinfo/engine-devel</a><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>
    </blockquote>
    <br>
    pls see SetupNetworksParameters.java for validating a list of
    network interfaces.<br>
    <br>
    hibernate validator supports trivial object graphs and members that
    are arrays, list and java.util.map implementations.<br>
    If your code looks like that it should work. If you are using
    special validation groups please add them to your command with
    addValidationGroups.<br>
    <br>
    this should work:<br>
    <br>
    GlusterCommandParameters.java<br>
     @Valid<br>
     List&lt;Bricks&gt; bricks<br>
    <br>
     Bricks.java<br>
     @NotNull<br>
     Guid id<br>
  </body>
</html>