A class-level constraint, that evaluates a script expression against the annotated element. This constraint can be used to implement validation routines, that depend on multiple attributes of the annotated element.
Script expressions can be written in any scripting or expression language, for which a JSR 223 ("Scripting for the JavaTM Platform") compatible engine can be found on the classpath. The following listing shows an example using the JavaScript engine, which comes with the JDK:
@ScriptAssert(lang = "javascript", script = "_this.startDate.before(_this.endDate)")
public class CalendarEvent {
private Date startDate;
private Date endDate;
//...
}
Using a real expression language in conjunction with a shorter object alias allows for very compact expressions:
@ScriptAssert(lang = "jexl", script = "_.startDate > _.endDate", alias = "_")
public class CalendarEvent {
private Date startDate;
private Date endDate;
//...
}
Accepts any type.
| Modifier and Type | Class and Description |
|---|---|
| public static @interface | ScriptAssert.List
Defines several |
| Modifier and Type | Method and Description |
|---|---|
| public String | Returns: The name, under which the annotated element shall be registered within the script context. Defaults to "_this".
|
| public Class | |
| public String | Returns: The name of the script language used by this constraint as expected by the JSR 223javax.. A
jakarta. will be thrown upon script
evaluation, if no engine for the given language could be found.
|
| public String | |
| public Class | |
| public String | Returns: The name of the property for which you would like to report a validation error. If given, the resulting constraint violation will be reported on the specified property. If not given, the constraint violation will be reported on the annotated bean.
|
| public String | Returns: The script to be executed. The script must returnBoolean.TRUE, if the annotated element could
successfully be validated, otherwise Boolean.FALSE.
Returning null or any type other than Boolean will cause a
jakarta. upon validation. Any
exception occurring during script evaluation will be wrapped into
a ConstraintDeclarationException, too. Within the script, the
validated object can be accessed from the script context using the name specified in the
alias attribute.
|
| alias | back to summary |
|---|---|
public String alias()
| |
| groups | back to summary |
|---|---|
| public Class | |
| lang | back to summary |
|---|---|
public String lang()
| |
| message | back to summary |
|---|---|
| public String message() | |
| payload | back to summary |
|---|---|
| public Class | |
| reportOn | back to summary |
|---|---|
public String reportOn()
| |
| script | back to summary |
|---|---|
public String script()
| |
@ScriptAssert annotations on the same element.
| Modifier and Type | Method and Description |
|---|---|
| public ScriptAssert[] |
| value | back to summary |
|---|---|
| public ScriptAssert[] value() | |