docs: static private StringBuilder determineType(String name, Object o) {
          String value = null;
          if (o instanceof String || o instanceof StringBuffer || o instanceof java.nio.CharBuffer || o instanceof Integer || o instanceof Long || o instanceof Byte
              || o instanceof Double || o instanceof Float || o instanceof Short || o instanceof BigInteger || o instanceof java.math.BigDecimal) {
              value = o.toString();
          } else {
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                  Tr.debug(tc, "Skipping class: " + o.getClass());
              }
              return null;
          }
  
          // type="class" name="o"
          StringBuilder buffer = new StringBuilder(48);
          buffer.append(name);
          buffer.append("type=\"");
          // charbuffer is abstract so we might get HeapCharBuffer here, force it
          // to the generic layer in the XML output
          if (o instanceof java.nio.CharBuffer) {
              buffer.append("java.nio.CharBuffer");
          } else {
              buffer.append(o.getClass().getName());
          }
          buffer.append("\" ");
          buffer.append(name);
          buffer.append("=\"");
          buffer.append(value);
          buffer.append("\"");
          return buffer;
      }