Sunteți pe pagina 1din 30

Adicin de Validacin Personalizada

6 ?

Copyright 2004, Oracle. Todos los derechos reservados.

Objetivos
Al finalizar esta leccin, debera estar capacitado para: Agregar mtodos personalizados para validar datos de negocio Utilizar mtodos de acceso a datos de tipo seguro Utilizar asociaciones de entidad en la lgica de negocio Atravesar asociaciones de entidad

Copyright 2004, Oracle. Todos los derechos reservados.

Visin General
Objeto de Entidad Customers Id Name Status Email Orders Id CustomerId OrderMode OrderTotal Entity Method Validator Atributo Method Validator Dominio Tipo de validacin Regla de negocio El nombre no puede contener ms de 50 caracteres El correo electrnico debe contener un smbolo "@" y "." Debe existir el correo electrnico del cliente Si el valor de OrderMode es "ONLINE"

Copyright 2004, Oracle. Todos los derechos reservados.

Adicin de una Validacin a una Entidad


Hay una serie de ubicaciones donde colocar la validacin: Validadores predefinidos: para reglas simples basadas en XML Validadores de mtodos personalizados: para reglas ms complejas de atributos y entidades Mtodo definidor de atributos: para reglas complejas de atributo Sustituye los mtodos EntityImpl.java: para reglas ms complejas de entidad y comportamientos personalizados Dominios: se pueden utilizar para varios atributos en diferentes objetos de entidad
Copyright 2004, Oracle. Todos los derechos reservados.

Validacin de Atributos
Para crear una validacin personalizada de atributos, puede: Crear un MethodValidator en el archivo EntityImpl.java o Modificar el mtodo setter() del atributo en el archivo EntityImpl.java

Copyright 2004, Oracle. Todos los derechos reservados.

Creacin de un MethodValidator para un Atributo


Para crear un validador personalizado, cree un mtodo nuevo en el archivo EntityImpl.java. Seleccione el archivo EntityImpl.java en el panel Structure o seleccione Go to Entity Object Class en el men contextual.

Copyright 2004, Oracle. Todos los derechos reservados.

Creacin de un MethodValidator para un Atributo


Para crear una validacin personalizada como MethodValidator, el mtodo: Se debe definir como pblico Debe aceptar un nico argumento del mismo tipo que el atributo Debe devolver un valor booleano Debe empezar por validate
public boolean validateEmail(String value) { return (value.indexOf('@') != -1 ); }

Copyright 2004, Oracle. Todos los derechos reservados.

Utilizacin de Mtodos de Tipo Seguro


EntityImpl.java contiene mtodos de tipo seguro para obtener y definir cada uno de los atributos de la entidad. Para sustituir el mtodo definidor en el archivo EntityImpl.java: Agregue un cdigo de validacin personalizada en los mtodos. Llame a setAttributeInternal() para definir el valor del atributo que sigue al cdigo de validacin.
public void setCreditLimit(Number value) { // add your custom code here setAttributeInternal(CREDITLIMIT, value); }
Copyright 2004, Oracle. Todos los derechos reservados.

Validacin de Objetos de Entidad


Tambin se puede crear un MethodValidators en el archivo EntityImpl.java para validar los objetos de entidad. Los mtodos de validacin de entidad personalizada: Se deben definir como pblicos Deben devolver un valor booleano
public boolean validateOrder() { String date = new java.util.Date().toString(); if( (getOrderStatus().equals("2")) && (getOrderDate().toString() == date )) {return true; }

else {return false;}}


Copyright 2004, Oracle. Todos los derechos reservados.

Validacin de Objetos de Entidad


Si los MethodValidators de entidad son demasiado limitadores, cree un mtodo personalizado en el archivo EntityImpl.java:
public boolean checkOrderMode(){ if ( ("ONLINE".equals(getOrderMode())) || !(getCustomerEmail() == null)) { //success } else { // Error - online order must have email address }}
Copyright 2004, Oracle. Todos los derechos reservados.

Llamada a Mtodos EntityImpl


Tambin es posible sustituir otro mtodos en EntityImpl.java. Por ejemplo: doDML(): registra los cambios en otra entidad beforeCommit(): valida varias instancias de la misma entidad remove(): registra una supresin en otra entidad

Copyright 2004, Oracle. Todos los derechos reservados.

Orden de Validacin
La validacin de atributos se produce en el siguiente orden: Validacin de dominio: en la instanciacin de un objeto de entidad Mtodo definidor: en la creacin o modificacin de un atributo Validadores predefinidos: En una llamada a setAttributeInternal() Atributo MethodValidators Mtodo validateEntity() Entidad MethodValidators Mtodo doDML() Mtodo beforeCommit()
Copyright 2004, Oracle. Todos los derechos reservados.

Asociaciones
Las asociaciones definen una relacin entre los objetos de entidad. Las asociaciones: Facilitan el acceso a los datos en objetos de entidad relacionados Se pueden basar en restricciones de base de datos Pueden ser independientes de las restricciones de base de datos Estn compuestas de una entidad (maestra) de origen y una entidad (detalle) de destino

Copyright 2004, Oracle. Todos los derechos reservados.

Asociaciones
Las asociaciones definen una relacin entre los objetos de entidad. Las asociaciones: Facilitan el acceso a los datos en objetos de entidad relacionados Se pueden basar en restricciones de base de datos Pueden ser independientes de las restricciones de base de datos Estn compuestas de una entidad (maestra) de origen y una entidad (detalle) de destino

Copyright 2004, Oracle. Todos los derechos reservados.

Ejemplo de Asociacin
Un cliente puede realizar uno o varios pedidos. Un pedido lo realiza un solo cliente.

Customers Origen

OrderPlacedBy Asociacin

Orders Destino

Copyright 2004, Oracle. Todos los derechos reservados.

Mtodos de Acceso
Son mtodos opcionales creados mediante un asistente de asociaciones Proporcionan acceso a los datos desde la entidad asociada Son bidireccionales Por ejemplo:
Obtener todos los pedidos de un cliente Obtener informacin del cliente desde un pedido

Copyright 2004, Oracle. Todos los derechos reservados.

Tipos de Asociacin
Asociacin
Las entidades estn relacionadas pero no son completamente dependientes. Cualquier extremo de la asociacin puede existir sin el otro. Normalmente es una categorizacin.

Composicin
La entidad de destino es completamente dependiente de la entidad de origen. La entidad de origen posee la entidad de destino. No se puede crear ninguna entidad de destino sin que exista primero la entidad propietaria.

Copyright 2004, Oracle. Todos los derechos reservados.

Determinacin del Tipo de Asociacin


Dos preguntas que se deben formular: Puede existir un objeto de entidad de destino sin el origen?
En caso afirmativo, el origen est asociado al destino. En caso contrario, el origen est compuesto del destino.

Cuando se suprime el origen, se suprime tambin el destino?


En caso afirmativo, la relacin es una composicin. En caso contrario, la relacin es una asociacin.

Copyright 2004, Oracle. Todos los derechos reservados.

Creacin de Asociaciones de Entidad

La parte uno de la asociacin

La parte varios de la asociacin

Copyright 2004, Oracle. Todos los derechos reservados.

Creacin de Asociaciones de Entidad

La parte uno de la asociacin

La parte varios de la asociacin

Copyright 2004, Oracle. Todos los derechos reservados.

Creacin de Asociaciones de Entidad

Copyright 2004, Oracle. Todos los derechos reservados.

Creacin de Asociaciones de Entidad

Copyright 2004, Oracle. Todos los derechos reservados.

Recorrido de Asociaciones: de Destino a Origen


Order getLineItem() ItemOrderedOnAssoc LineItem getTrackingNo()

El archivo EntityImpl.java de la entidad de destino contiene mtodos para obtener y definir la entidad de origen. Por ejemplo, LineItemImpl.java contiene getOrd() y setOrd(). Puede agregar un mtodo a LineItemImpl.java para obtener el nmero de seguimiento del pedido que contiene este elemento:
public String getTrackingNo() { return getOrd().getTrackingNo(); }
Copyright 2004, Oracle. Todos los derechos reservados.

Recorrido de Asociaciones: de Origen a Destino


Order getLineItem() ItemOrderedOnAssoc LineItem

El archivo EntityImpl.java de la entidad de origen contiene un mtodo para obtener la entidad de destino. Por ejemplo, OrdImpl.java contiene el mtodo:
public oracle.jbo.RowIterator getLineItem()

Debe utilizar los mtodos de RowIterator para pasar de fila a fila y obtener valores de atributo individuales.

Copyright 2004, Oracle. Todos los derechos reservados.

Resumen
En esta leccin ha aprendido a: Agregar reglas de negocio a ADF Business Components Validar entidades, atributos y dominios Probar las reglas de validacin

Copyright 2004, Oracle. Todos los derechos reservados.

Prctica 6-1: Visin General


Esta prctica cubre los siguientes temas: Aplicacin de las reglas ListValidator Creacin del cdigo de validacin de dominio Prueba de las reglas de validacin

Copyright 2004, Oracle. Todos los derechos reservados.

Prctica 6-1

Copyright 2004, Oracle. Todos los derechos reservados.

Prctica 6-1

Copyright 2004, Oracle. Todos los derechos reservados.

Prctica 6-1

Copyright 2004, Oracle. Todos los derechos reservados.

Copyright 2004, Oracle. Todos los derechos reservados.

S-ar putea să vă placă și