Diferencia entre revisiones de «OVal»
(Página creada con ' OVal es un framework pragmático y extensible para validar cualquier tipo de objetos Java (y no sólo JavaBeans). Se pueden declarar restricciones usando anotaciones (@NotNull...') |
|||
Línea 1: | Línea 1: | ||
− | + | OVal es un framework pragmático y extensible para validar cualquier tipo de objetos Java (y no sólo JavaBeans). | |
Se pueden declarar restricciones usando anotaciones (@NotNull, @MaxLength, etc), POJOs y XML. También se pueden crear restricciones personalizadas, usando clases Java o expresiones en lenguajes de scripting, como JavaScript, Goovy, BeanShell, OGNL o MVEL. | Se pueden declarar restricciones usando anotaciones (@NotNull, @MaxLength, etc), POJOs y XML. También se pueden crear restricciones personalizadas, usando clases Java o expresiones en lenguajes de scripting, como JavaScript, Goovy, BeanShell, OGNL o MVEL. | ||
Línea 8: | Línea 8: | ||
OVal permite: | OVal permite: | ||
− | + | * validar objetos de forma simple a demanda | |
− | + | * especificar restricciones para atributos de una clase, y para métodos getter | |
− | + | * validar objetos basándose en ciertas anotaciones de EJB3 JPA (como ser todos los campos que necesitan un valor no-nulo) | |
− | + | * configurar las restricciones a través de anotaciones, POJOs y/o archivos | |
− | + | * expresar restricciones usando lenguajes de scripting como Groovy, BeanShell y JavaScript | |
− | + | * crear restricciones personalizadas de forma simple | |
− | + | * desarrollar nuevos mecanismos para configurar restricciones | |
===OVal y el Diseño por Contratos=== | ===OVal y el Diseño por Contratos=== | ||
Línea 20: | Línea 20: | ||
OVal nos permite implementar un Diseño por Contratos de manera simple, ya que nos brinda mucha funcionalidad que caracteriza al DbC: | OVal nos permite implementar un Diseño por Contratos de manera simple, ya que nos brinda mucha funcionalidad que caracteriza al DbC: | ||
− | + | * especificar restricciones para los parámetros de un constructor que se verifican automáticamente cuando se invoca al constructor (precondición) | |
− | + | * especificar restricciones para los parámetros de un método que se verifican automáticamente cuando se invoca al método (precondición) | |
− | + | * requerir cierto estado en un objeto antes de invocar al método (precondición) | |
− | + | * forzar la validación del objeto luego de haber creado al objeto (invariante) | |
− | + | * forzar la validación del objeto antes/después de invocar un método del objeto (invariante) | |
− | + | * especificar restricciones para el valor de retorno de un método que se comprueba automáticamente luego de que se ejecuta el método (postcondición) | |
− | + | * requerir un estado determinado en el objeto luego de la invocación a un método (postcondición) | |
==Ver también== | ==Ver también== | ||
* [http://www.dosideas.com/java/562-diseno-por-contrato-con-oval-y-spring.html Introducción a OVal y Spring] | * [http://www.dosideas.com/java/562-diseno-por-contrato-con-oval-y-spring.html Introducción a OVal y Spring] |
Revisión del 17:47 8 may 2009
OVal es un framework pragmático y extensible para validar cualquier tipo de objetos Java (y no sólo JavaBeans).
Se pueden declarar restricciones usando anotaciones (@NotNull, @MaxLength, etc), POJOs y XML. También se pueden crear restricciones personalizadas, usando clases Java o expresiones en lenguajes de scripting, como JavaScript, Goovy, BeanShell, OGNL o MVEL.
Además de validaciones a nivel de atributos, OVal permite implementar el Diseño por Contratos, aplicando restricciones a métodos usando la técnica de AOP a través de AspectJ. De esta manera se pueden validar argumentos de un método en tiempo de ejecución.
Características
OVal permite:
- validar objetos de forma simple a demanda
- especificar restricciones para atributos de una clase, y para métodos getter
- validar objetos basándose en ciertas anotaciones de EJB3 JPA (como ser todos los campos que necesitan un valor no-nulo)
- configurar las restricciones a través de anotaciones, POJOs y/o archivos
- expresar restricciones usando lenguajes de scripting como Groovy, BeanShell y JavaScript
- crear restricciones personalizadas de forma simple
- desarrollar nuevos mecanismos para configurar restricciones
OVal y el Diseño por Contratos
OVal nos permite implementar un Diseño por Contratos de manera simple, ya que nos brinda mucha funcionalidad que caracteriza al DbC:
- especificar restricciones para los parámetros de un constructor que se verifican automáticamente cuando se invoca al constructor (precondición)
- especificar restricciones para los parámetros de un método que se verifican automáticamente cuando se invoca al método (precondición)
- requerir cierto estado en un objeto antes de invocar al método (precondición)
- forzar la validación del objeto luego de haber creado al objeto (invariante)
- forzar la validación del objeto antes/después de invocar un método del objeto (invariante)
- especificar restricciones para el valor de retorno de un método que se comprueba automáticamente luego de que se ejecuta el método (postcondición)
- requerir un estado determinado en el objeto luego de la invocación a un método (postcondición)