/** =================================================================== * * L2FProd.com Common Components 7.3 License. * * Copyright (c) 2005-2007 L2FProd.com. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. The end-user documentation included with the redistribution, if * any, must include the following acknowlegement: * "This product includes software developed by L2FProd.com * (http://www.L2FProd.com/)." * Alternately, this acknowlegement may appear in the software itself, * if and wherever such third-party acknowlegements normally appear. * * 4. The names "L2FProd.com Common Components", "l2fprod-common" and "L2FProd.com" must not * be used to endorse or promote products derived from this software * without prior written permission. For written permission, please * contact info@L2FProd.com. * * 5. Products derived from this software may not be called "l2fprod-common" * nor may "l2fprod-common" appear in their names without prior written * permission of L2FProd.com. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL L2FPROD.COM OR ITS CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * ==================================================================== */ package com.l2fprod.common.model; import com.l2fprod.common.beans.BeanInfoResolver; import java.beans.BeanInfo; /** * DefaultBeanInfoResolver. <br> * */ public class DefaultBeanInfoResolver implements BeanInfoResolver { public DefaultBeanInfoResolver() { super(); } public BeanInfo getBeanInfo(Object object) { if (object == null) { return null; } return getBeanInfo(object.getClass()); } public BeanInfo getBeanInfo(Class clazz) { if (clazz == null) { return null; } String classname = clazz.getName(); // look for .impl.basic., remove it and call getBeanInfo(class) int index = classname.indexOf(".impl.basic"); if (index != -1 && classname.endsWith("Basic")) { classname = classname.substring(0, index) + classname.substring( index + ".impl.basic".length(), classname.lastIndexOf("Basic")); try { return getBeanInfo(Class.forName(classname)); } catch (ClassNotFoundException e) { return null; } } else { try { BeanInfo beanInfo = (BeanInfo)Class.forName(classname + "BeanInfo").newInstance(); return beanInfo; } catch (Exception e) { return null; } } } }