/** * */ package com.ibm.sbt.services.client.connections.communities.serializers; import static com.ibm.sbt.services.client.base.ConnectionsConstants.CATEGORY; import static com.ibm.sbt.services.client.base.ConnectionsConstants.ENTRY; import static com.ibm.sbt.services.client.connections.communities.CommunityConstants.COMMUNITY_TERM; import static com.ibm.sbt.services.client.connections.communities.WidgetConstants.WIDGET; import static com.ibm.sbt.services.client.connections.communities.WidgetConstants.WIDGET_DEF_ID; import static com.ibm.sbt.services.client.connections.communities.WidgetConstants.WIDGET_HIDDEN; import static com.ibm.sbt.services.client.connections.communities.WidgetConstants.WIDGET_INST_ID; import static com.ibm.sbt.services.client.connections.communities.WidgetConstants.WIDGET_LOCATION; import static com.ibm.sbt.services.client.connections.communities.WidgetConstants.WIDGET_PREV_INST_ID; import org.w3c.dom.Element; import org.w3c.dom.Node; import com.ibm.sbt.services.client.ClientServicesException; import com.ibm.sbt.services.client.base.ConnectionsConstants.Namespace; import com.ibm.sbt.services.client.base.serializers.AtomEntitySerializer; import com.ibm.sbt.services.client.connections.communities.Widget; import com.ibm.sbt.services.client.connections.communities.model.WidgetXPath; /** * @author Christian Gosch, inovex GmbH * * @see Widget */ public class WidgetSerializer extends AtomEntitySerializer<Widget> { public WidgetSerializer(Widget entity) { super(entity); } protected void generateCreatePayload() throws ClientServicesException { Node entry = entry(); appendChildren(entry, title(), category(), defId(), instanceId(), hidden(), location(), prevInstId() ); } public String createPayload() throws ClientServicesException { generateCreatePayload(); return serializeToString(); } @Override protected Node entry() { Element element = element(Namespace.ATOM.getUrl(), ENTRY); element.setAttributeNS(Namespace.XMLNS.getUrl(), Namespace.SNX.getNSPrefix(), Namespace.SNX.getUrl()); Node root = rootNode(element); return root; } protected Element category() { return textElement(CATEGORY, "", attribute(COMMUNITY_TERM, WIDGET), attribute(Namespace.SCHEME.getPrefix(), Namespace.SCHEME.getUrl())); } protected Element defId() { Element elem = null; if (entity.exists(WidgetXPath.widgetDefId)) { elem = textElement(WIDGET_DEF_ID, entity.getWidgetDefId()); } return elem; } protected Element instanceId() { Element elem = null; if (entity.exists(WidgetXPath.widgetInstanceId)) { elem = textElement(WIDGET_INST_ID, entity.getWidgetInstanceId()); } return elem; } protected Element hidden() { Element elem = null; if (entity.exists(WidgetXPath.widgetHidden)) { elem = textElement(WIDGET_HIDDEN, String.valueOf(entity.getWidgetHidden())); } return elem; } protected Element location() { Element elem = null; if (entity.exists(WidgetXPath.widgetLocation)) { elem = textElement(WIDGET_LOCATION, entity.getWidgetLocation()); } return elem; } protected Element prevInstId() { Element elem = null; if (entity.exists(WidgetXPath.previousWidgetInstanceId)) { elem = textElement(WIDGET_PREV_INST_ID, entity.getPreviousWidgetInstanceId()); } return elem; } }