Package spin

Class ProxyFactory

java.lang.Object
spin.ProxyFactory
Direct Known Subclasses:
CGLibProxyFactory, JDKProxyFactory

public abstract class ProxyFactory extends Object
A factory of proxies which intercept invocations, using Evaluators to evaluate them.
See Also:
  • Constructor Details

    • ProxyFactory

      public ProxyFactory()
  • Method Details

    • 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
    • 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
    • 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
    • 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
      Throws:
      Throwable