Annotation Type ParameterScriptAssert
-
@Documented @Constraint(validatedBy={}) @Target({CONSTRUCTOR,METHOD}) @Retention(RUNTIME) @Repeatable(List.class) public @interface ParameterScriptAssert
A method-level constraint, that evaluates a script expression against the annotated method or constructor. This constraint can be used to implement validation routines that depend on several parameters of the annotated executable.
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. To refer to a parameter within the scripting expression, use its name as obtained by the active
ParameterNameProvider. The default provider will return the actual parameter names, if the -parameters compiler option has been enabled, andarg0,arg1etc. otherwise.The following listing shows an example using the JavaScript engine which comes with the JDK:
@ParameterScriptAssert(script = "start.before(end)", lang = "javascript") public void createEvent(Date start, Date end) { ... }Can be specified on any method or constructor.
- Author:
- Gunnar Morling
-
-
Element Detail
-
lang
String lang
- Returns:
- The name of the script language used by this constraint as
expected by the JSR 223
ScriptEngineManager. AConstraintDeclarationExceptionwill be thrown upon script evaluation, if no engine for the given language could be found.
-
-
-
script
String script
- Returns:
- The script to be executed. The script must return
Boolean.TRUE, if the executable parameters could successfully be validated, otherwiseBoolean.FALSE. Returning null or any type other than Boolean will cause aConstraintDeclarationExceptionupon validation. Any exception occurring during script evaluation will be wrapped into a ConstraintDeclarationException, too. Within the script, the validated parameters can be accessed using their names as retrieved from the activeParameterNameProvider.
-
-
-
message
String message
- Default:
- "{org.hibernate.validator.constraints.ParametersScriptAssert.message}"
-
-
-
groups
Class<?>[] groups
- Default:
- {}
-
-