static final Time read(HproseReader reader, InputStream stream) throws IOException { int tag = stream.read(); switch (tag) { case TagDate: return DefaultUnserializer.readDateTime(reader, stream).toTime(); case TagTime: return DefaultUnserializer.readTime(reader, stream).toTime(); case TagNull: case TagEmpty: return null; case TagString: return Time.valueOf(StringUnserializer.readString(reader, stream)); case TagRef: return toTime(reader.readRef(stream)); } if (tag >= '0' && tag <= '9') return new Time(tag - '0'); switch (tag) { case TagInteger: case TagLong: return new Time(ValueReader.readLong(stream)); case TagDouble: return new Time(Double.valueOf(ValueReader.readDouble(stream)).longValue()); default: throw ValueReader.castError(reader.tagToString(tag), Time.class); } }
static final Locale read(HproseReader reader, InputStream stream) throws IOException { int tag = stream.read(); switch (tag) { case TagNull: case TagEmpty: return null; case TagString: return readLocale(reader, stream); case TagRef: return toLocale(reader.readRef(stream)); default: throw ValueReader.castError(reader.tagToString(tag), Locale.class); } }
static final Locale read(HproseReader reader, ByteBuffer buffer) throws IOException { int tag = buffer.get(); switch (tag) { case TagNull: case TagEmpty: return null; case TagString: return readLocale(reader, buffer); case TagRef: return toLocale(reader.readRef(buffer)); default: throw ValueReader.castError(reader.tagToString(tag), Locale.class); } }
static final Timestamp[] read(HproseReader reader, InputStream stream) throws IOException { int tag = stream.read(); switch (tag) { case TagNull: return null; case TagList: { int count = ValueReader.readInt(stream, TagOpenbrace); Timestamp[] a = new Timestamp[count]; reader.refer.set(a); for (int i = 0; i < count; ++i) { a[i] = TimestampUnserializer.read(reader, stream); } stream.read(); return a; } case TagRef: return (Timestamp[]) reader.readRef(stream); default: throw ValueReader.castError(reader.tagToString(tag), Array.class); } }