<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    On Sunday 15 April 2012 11:31 AM, Roy Golan wrote:
    <blockquote cite="mid:4F8A643C.8060605@redhat.com" type="cite">
      <meta content="text/html; charset=ISO-8859-1"
        http-equiv="Content-Type">
      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 moz-do-not-send="true"
              class="moz-txt-link-rfc2396E"
              href="mailto:sanjal@redhat.com">&lt;sanjal@redhat.com&gt;</a><br>
            <b>To: </b><a moz-do-not-send="true"
              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>
            &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>
            <a moz-do-not-send="true" class="moz-txt-link-abbreviated"
              href="mailto:Engine-devel@ovirt.org">Engine-devel@ovirt.org</a><br>
            <a moz-do-not-send="true" 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>
      &nbsp;@Valid<br>
      &nbsp;List&lt;Bricks&gt; bricks<br>
      <br>
      &nbsp;Bricks.java<br>
      &nbsp;@NotNull<br>
      &nbsp;Guid id<br>
    </blockquote>
    <br>
    Thanks! I had tried adding @Valid annotation as suggested above,
    which had resulted in an exception from the validation engine,
    without any specific information about the problem, and I assumed
    that @Valid may not work on Lists. Digged deeper after reading your
    response, and found that the @Valid annotation resulted in a call to
    equals method on the entity, which had a bug, resulting in the
    exception. It all works well after fixing the bug.<br>
    <br>
    <blockquote cite="mid:4F8A643C.8060605@redhat.com" type="cite"> <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
Engine-devel mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Engine-devel@ovirt.org">Engine-devel@ovirt.org</a>
<a class="moz-txt-link-freetext" href="http://lists.ovirt.org/mailman/listinfo/engine-devel">http://lists.ovirt.org/mailman/listinfo/engine-devel</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>