Diferencia entre revisiones de «OVal»

De Dos Ideas.
Saltar a: navegación, buscar
(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).
+
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
+
* validar objetos de forma simple a demanda
    * especificar restricciones para atributos de una clase, y para métodos getter
+
* 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)
+
* 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 XML
+
* configurar las restricciones a través de anotaciones, POJOs y/o archivos  
    * expresar restricciones usando lenguajes de scripting como Groovy, BeanShell y JavaScript
+
* expresar restricciones usando lenguajes de scripting como Groovy, BeanShell y JavaScript
    * crear restricciones personalizadas de forma simple
+
* crear restricciones personalizadas de forma simple
    * desarrollar nuevos mecanismos para configurar restricciones
+
* 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 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)
+
* 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)
+
* 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 luego de haber creado al objeto (invariante)
    * forzar la validación del objeto antes/después de invocar un método del 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)
+
* 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)
+
* 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)

Ver también