• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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("&lt;", "<").replaceAll("&amp;", "&");
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("&", "&amp;")
35 					.replaceAll("<", "&lt;")
36 					.replaceAll("]]>", "]]&gt;");
37 		}
38 		return XMLUtil.makeXmlTag(SerializerHandler.TYPE_STRING, content);
39 	}
40 
41 }