docs: public void writeMBeanInfo(OutputStream out, MBeanInfoWrapper value) throws IOException {
          // TODO: MBeanInfo has 2 sub-classes, Model*Support and Open*Support.
          // How to handle them? "Open" has references to OpenTMBean*Info.
          // Model has more convenience methods for retrieving individual
          // items, and methods to set the descriptors.
          // Same for subclasses of the various items.
          writeStartObject(out);
          if (USE_BASE64_FOR_MBEANINFO) {
              writeSerializedField(out, OM_SERIALIZED, value.mbeanInfo);
              writeStringField(out, OM_ATTRIBUTES_URL, value.attributesURL);
              writeSerializedField(out, OM_ATTRIBUTES, value.attributeURLs);
              writeSerializedField(out, OM_OPERATIONS, value.operationURLs);
              return;
          }
          if (value.mbeanInfo.getClass() != MBeanInfo.class) {
              writeSerializedField(out, OM_SERIALIZED, value.mbeanInfo);
          }
          writeStringField(out, OM_CLASSNAME, value.mbeanInfo.getClassName());
          writeStringField(out, OM_DESCRIPTION, value.mbeanInfo.getDescription());
          writeDescriptor(out, OM_DESCRIPTOR, value.mbeanInfo.getDescriptor());
          writeAttributes(out, OM_ATTRIBUTES, value.mbeanInfo.getAttributes(), value.attributeURLs);
          writeStringField(out, OM_ATTRIBUTES_URL, value.attributesURL);
          writeConstructors(out, OM_CONSTRUCTORS, value.mbeanInfo.getConstructors());
          writeNotifications(out, OM_NOTIFICATIONS, value.mbeanInfo.getNotifications());
          writeOperations(out, OM_OPERATIONS, value.mbeanInfo.getOperations(), value.operationURLs);
          writeEndObject(out);
      }