package railo.runtime.net.rpc.server; import java.util.HashMap; import java.util.Map; import java.util.regex.Pattern; import javax.xml.namespace.QName; import org.apache.axis.encoding.ser.SimpleDeserializer; public class StringDeserializer extends SimpleDeserializer { private static final Map<Pattern, String> replacements; static { replacements = new HashMap<Pattern, String>(); for (char c = 0x00; c <= 0x1F; ++c) { replacements.put(Pattern.compile(StringSerializer.xmlCodeForChar(c)), Character.toString(c)); } replacements.put(Pattern.compile(StringSerializer.xmlCodeForChar((char) 0x7F)), Character.toString((char) 0x7F)); } public StringDeserializer(Class javaType, QName xmlType) { super(javaType, xmlType); } public Object makeValue(String source) throws Exception { String val = source; for (Pattern pattern : replacements.keySet()) { val = pattern.matcher(val).replaceAll(replacements.get(pattern)); } return val; } }