protected final void writeProperties(final XmlWriter writer) {
    writer.startElement(UIFormXmlConstants.ELEMENT_PROPERTIES);
    try {
      final IntrospectedProperty[] introspectedProperties =
        getPalette().getIntrospectedProperties(this);
      for (final IntrospectedProperty property : introspectedProperties) {
        if (isMarkedAsModified(property)) {
          final Object value = property.getValue(this);
          if (value != null) {
            writer.startElement(property.getName());
            try {
              //noinspection unchecked
              property.write(value, writer);
            }
            finally {
              writer.endElement();
            }
          }
        }
      }
    }
    finally {
      writer.endElement(); // properties
    }
    writeClientProperties(writer);
  }
protected final void writeProperties(final XmlWriter writer)