private AttributeInfo(ManagedAttribute attribute, Method getter) { String name = attribute.name(); if ("".equals(name)) name = toAttributeName(getter.getName()); _name = name; _getter = getter; boolean readOnly = attribute.readonly(); _setter = readOnly ? null : findSetter(attribute, getter, name); _proxied = attribute.proxied(); Class<?> returnType = getter.getReturnType(); _convert = isManagedObject(returnType); String signature = _convert ? returnType.isArray() ? ObjectName[].class.getName() : ObjectName.class.getName() : returnType.getName(); String description = attribute.value(); _info = new MBeanAttributeInfo(name, signature, description, true, _setter != null, getter.getName().startsWith("is")); }