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]>