spin

Class ProxyFactory


public abstract class ProxyFactory
extends java.lang.Object

A factory of proxies which intercept invocations, using Evaluators to evaluate them.
See Also:
Evaluator

Method Summary

protected abstract boolean
areProxyEqual(Object proxy1, Object proxy2)
Test if the given proxies of this factory are intercepting the same object.
abstract Object
createProxy(Object object, Evaluator evaluator)
Create a proxy for the given object that evaluates invocations with the given evaluator.
protected Object
evaluteInvocation(Evaluator evaluator, Object proxy, Invocation invocation)
Evaluate the given invocation with the given evaluator.
abstract boolean
isProxy(Object object)
Test if the given object is a proxy created by this factory.

Method Details

areProxyEqual

protected abstract boolean areProxyEqual(Object proxy1,
                                         Object proxy2)
Test if the given proxies of this factory are intercepting the same object.
Parameters:
proxy1 - first proxy
proxy2 - second proxy
Returns:
true if both proxies are intercepting the same object

createProxy

public abstract Object createProxy(Object object,
                                   Evaluator evaluator)
Create a proxy for the given object that evaluates invocations with the given evaluator.
Parameters:
object - object to create proxy for
evaluator - evaluator to evaluate invocations with
Returns:
new proxy

evaluteInvocation

protected Object evaluteInvocation(Evaluator evaluator,
                                   Object proxy,
                                   Invocation invocation)
            throws Throwable
Evaluate the given invocation with the given evaluator.
Parameters:
evaluator - evaluator to evaluate with
proxy - proxy that intcepted the invocation
invocation - the invocation to evaluate
Returns:
result of evaluation

isProxy

public abstract boolean isProxy(Object object)
Test if the given object is a proxy created by this factory.
Parameters:
object - object to test
Returns:
true if given object is a Spin proxy, false otherwise