예제 #1
0
 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);
   }
 }
예제 #2
0
 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);
   }
 }
예제 #3
0
 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);
   }
 }