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