View Javadoc

1   /*
2    * EL4J, the Extension Library for the J2EE, adds incremental enhancements to
3    * the spring framework, http://el4j.sf.net
4    * Copyright (C) 2005 by ELCA Informatique SA, Av. de la Harpe 22-24,
5    * 1000 Lausanne, Switzerland, http://www.elca.ch
6    *
7    * EL4J is published under the GNU Lesser General Public License (LGPL)
8    * Version 2.1. See http://www.gnu.org/licenses/
9    *
10   * This program is distributed in the hope that it will be useful,
11   * but WITHOUT ANY WARRANTY; without even the implied warranty of
12   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13   * GNU Lesser General Public License for more details.
14   *
15   * For alternative licensing, please contact info@elca.ch
16   */
17  
18  package ch.elca.el4j.tests.services.exceptionhandler;
19  
20  import org.aopalliance.intercept.MethodInvocation;
21  import org.slf4j.Logger;
22  
23  import ch.elca.el4j.services.exceptionhandler.InappropriateHandlerException;
24  import ch.elca.el4j.services.exceptionhandler.handler.AbstractReconfigureExceptionHandler;
25  
26  /**
27   * This exception handler reconfigures the A bean, exchanging the concrete
28   * {@link ch.elca.el4j.tests.services.exceptionhandler.Adder} implementation.
29   *
30   * @svnLink $Revision: 3883 $;$Date: 2009-08-04 15:35:01 +0200 (Di, 04. Aug 2009) $;$Author: swismer $;$URL: https://el4j.svn.sourceforge.net/svnroot/el4j/branches/el4j_3_1/el4j/framework/modules/exception_handling/src/test/java/ch/elca/el4j/tests/services/exceptionhandler/ReconfigureExceptionHandler.java $
31   *
32   * @author Andreas Bur (ABU)
33   */
34  public class ReconfigureExceptionHandler extends
35  		AbstractReconfigureExceptionHandler {
36  
37  	/** The replacement object. */
38  	private C m_c;
39  	
40  	/**
41  	 * Sets the replacement object.
42  	 *
43  	 * @param c
44  	 *      The instance of C that is used as the replacement.
45  	 */
46  	public void setC(C c) {
47  		m_c = c;
48  	}
49  
50  	/**
51  	 * {@inheritDoc}
52  	 */
53  	protected void reconfigure(Throwable t, MethodInvocation invocation, Logger logger) {
54  		
55  		if (!"add".equals(invocation.getMethod().getName())) {
56  			throw new InappropriateHandlerException();
57  		}
58  		
59  		((A) invocation.getThis()).setAdder(m_c);
60  	}
61  }