com.ejie.r01f.sql
Class BLOBInvocationHandler

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

public class BLOBInvocationHandler
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
BLOBInvocationHandler()
          Constructor vacio
BLOBInvocationHandler(java.sql.Blob blob)
          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

BLOBInvocationHandler

public BLOBInvocationHandler()
Constructor vacio


BLOBInvocationHandler

public BLOBInvocationHandler(java.sql.Blob blob)
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

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