/*
* Copyright ( c ) 2003 , 2008 , Oracle and / or its affiliates . All rights reserved .
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER .
*
* This code is free software ; you can redistribute it and / or modify it
* under the terms of the GNU General Public License version 2 only , as
* published by the Free Software Foundation .
*
* This code is distributed in the hope that it will be useful , but WITHOUT
* ANY WARRANTY ; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE . See the GNU General Public License
* version 2 for more details ( a copy is included in the LICENSE file that
* accompanied this code ) .
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work ; if not , write to the Free Software Foundation ,
* Inc . , 51 Franklin St , Fifth Floor , Boston , MA 02110 - 1301 USA .
*
* Please contact Oracle , 500 Oracle Parkway , Redwood Shores , CA 94065 USA
* or visit www . oracle . com if you need additional information or have any
* questions .
*/
import java.beans.BeanDescriptor;
import java.beans.EventSetDescriptor;
import java.beans.IndexedPropertyDescriptor;
import java.beans.IntrospectionException;
import java.beans.Introspector;
import java.beans.MethodDescriptor;
import java.beans.PropertyDescriptor;
/**
* This class contains utilities useful for JavaBeans regression testing .
*/
public final class BeanUtils {
/**
* Disables instantiation .
*/
private BeanUtils() {
}
/**
* Returns a bean descriptor for specified class .
*
* @ param type the class to introspect
* @ return a bean descriptor
*/
public static BeanDescriptor getBeanDescriptor(Class type) {
try {
return Introspector.getBeanInfo(type).getBeanDescriptor();
} catch (IntrospectionException exception) {
throw new Error("unexpected exception" , exception);
}
}
/**
* Returns an array of property descriptors for specified class .
*
* @ param type the class to introspect
* @ return an array of property descriptors
*/
public static PropertyDescriptor[] getPropertyDescriptors(Class type) {
try {
return Introspector.getBeanInfo(type).getPropertyDescriptors();
} catch (IntrospectionException exception) {
throw new Error("unexpected exception" , exception);
}
}
/**
* Returns an array of event set descriptors for specified class .
*
* @ param type the class to introspect
* @ return an array of event set descriptors
*/
public static EventSetDescriptor[] getEventSetDescriptors(Class type) {
try {
return Introspector.getBeanInfo(type).getEventSetDescriptors();
} catch (IntrospectionException exception) {
throw new Error("unexpected exception" , exception);
}
}
/**
* Finds an event set descriptor for the class
* that matches the event set name .
*
* @ param type the class to introspect
* @ param name the name of the event set to search
* @ return the { @ code EventSetDescriptor } or { @ code null }
*/
public static EventSetDescriptor findEventSetDescriptor(Class type, String name) {
EventSetDescriptor[] esds = getEventSetDescriptors(type);
for (EventSetDescriptor esd : esds) {
if (esd.getName().equals(name)) {
return esd;
}
}
return null ;
}
/**
* Finds a property descriptor for the class
* that matches the property name .
*
* @ param type the class to introspect
* @ param name the name of the property to search
* @ return the { @ code PropertyDescriptor } , { @ code IndexedPropertyDescriptor } or { @ code null }
*/
public static PropertyDescriptor findPropertyDescriptor(Class type, String name) {
PropertyDescriptor[] pds = getPropertyDescriptors(type);
for (PropertyDescriptor pd : pds) {
if (pd.getName().equals(name)) {
return pd;
}
}
return null ;
}
/**
* Returns a event set descriptor for the class
* that matches the property name .
*
* @ param type the class to introspect
* @ param name the name of the event set to search
* @ return the { @ code EventSetDescriptor }
*/
public static EventSetDescriptor getEventSetDescriptor(Class type, String name) {
EventSetDescriptor esd = findEventSetDescriptor(type, name);
if (esd != null ) {
return esd;
}
throw new Error("could not find event set '" + name + "' in " + type);
}
/**
* Returns a property descriptor for the class
* that matches the property name .
*
* @ param type the class to introspect
* @ param name the name of the property to search
* @ return the { @ code PropertyDescriptor }
*/
public static PropertyDescriptor getPropertyDescriptor(Class type, String name) {
PropertyDescriptor pd = findPropertyDescriptor(type, name);
if (pd != null ) {
return pd;
}
throw new Error("could not find property '" + name + "' in " + type);
}
/**
* Returns an indexed property descriptor for the class
* that matches the property name .
*
* @ param type the class to introspect
* @ param name the name of the property to search
* @ return the { @ code IndexedPropertyDescriptor }
*/
public static IndexedPropertyDescriptor getIndexedPropertyDescriptor(Class type, String name) {
PropertyDescriptor pd = findPropertyDescriptor(type, name);
if (pd instanceof IndexedPropertyDescriptor) {
return (IndexedPropertyDescriptor) pd;
}
reportPropertyDescriptor(pd);
throw new Error("could not find indexed property '" + name + "' in " + type);
}
/**
* Reports all the interesting information in an Indexed / PropertyDescrptor .
*/
public static void reportPropertyDescriptor(PropertyDescriptor pd) {
System.out.println("property name: " + pd.getName());
System.out.println(" type: " + pd.getPropertyType());
System.out.println(" read: " + pd.getReadMethod());
System.out.println(" write: " + pd.getWriteMethod());
if (pd instanceof IndexedPropertyDescriptor) {
IndexedPropertyDescriptor ipd = (IndexedPropertyDescriptor) pd;
System.out.println(" indexed type: " + ipd.getIndexedPropertyType());
System.out.println(" indexed read: " + ipd.getIndexedReadMethod());
System.out.println(" indexed write: " + ipd.getIndexedWriteMethod());
}
}
/**
* Reports all the interesting information in an EventSetDescriptor
*/
public static void reportEventSetDescriptor(EventSetDescriptor esd) {
System.out.println("event set name: " + esd.getName());
System.out.println(" listener type: " + esd.getListenerType());
System.out.println(" method get: " + esd.getGetListenerMethod());
System.out.println(" method add: " + esd.getAddListenerMethod());
System.out.println(" method remove: " + esd.getRemoveListenerMethod());
}
/**
* Reports all the interesting information in a MethodDescriptor
*/
public static void reportMethodDescriptor(MethodDescriptor md) {
System.out.println("method name: " + md.getName());
System.out.println(" method: " + md.getMethod());
}
}
Messung V0.5 in Prozent C=94 H=96 G=94
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.14Bemerkung:
(vorverarbeitet am 2026-10-11)
¤
*© Formatika GbR, Deutschland