1 package de.timroes.axmlrpc.serializer; 2 3 import de.timroes.axmlrpc.XMLRPCException; 4 import de.timroes.axmlrpc.XMLUtil; 5 import de.timroes.axmlrpc.xmlcreator.XmlElement; 6 import org.w3c.dom.Element; 7 8 /** 9 * 10 * @author Tim Roes 11 */ 12 public class StringSerializer implements Serializer { 13 14 private boolean decodeStrings; 15 private boolean encodeStrings; 16 StringSerializer(boolean encodeStrings, boolean decodeStrings)17 public StringSerializer(boolean encodeStrings, boolean decodeStrings) { 18 this.decodeStrings = decodeStrings; 19 this.encodeStrings = encodeStrings; 20 } 21 deserialize(Element content)22 public Object deserialize(Element content) throws XMLRPCException { 23 String text = XMLUtil.getOnlyTextContent(content.getChildNodes()); 24 if(decodeStrings) { 25 text = text.replaceAll("<", "<").replaceAll("&", "&"); 26 } 27 return text; 28 } 29 serialize(Object object)30 public XmlElement serialize(Object object) { 31 String content = object.toString(); 32 if(encodeStrings) { 33 content = content 34 .replaceAll("&", "&") 35 .replaceAll("<", "<") 36 .replaceAll("]]>", "]]>"); 37 } 38 return XMLUtil.makeXmlTag(SerializerHandler.TYPE_STRING, content); 39 } 40 41 }