Frames | No Frames |
1: /* ======================================================================== 2: * JCommon : a free general purpose class library for the Java(tm) platform 3: * ======================================================================== 4: * 5: * (C) Copyright 2000-2005, by Object Refinery Limited and Contributors. 6: * 7: * Project Info: http://www.jfree.org/jcommon/index.html 8: * 9: * This library is free software; you can redistribute it and/or modify it 10: * under the terms of the GNU Lesser General Public License as published by 11: * the Free Software Foundation; either version 2.1 of the License, or 12: * (at your option) any later version. 13: * 14: * This library is distributed in the hope that it will be useful, but 15: * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 16: * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public 17: * License for more details. 18: * 19: * You should have received a copy of the GNU Lesser General Public 20: * License along with this library; if not, write to the Free Software 21: * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 22: * USA. 23: * 24: * [Java is a trademark or registered trademark of Sun Microsystems, Inc. 25: * in the United States and other countries.] 26: * 27: * ------------------ 28: * PrintBeanInfo.java 29: * ------------------ 30: * (C)opyright 2003, 2004, by Thomas Morgner and Contributors. 31: * 32: * Original Author: Thomas Morgner; 33: * Contributor(s): David Gilbert (for Object Refinery Limited); 34: * 35: * $Id: PrintBeanInfo.java,v 1.3 2005/10/18 13:32:37 mungady Exp $ 36: * 37: * Changes 38: * ------- 39: * 21.06.2003 : Initial version (TM); 40: * 41: */ 42: 43: package org.jfree.xml.generator.model; 44: 45: import java.beans.BeanInfo; 46: import java.beans.IndexedPropertyDescriptor; 47: import java.beans.IntrospectionException; 48: import java.beans.Introspector; 49: import java.beans.PropertyDescriptor; 50: 51: /** 52: * A utility class for printing information about a class. 53: */ 54: public class PrintBeanInfo { 55: 56: private PrintBeanInfo () 57: { 58: } 59: 60: /** 61: * Prints the information for a class. 62: * 63: * @param c the class. 64: */ 65: public static void print (final Class c) { 66: try { 67: System.out.println("Class: " + c.getName()); 68: System.out.println( 69: "========================================================================" 70: ); 71: final BeanInfo bi = Introspector.getBeanInfo(c, c.getSuperclass()); 72: final PropertyDescriptor[] pd = bi.getPropertyDescriptors(); 73: for (int i = 0; i < pd.length; i++) { 74: System.out.println ("Property: " + pd[i].getDisplayName()); 75: System.out.println( 76: "---------------------------------------------------------------------" 77: ); 78: System.out.println (" ( " + pd[i].getShortDescription() + ")"); 79: if (pd[i] instanceof IndexedPropertyDescriptor) { 80: final IndexedPropertyDescriptor id = (IndexedPropertyDescriptor) pd[i]; 81: System.out.println (" - idx-type : " + id.getIndexedPropertyType()); 82: System.out.println (" - idx-read : " + id.getIndexedReadMethod()); 83: System.out.println (" - idx-write : " + id.getIndexedWriteMethod()); 84: } 85: else { 86: System.out.println (" - type : " + pd[i].getPropertyType()); 87: System.out.println (" - read : " + pd[i].getReadMethod()); 88: System.out.println (" - write : " + pd[i].getWriteMethod()); 89: } 90: System.out.println (" - bound : " + pd[i].isBound()); 91: System.out.println (" - constrained: " + pd[i].isConstrained()); 92: } 93: } 94: catch (IntrospectionException ie) { 95: ie.printStackTrace(); 96: } 97: } 98: 99: /** 100: * Entry point for this utility application. 101: * 102: * @param args the class names. 103: * 104: * @throws Exception if there is a problem. 105: */ 106: public static void main(final String[] args) throws Exception { 107: for (int i = 0; i < args.length; i++) { 108: print(Class.forName(args[i])); 109: } 110: } 111: 112: }