예제 #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);
   }
 }
 @Override
 public void appendFinishedValueTypeName(TextOutput out) {
   if (isList) {
     out.append("java.util.List<");
     componentParser.appendFinishedValueTypeName(out);
     out.append('>');
   } else {
     componentParser.appendFinishedValueTypeName(out);
     out.append("[]");
   }
 }
 @Override
 public Short unserialize(Reader reader, int tag, Type type) throws IOException {
   if (tag >= '0' && tag <= '9') return (short) (tag - '0');
   if (tag == TagInteger) return (short) ValueReader.readInt(reader, TagSemicolon);
   switch (tag) {
     case TagLong:
       return (short) ValueReader.readLong(reader, TagSemicolon);
     case TagDouble:
       return Double.valueOf(ValueReader.readDouble(reader)).shortValue();
     case TagEmpty:
       return 0;
     case TagTrue:
       return 1;
     case TagFalse:
       return 0;
     case TagUTF8Char:
       return Short.parseShort(ValueReader.readUTF8Char(reader));
     case TagString:
       return Short.parseShort(ReferenceReader.readString(reader));
   }
   return super.unserialize(reader, tag, type);
 }
 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);
   }
 }
예제 #5
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);
   }
 }
예제 #6
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);
   }
 }
예제 #7
0
 @Override
 public byte[] unserialize(Reader reader, int tag, Type type) throws IOException {
   switch (tag) {
     case TagEmpty:
       return new byte[0];
     case TagBytes:
       return ReferenceReader.readBytes(reader);
     case TagList:
       return ReferenceReader.readByteArray(reader);
     case TagUTF8Char:
       return ValueReader.readUTF8Char(reader).getBytes("UTF-8");
     case TagString:
       return ReferenceReader.readString(reader).getBytes("UTF-8");
   }
   return super.unserialize(reader, tag, type);
 }
예제 #8
0
 static final Locale readLocale(HproseReader reader, InputStream stream) throws IOException {
   Locale locale = toLocale(ValueReader.readString(stream));
   reader.refer.set(locale);
   return locale;
 }
예제 #9
0
 static final Locale readLocale(HproseReader reader, ByteBuffer buffer) throws IOException {
   Locale locale = toLocale(ValueReader.readString(buffer));
   reader.refer.set(locale);
   return locale;
 }
 @Override
 void writeReadCode(ClassScope scope, boolean subtyping, String fieldName, TextOutput out) {
   componentParser.writeArrayReadCode(scope, subtyping, isNullable(), fieldName, out);
 }