001    //$HeadURL: svn+ssh://rbezema@svn.wald.intevation.org/deegree/base/tags/2.1/src/org/deegree/framework/util/Interceptor.java $
002    /*
003     * Created on 21.06.2004
004     * 
005     * TODO To change the template for this generated file go to Window -
006     * Preferences - Java - Code Generation - Code and Comments
007     */
008    package org.deegree.framework.util;
009    
010    import java.lang.reflect.InvocationTargetException;
011    import java.lang.reflect.Method;
012    
013    import org.deegree.framework.log.ILogger;
014    import org.deegree.framework.log.LoggerFactory;
015    
016    /**
017     * @author <a href="mailto:tfr@users.sourceforge.net">Torsten Friebe </A>
018     * 
019     * @author last edited by: $Author: apoth $
020     * 
021     * @version 2.0, $Revision: 6696 $, $Date: 2007-04-25 21:57:05 +0200 (Mi, 25 Apr 2007) $
022     * 
023     * @see <a href="http://www.dofactory.com/patterns/PatternChain.aspx">Chain of
024     *      Responsibility Design Pattern </a>
025     * 
026     * @since 2.0
027     */
028    public abstract class Interceptor {
029    
030        protected static final ILogger LOG = LoggerFactory.getLogger(Interceptor.class);
031        
032        protected abstract Object handleInvocation(Method method, Object[] params)
033                throws IllegalAccessException, InvocationTargetException;
034    
035        /**
036         * 
037         */
038        protected Interceptor nextInterceptor;
039    
040        protected Object getTarget() {
041            return this.nextInterceptor.getTarget();
042        }
043    }