void (final XmlWriter writer) { if (myModule == null) { return; } boolean haveClientProperties = false; try { ClientPropertiesProperty cpp = ClientPropertiesProperty.getInstance(getProject()); for (Property prop : cpp.getChildren(this)) { ClientPropertyProperty clientProp = (ClientPropertyProperty)prop; final Object value = getDelegee().getClientProperty(clientProp.getName()); if (value != null) { if (!haveClientProperties) { writer.startElement(UIFormXmlConstants.ELEMENT_CLIENT_PROPERTIES); haveClientProperties = true; } writer.startElement(clientProp.getName()); writer.addAttribute(UIFormXmlConstants.ATTRIBUTE_CLASS, value.getClass().getName()); writer.addAttribute(UIFormXmlConstants.ATTRIBUTE_VALUE, value.toString()); writer.endElement(); } } } finally { if (haveClientProperties) { writer.endElement(); } } }