org.logicalcobwebs.proxool.proxy

Class InvokerFacade


public class InvokerFacade
extends java.lang.Object

Invokes a method using a cached method.
Version:
$Revision: 1.3 $, $Date: 2004/07/13 21:13:14 $
Authors:
billhorsman
$Author: billhorsman $ (current maintainer)
Since:
Proxool 0.9

Method Summary

static Method
getConcreteMethod(Class concreteClass, Method injectableMethod)
Returns the method in the concrete class with an indentical signature to that passed
static void
overrideConcreteMethod(Class concreteClass, Method injectableMethod, Method overridenMethod)
Override the method provided by the getConcreteMethod(java.lang.Class, java.lang.reflect.Method).

Method Details

getConcreteMethod

public static Method getConcreteMethod(Class concreteClass,
                                       Method injectableMethod)
            throws ProxoolException
Returns the method in the concrete class with an indentical signature to that passed
Parameters:
concreteClass - the class that we want to invoke methods on. It should either implement all methods on the injectable interface, or provide methods with an identical signature.
injectableMethod - provides signature that we are trying to match
Returns:
the method in the concrete class that we can invoke as if it were in the interface
Throws:
ProxoolException - if the method is not found.

overrideConcreteMethod

public static void overrideConcreteMethod(Class concreteClass,
                                          Method injectableMethod,
                                          Method overridenMethod)
Override the method provided by the getConcreteMethod(java.lang.Class, java.lang.reflect.Method). Use this if you decide that the concrete method provided wasn't any good. For instance, if you get an IllegalAccessException whilst invoking the concrete method then you should perhaps try using the proxy supplied method instead.
Parameters:
concreteClass - the class we are invoking upon
injectableMethod - the method supplied by the proxy
overridenMethod - the one we are going to use (probably the same as injectrableMethod actually)