/**********************************************************\ | | | hprose | | | | Official WebSite: http://www.hprose.com/ | | http://www.hprose.org/ | | | \**********************************************************/ /**********************************************************\ * * * MapSerializer.java * * * * Map 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 java.util.Iterator; import java.util.Map; import static net.hasor.libs.com.hprose.io.HproseTags.*; public final class MapSerializer<K, V> extends ReferenceSerializer<Map<K, V>> { public final static MapSerializer instance = new MapSerializer(); @Override public final void serialize(Writer writer, Map<K, V> map) throws IOException { super.serialize(writer, map); OutputStream stream = writer.stream; int count = map.size(); stream.write(TagMap); if (count > 0) { ValueWriter.writeInt(stream, count); } stream.write(TagOpenbrace); Iterator<Map.Entry<K, V>> it = map.entrySet().iterator(); while (it.hasNext()) { Map.Entry<K, V> entry = it.next(); writer.serialize(entry.getKey()); writer.serialize(entry.getValue()); } stream.write(TagClosebrace); } }