ar.com.jiji.kaya.enhancer
Class FacadeDaoEnhancer

java.lang.Object
  extended by ar.com.jiji.kaya.enhancer.FacadeDaoEnhancer

public class FacadeDaoEnhancer
extends java.lang.Object

Extiende cierta clase implementando los metodos abstractos que involucren operaciones con los dao. Para poder usar esta clase debemos seguir un par de convenciones. Si la implementacion del facade es abstracta, se busca si alguno de estos metodos es una operacion de creacion/actualizacion o borrado de alguna entidad. Los metodos de borrado deben ser de la forma removeX(long id) y los de creacion/actualizacion saveX(<X> obj). Siendo X alguna entidad del sistema. Al encontrar estos metodos se crea una subclase del facade que implemente estos metodos, los cuales delegan su funcionalidad en DaoUtils.
Se usa en general durante la fase de configuracion de la aplicacion por medio de Spring.

Version:
$Revision$ $Date$
Author:
lparra
See Also:
DaoUtils

Method Summary
 java.lang.Class enhance(java.lang.Class clazz, java.lang.String modelPkg)
          Crea una subclase de la clase abstracta especificada e implementa los metodos abstractos para las operaciones de los dao.
 java.lang.Object enhanceAndInstance(java.lang.Class c, java.lang.String model)
          Implementa los metodos abstractos de la clase e instancia la clase.
static FacadeDaoEnhancer getInstance()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

getInstance

public static FacadeDaoEnhancer getInstance()

enhance

public java.lang.Class enhance(java.lang.Class clazz,
                               java.lang.String modelPkg)
                        throws EnhancerException
Crea una subclase de la clase abstracta especificada e implementa los metodos abstractos para las operaciones de los dao.

Parameters:
clazz - La clase a inspeccionar. Puede ser una interfaz.
modelPkg - El nombre del paquete donde estan las clases del modelo. FIXME: Esto supone todos los objetos del dominio en el mismo paquete y no es asi. Ver como solucionarlo.
Returns:
La subclase. Devuelve la misma clase si no es abstracta.
Throws:
EnhancerException

enhanceAndInstance

public java.lang.Object enhanceAndInstance(java.lang.Class c,
                                           java.lang.String model)
Implementa los metodos abstractos de la clase e instancia la clase.

Parameters:
c -
model -
Returns:
See Also:
enhance(Class, String)


Copyright © 2006 Kaya. All Rights Reserved.