in core/src/main/java/com/twitter/elephantbird/util/ThriftUtils.java [295:325]
private static Object readSingleFieldNoTag(TProtocol proto,
Field field)
throws TException {
switch(field.getType()) {
case TType.BOOL:
return proto.readBool();
case TType.BYTE:
return proto.readByte();
case TType.I16:
return proto.readI16();
case TType.I32:
return proto.readI32();
case TType.ENUM:
return field.getEnumValueOf(proto.readI32());
case TType.I64:
return proto.readI64();
case TType.DOUBLE:
return proto.readDouble();
case TType.STRING:
return field.isBuffer() ? proto.readBinary() : proto.readString();
case TType.STRUCT:
TBase<?, ?> tObj = field.gettStructDescriptor().newThriftObject();
tObj.read(proto);
return tObj;
default:
throw new IllegalArgumentException("Unexpected type : " + field.getType());
}
}