Is the following correct?


Looks about right. Also there's a few pre-canned classes implementing ValidationFailure in the org.apache.cayenne.validation package that can be used to build failures.

Or how can I retrieve the error message
from the validationResult when a ValidationException is thrown

http://cayenne.apache.org/doc/api/org/apache/cayenne/validation/ValidationResult.html

Use 'getFailures()' to get a list of failures, and analyze them one by one using ValidationFailure methods.

Andrus

On Mar 11, 2009, at 9:36 AM, Νίκος Παράσχου wrote:

Thank you Andrus,

Yes, I do not throw the exception myself. But, how am I going to handle the exception thrown by Cayenne? Or how can I retrieve the error message from the validationResult when a ValidationException is thrown, so that
I can print it in the GUI?

Is the following correct?

   @Override
   protected void validateForSave(ValidationResult validationResult) {
     super.validateForSave(validationResult);

     if(getCompanyName().equalsIgnoreCase("")) {

         validationResult.addFailure(new ValidationFailure() {

               @Override
               public Object getSource() {
                   return this;
               }

               @Override
               public Object getError() {
                   return Company.CNAME_PROPERTY;
               }

               @Override
               public String getDescription() {
                   return "My error message";
               }
           });
     }
   }

Nikos

Στις 10-03-2009, ημέρα Τρι, και ώρα 18:16 +0200, ο/ η Andrus Adamchik
έγραψε:
The code example looks about right. However this is probably what's
wrong: "When a specific condition is not met, a ValidationException is
thrown.". You should not throw the exception yourself. Just add an
error to the validationResult, and let Cayenne throw it later.

Andrus


On Mar 10, 2009, at 5:03 PM, Νίκος Παράσχου wrote:

Hello,

I implemented validateForSave(ValidationResult validationResult) in
one
of my ObjEntities. When a specific condition is not met, a
ValidationException is thrown.

How can I handle this ValidationException?

The following doesn't work (I get: ValidationException is not thrown
anywhere inside block try{}):

try {
        mycontext.commit();
}
catch(ValidationException vex) {
        ...
}

Thank you,
Nikos







Reply via email to