/* ================================================================== * Created [2009-4-27 下午11:32:55] by Jon.King * ================================================================== * TSS * ================================================================== * mailTo:jinpujun@hotmail.com * Copyright (c) Jon.King, 2009-2012 * ================================================================== */ package com.jinhe.tss.core.web.dispaly.xform; import java.util.Map; import org.dom4j.Element; import org.dom4j.tree.DefaultElement; import com.jinhe.tss.core.util.XMLDocUtil; import com.jinhe.tss.core.web.dispaly.IDataEncoder; import com.jinhe.tss.core.web.dispaly.XmlPrintWriter; /** * <p> * XFormDataEncoder.java * </p> * <p> * XForm数据编码器:将实现IXForm接口的对象或Map对象的数据转换成XForm数据节点的XML字符串 * </p> * */ public class XFormDataEncoder implements IDataEncoder { private static final String XFORM_DATA_ROW_NODENAME = "row"; private static final String XFORM_DATA_NODENAME = "data"; private String dataXml = null; public XFormDataEncoder(IXForm entity) { dataXml = encode(entity); } /** * 将实体中的数据转换为XML格式,输出格式为: <data><row id="" name="" ..../></data> * * @param entity * @return */ public String encode(IXForm entity) { Map<String, Object> attributesMap = entity.getAttributesForXForm(); Element dataNode = new DefaultElement(XFORM_DATA_NODENAME); Element rowNode = XMLDocUtil.map2DataNode(attributesMap, XFORM_DATA_ROW_NODENAME); dataNode.add(rowNode); return dataNode.asXML(); } public String toXml() { return dataXml; } public void print(XmlPrintWriter out) { out.append(dataXml); } }