25 package java.beans;
26
27 import com.sun.beans.TypeResolver;
28 import com.sun.beans.WeakCache;
29 import com.sun.beans.finder.ClassFinder;
30 import com.sun.beans.introspect.ClassInfo;
31 import com.sun.beans.introspect.EventSetInfo;
32 import com.sun.beans.introspect.PropertyInfo;
33
34 import java.awt.Component;
35
36 import java.lang.ref.Reference;
37 import java.lang.ref.SoftReference;
38 import java.lang.reflect.Constructor;
39 import java.lang.reflect.InvocationTargetException;
40 import java.lang.reflect.Method;
41 import java.lang.reflect.Type;
42
43 import java.util.Map;
44 import java.util.ArrayList;
45 import java.util.Arrays;
46 import java.util.HashMap;
47 import java.util.Iterator;
48 import java.util.EventObject;
49 import java.util.List;
50 import java.util.TreeMap;
51
52 import jdk.internal.misc.JavaBeansAccess;
53 import jdk.internal.misc.SharedSecrets;
54 import sun.reflect.misc.ReflectUtil;
55
56 /**
57 * The Introspector class provides a standard way for tools to learn about
58 * the properties, events, and methods supported by a target Java Bean.
59 * <p>
60 * For each of those three kinds of information, the Introspector will
61 * separately analyze the bean's class and superclasses looking for
62 * either explicit or implicit information and use that information to
63 * build a BeanInfo object that comprehensively describes the target bean.
64 * <p>
65 * For each class "Foo", explicit information may be available if there exists
66 * a corresponding "FooBeanInfo" class that provides a non-null value when
67 * queried for the information. We first look for the BeanInfo class by
68 * taking the full package-qualified name of the target bean class and
69 * appending "BeanInfo" to form a new class name. If this fails, then
70 * we take the final classname component of this name, and look for that
71 * class in each of the packages specified in the BeanInfo package search
72 * path.
73 * <p>
|
25 package java.beans;
26
27 import com.sun.beans.TypeResolver;
28 import com.sun.beans.WeakCache;
29 import com.sun.beans.finder.ClassFinder;
30 import com.sun.beans.introspect.ClassInfo;
31 import com.sun.beans.introspect.EventSetInfo;
32 import com.sun.beans.introspect.PropertyInfo;
33
34 import java.awt.Component;
35
36 import java.lang.ref.Reference;
37 import java.lang.ref.SoftReference;
38 import java.lang.reflect.Constructor;
39 import java.lang.reflect.InvocationTargetException;
40 import java.lang.reflect.Method;
41 import java.lang.reflect.Type;
42
43 import java.util.Map;
44 import java.util.ArrayList;
45 import java.util.HashMap;
46 import java.util.Iterator;
47 import java.util.EventObject;
48 import java.util.List;
49 import java.util.TreeMap;
50
51 import jdk.internal.access.JavaBeansAccess;
52 import jdk.internal.access.SharedSecrets;
53 import sun.reflect.misc.ReflectUtil;
54
55 /**
56 * The Introspector class provides a standard way for tools to learn about
57 * the properties, events, and methods supported by a target Java Bean.
58 * <p>
59 * For each of those three kinds of information, the Introspector will
60 * separately analyze the bean's class and superclasses looking for
61 * either explicit or implicit information and use that information to
62 * build a BeanInfo object that comprehensively describes the target bean.
63 * <p>
64 * For each class "Foo", explicit information may be available if there exists
65 * a corresponding "FooBeanInfo" class that provides a non-null value when
66 * queried for the information. We first look for the BeanInfo class by
67 * taking the full package-qualified name of the target bean class and
68 * appending "BeanInfo" to form a new class name. If this fails, then
69 * we take the final classname component of this name, and look for that
70 * class in each of the packages specified in the BeanInfo package search
71 * path.
72 * <p>
|