code: private void appendValue(Object value) {
          if (value == null) {
              append("null");
          } else if (value instanceof MwsObject) {
              append("{");
              needComma = false;
              ((MwsObject) value).writeFragmentTo(this);
              append("}");
          } else if (value instanceof Boolean || value instanceof Number) {
              append(value.toString());
          } else if (value instanceof String) {
              append("\"");
              escape((String) value);
              append("\"");
          } else if (value instanceof Node) {
              appendValue(MwsUtl.toXmlString((Node) value));
          } else if (value instanceof XMLGregorianCalendar) {
              append(((XMLGregorianCalendar) value).toXMLFormat());
          } else if (value instanceof Enum) {
              append(value.toString());
          } else {
              throw new IllegalArgumentException("Unsupported type "+value.getClass().getName());
          }
          needComma = true;
      }
docs: Append a value.
  
  @param value