Allow streaming Class references.

git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5524 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
Andrzej Kapolka
2008-11-08 01:57:42 +00:00
parent 4b9477ca91
commit 28c7609df8
3 changed files with 97 additions and 52 deletions
@@ -44,6 +44,7 @@ public class BasicStreamers
Long.class,
Float.class,
Double.class,
Class.class,
String.class,
boolean[].class,
byte[].class,
@@ -68,6 +69,7 @@ public class BasicStreamers
new LongStreamer(),
new FloatStreamer(),
new DoubleStreamer(),
new ClassStreamer(),
new StringStreamer(),
new BooleanArrayStreamer(),
new ByteArrayStreamer(),
@@ -225,6 +227,24 @@ public class BasicStreamers
}
}
/** Streams {@link Class} instances. */
public static class ClassStreamer extends BasicStreamer
{
@Override
public Object createObject (ObjectInputStream in)
throws IOException, ClassNotFoundException
{
return in.readClassMapping().sclass;
}
@Override
public void writeObject (Object object, ObjectOutputStream out, boolean useWriter)
throws IOException
{
out.writeClassMapping((Class)object);
}
}
/** Streams {@link String} instances. */
public static class StringStreamer extends BasicStreamer
{