/**********************************************************\ | | | hprose | | | | Official WebSite: http://www.hprose.com/ | | http://www.hprose.org/ | | | \**********************************************************/ /**********************************************************\ * * * StringSerializer.java * * * * String serializer class for Java. * * * * LastModified: Aug 6, 2016 * * Author: Ma Bingyao <andot@hprose.com> * * * \**********************************************************/ package net.hasor.libs.com.hprose.io.serialize; import java.io.IOException; import java.io.OutputStream; import static net.hasor.libs.com.hprose.io.HproseTags.TagEmpty; import static net.hasor.libs.com.hprose.io.HproseTags.TagString; public final class StringSerializer extends ReferenceSerializer<String> { public final static StringSerializer instance = new StringSerializer(); @Override public final void serialize(Writer writer, String s) throws IOException { super.serialize(writer, s); OutputStream stream = writer.stream; stream.write(TagString); ValueWriter.write(stream, s); } @Override public final void write(Writer writer, String obj) throws IOException { OutputStream stream = writer.stream; switch (obj.length()) { case 0: stream.write(TagEmpty); break; case 1: ValueWriter.write(stream, obj.charAt(0)); break; default: super.write(writer, obj); break; } } }