FileDocCategorySizeDatePackage
StandardMBeanIntrospector.javaAPI DocJava SE 6 API5615Tue Jun 10 00:22:04 BST 2008com.sun.jmx.mbeanserver

StandardMBeanIntrospector

public class StandardMBeanIntrospector extends MBeanIntrospector
since
1.6

Fields Summary
private static final StandardMBeanIntrospector
instance
private static final WeakHashMap
definitelyImmutable
private static final PerInterfaceMap
perInterfaceMap
private static final MBeanInfoMap
mbeanInfoMap
Constructors Summary
Methods Summary
voidcheckMethod(java.lang.reflect.Method m)

    
com.sun.jmx.mbeanserver.MBeanAnalyzergetAnalyzer(java.lang.Class mbeanInterface)

	return MBeanAnalyzer.analyzer(mbeanInterface, this);
    
javax.management.DescriptorgetBasicMBeanDescriptor()

	/* We don't bother saying mxbean=false, and we can't know whether
	   the info is immutable until we know whether the MBean class
	   (not interface) is a NotificationBroadcaster. */
	return ImmutableDescriptor.EMPTY_DESCRIPTOR;
    
java.lang.reflect.Type[]getGenericParameterTypes(java.lang.reflect.Method m)

	return m.getGenericParameterTypes();
    
java.lang.reflect.TypegetGenericReturnType(java.lang.reflect.Method m)

	return m.getGenericReturnType();
    
static com.sun.jmx.mbeanserver.StandardMBeanIntrospectorgetInstance()


       
	return instance;
    
javax.management.MBeanAttributeInfogetMBeanAttributeInfo(java.lang.String attributeName, java.lang.reflect.Method getter, java.lang.reflect.Method setter)


        final String description = "Attribute exposed for management";
        try {
            return new MBeanAttributeInfo(attributeName, description,
                                          getter, setter);
        } catch (IntrospectionException e) {
            throw new RuntimeException(e); // should not happen
        }
    
javax.management.DescriptorgetMBeanDescriptor(java.lang.Class resourceClass)

        boolean immutable = isDefinitelyImmutableInfo(resourceClass);
        return new ImmutableDescriptor("mxbean=false",
                                       "immutableInfo=" + immutable);
    
MBeanInfoMapgetMBeanInfoMap()

	return mbeanInfoMap;
    
javax.management.MBeanOperationInfogetMBeanOperationInfo(java.lang.String operationName, java.lang.reflect.Method operation)

        final String description = "Operation exposed for management";
        return new MBeanOperationInfo(description, operation);
    
java.lang.StringgetName(java.lang.reflect.Method m)

	return m.getName();
    
PerInterfaceMapgetPerInterfaceMap()

	return perInterfaceMap;
    
java.lang.String[]getSignature(java.lang.reflect.Method m)

        Class<?>[] params = m.getParameterTypes();
        String[] sig = new String[params.length];
        for (int i = 0; i < params.length; i++)
            sig[i] = params[i].getName();
        return sig;
    
java.lang.ObjectinvokeM2(java.lang.reflect.Method m, java.lang.Object target, java.lang.Object[] args, java.lang.Object cookie)

	return m.invoke(target, args);
    
static booleanisDefinitelyImmutableInfo(java.lang.Class implClass)

        if (!NotificationBroadcaster.class.isAssignableFrom(implClass))
            return true;
        synchronized (definitelyImmutable) {
            Boolean immutable = definitelyImmutable.get(implClass);
            if (immutable == null) {
                final Class<NotificationBroadcasterSupport> nbs =
                        NotificationBroadcasterSupport.class;
                if (nbs.isAssignableFrom(implClass)) {
                    try {
                        Method m = implClass.getMethod("getNotificationInfo");
                        immutable = (m.getDeclaringClass() == nbs);
                    } catch (Exception e) {
                        // Too bad, we'll say no for now.
                        return false;
                    }
                } else
                    immutable = false;
                definitelyImmutable.put(implClass, immutable);
            }
            return immutable;
        }
    
booleanisMXBean()

	return false;
    
java.lang.reflect.MethodmFrom(java.lang.reflect.Method m)

	return m;
    
booleanvalidParameter(java.lang.reflect.Method m, java.lang.Object value, int paramNo, java.lang.Object cookie)

        return isValidParameter(m, value, paramNo);