/* * Copyright 2007 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License") * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package net.sf.beanlib.spi; import java.lang.reflect.Method; import net.sf.beanlib.BeanlibException; import org.apache.log4j.Logger; /** * Adapter class for {@link BeanPopulationExceptionHandler}. * * @author Joe D. Velopar */ public class BeanPopulationExceptionHandlerAdapter implements BeanPopulationExceptionHandler { protected String propertyName; protected Object fromBean; protected Method readerMethod; protected Object toBean; protected Method setterMethod; @Override public void handleException(Throwable t, Logger log) { log.error("\n" + "propertyName=" + propertyName + "\n" + "readerMethod=" + readerMethod + "\n" + "setterMethod=" + setterMethod + "\n" + "fromBean=" + fromBean + "\n" + "toBean=" + toBean + "\n", t); if (t instanceof RuntimeException) throw (RuntimeException) t; if (t instanceof Error) throw (Error) t; throw new BeanlibException(t); } @Override public BeanPopulationExceptionHandlerAdapter initPropertyName(String propertyName) { this.propertyName = propertyName; return this; } @Override public BeanPopulationExceptionHandlerAdapter initFromBean(Object fromBean) { this.fromBean = fromBean; return this; } @Override public BeanPopulationExceptionHandlerAdapter initReaderMethod(Method readerMethod) { this.readerMethod = readerMethod; return this; } @Override public BeanPopulationExceptionHandlerAdapter initToBean(Object toBean) { this.toBean = toBean; return this; } @Override public BeanPopulationExceptionHandlerAdapter initSetterMethod(Method setterMethod) { this.setterMethod = setterMethod; return this; } }