You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1003 B
38 lines
1003 B
11 years ago
|
package de.timroes.axmlrpc.serializer;
|
||
|
|
||
|
import de.timroes.axmlrpc.XMLRPCException;
|
||
|
import de.timroes.axmlrpc.XMLUtil;
|
||
|
import de.timroes.axmlrpc.xmlcreator.XmlElement;
|
||
|
import org.w3c.dom.Element;
|
||
|
|
||
|
/**
|
||
|
*
|
||
|
* @author Tim Roes
|
||
|
*/
|
||
|
public class StringSerializer implements Serializer {
|
||
|
|
||
|
private boolean decodeStrings;
|
||
|
private boolean encodeStrings;
|
||
|
|
||
|
public StringSerializer(boolean encodeStrings, boolean decodeStrings) {
|
||
|
this.decodeStrings = decodeStrings;
|
||
|
this.encodeStrings = encodeStrings;
|
||
|
}
|
||
|
|
||
|
public Object deserialize(Element content) throws XMLRPCException {
|
||
|
String text = XMLUtil.getOnlyTextContent(content.getChildNodes());
|
||
|
if(decodeStrings) {
|
||
|
text = text.replaceAll("<", "<").replaceAll("&", "&");
|
||
|
}
|
||
|
return text;
|
||
|
}
|
||
|
|
||
|
public XmlElement serialize(Object object) {
|
||
|
String content = object.toString();
|
||
|
if(encodeStrings) {
|
||
|
content = content.replaceAll("&", "&").replaceAll("<", "<");
|
||
|
}
|
||
|
return XMLUtil.makeXmlTag(SerializerHandler.TYPE_STRING, content);
|
||
|
}
|
||
|
|
||
|
}
|