donaldp     2002/10/03 17:37:41

  Modified:    src/java/org/apache/avalon/phoenix/components/application
                        BlockInvocationHandler.java
  Added:       src/java/org/apache/avalon/phoenix
                        AbstractChainedInvocable.java
  Removed:     src/java/org/apache/avalon/phoenix
                        AstractChainedInvocable.java
  Log:
  Rename class that had a typo in it.
  
  Revision  Changes    Path
  1.1                  
jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/AbstractChainedInvocable.java
  
  Index: AbstractChainedInvocable.java
  ===================================================================
  package org.apache.avalon.phoenix;
  
  import java.lang.reflect.InvocationHandler;
  import java.lang.reflect.InvocationTargetException;
  import java.lang.reflect.Method;
  import org.apache.avalon.framework.logger.AbstractLogEnabled;
  
  /**
   * Subclasses of <tt>AbstractChainedInvocable</tt> form chain of
   * block invocation interceptors.
   *
   * <p>The idea is to be able to extend block's behaviour without changing
   * block's code. One of usages of such interceptors would be
   * <tt>SecurityInterceptor</tt> which verifies if a caller is allowed to
   * perform requested operation on a block.</p>
   *
   * @author ifedorenko
   */
  public abstract class AbstractChainedInvocable
      extends AbstractLogEnabled
      implements InvocationHandler
  {
      private transient Object m_object;
      private InvocationHandler m_chained;
  
      public final void setObject( final Object object )
      {
          m_object = object;
      }
  
      public final void setChained( final InvocationHandler chained )
      {
          m_chained = chained;
      }
  
      /**
       * @see java.lang.reflect.InvocationHandler#invoke(Object, Method, Object[])
       */
      public Object invoke( final Object proxy,
                            final Method method,
                            final Object[] args )
          throws Throwable
      {
          if( null != m_chained )
          {
              return m_chained.invoke( proxy, method, args );
          }
          else
          {
              return invokeObject( proxy, method, args );
          }
      }
  
      /**
       * Invoke the specified method on underlying object.
       * This is called by proxy object.
       *
       * @param proxy the proxy object
       * @param method the method invoked on proxy object
       * @param args the arguments supplied to method
       * @return the return value of method
       * @throws Throwable if an error occurs
       */
      private Object invokeObject( final Object proxy,
                                   final Method method,
                                   final Object[] args )
          throws Throwable
      {
          if( null != m_object )
          {
              try
              {
                  return method.invoke( m_object, args );
              }
              catch( final InvocationTargetException ite )
              {
                  throw ite.getTargetException();
              }
          }
          else
          {
              throw new IllegalStateException( "Using a stale object reference " +
                                               "to call a disposed Block." );
          }
      }
  }
  
  
  
  1.10      +3 -3      
jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/components/application/BlockInvocationHandler.java
  
  Index: BlockInvocationHandler.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/components/application/BlockInvocationHandler.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- BlockInvocationHandler.java       4 Oct 2002 00:33:25 -0000       1.9
  +++ BlockInvocationHandler.java       4 Oct 2002 00:37:41 -0000       1.10
  @@ -9,7 +9,7 @@
   
   import java.lang.reflect.Proxy;
   
  -import org.apache.avalon.phoenix.AstractChainedInvocable;
  +import org.apache.avalon.phoenix.AbstractChainedInvocable;
   
   /**
    * This makes a dynamic proxy for an object.  The object can be represented
  @@ -28,7 +28,7 @@
    * @author <a href="mailto:[EMAIL PROTECTED]";>Paul Hammant</a>
    * @version CVS $Revision$ $Date$
    */
  -final class BlockInvocationHandler extends AstractChainedInvocable
  +final class BlockInvocationHandler extends AbstractChainedInvocable
   {
       private transient Object m_object;
   
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to