com.ejie.r01f.sql
Class CLOBInvocationHandler

java.lang.Object
  extended bycom.ejie.r01f.sql.CLOBInvocationHandler
All Implemented Interfaces:
java.lang.reflect.InvocationHandler

public class CLOBInvocationHandler
extends java.lang.Object
implements java.lang.reflect.InvocationHandler

ProxyHandler de un Dynamic Proxy que se encarga de abstraer al programador de la implementacion concreta de LOBS: ORACLE o Weblogic. La configuracion a utilizar se establece en el fichero r01f.properties.xml true <--- Utilizar LOBS de weblogic Normalmente, se utiliza un DynamicProxy para EVITAR LAS DEPENDENCIAS EN TIEMPO DE COMPILACION entre el cliente y la clase: El esquema es: Cliente --> Proxy(implementa LOB) --> LOB Concreto Dado que todas las llamadas al LOB se hacen a través del Proxy, en el Proxy se transforman las llamadas al LOB en llamadas a la implementación concreta de forma transparente y evitando dependencias en tiempo de compilacion entre el cliente y clase


Constructor Summary
CLOBInvocationHandler()
          Constructor vacio
CLOBInvocationHandler(java.sql.Clob clob)
          Constructor en base a una instancia del Clob.
 
Method Summary
 java.lang.Object invoke(java.lang.Object proxy, java.lang.reflect.Method method, java.lang.Object[] args)
          Realiza la invocación del método del LOB llamado en el objeto sobre el que se está haciendo proxy (la implementación concreta ORACLE o WEBLOGIC) Cliente ---> [Proxy (presenta el interfaz del LOB] ---> Implementacion Concreta El cliente piensa que trata con el LOB "genuinio", pero en realidad está invocando al Proxy que a través del método invoke, llama al método correspondiente en la implementación cargada
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CLOBInvocationHandler

public CLOBInvocationHandler()
Constructor vacio


CLOBInvocationHandler

public CLOBInvocationHandler(java.sql.Clob clob)
Constructor en base a una instancia del Clob. Aqui es donde esta toda la magia: en funcion si se esta accediendo al clob a través de Oracle o Weblogic, se hace un casting

Parameters:
clob -
Method Detail

invoke

public java.lang.Object invoke(java.lang.Object proxy,
                               java.lang.reflect.Method method,
                               java.lang.Object[] args)
                        throws java.lang.Throwable
Realiza la invocación del método del LOB llamado en el objeto sobre el que se está haciendo proxy (la implementación concreta ORACLE o WEBLOGIC) Cliente ---> [Proxy (presenta el interfaz del LOB] ---> Implementacion Concreta El cliente piensa que trata con el LOB "genuinio", pero en realidad está invocando al Proxy que a través del método invoke, llama al método correspondiente en la implementación cargada

Specified by:
invoke in interface java.lang.reflect.InvocationHandler
Throws:
java.lang.Throwable