private boolean readOneValue(TProtocol in, byte type, List<Action> buffer, ThriftType expectedType) throws TException {
    if (expectedType != null && expectedType.getType().getSerializedThriftType() != type) {
      throw new DecodingSchemaMismatchException("the data type does not match the expected thrift structure: expected " + expectedType + " got " + typeName(type));
    }
    boolean hasFieldsIgnored = false;
    switch (type) {
    case TType.LIST:
      hasFieldsIgnored = readOneList(in, buffer, (ListType)expectedType);
      break;
    case TType.MAP:
      hasFieldsIgnored = readOneMap(in, buffer, (MapType)expectedType);
      break;
    case TType.SET:
      hasFieldsIgnored = readOneSet(in, buffer, (SetType)expectedType);
      break;
    case TType.STRUCT:
      hasFieldsIgnored = readOneStruct(in, buffer, (StructType)expectedType);
      break;
    case TType.STOP:
      break;
    case TType.BOOL:
      final boolean bool = in.readBool();
      writeBoolAction(buffer, bool);
      break;
    case TType.BYTE:
      final byte b = in.readByte();
      writeByteAction(buffer, b);
      break;
    case TType.DOUBLE:
      final double d = in.readDouble();
      writeDoubleAction(buffer, d);
      break;
    case TType.I16:
      final short s = in.readI16();
      writeShortAction(buffer, s);
      break;
    case TType.ENUM: // same as i32 => actually never seen in the protocol layer as enums are written as a i32 field
    case TType.I32:
      final int i = in.readI32();
      checkEnum(expectedType,i);
      writeIntAction(buffer, i);
      break;
    case TType.I64:
      final long l = in.readI64();
      writeLongAction(buffer, l);
      break;
    case TType.STRING:
      final ByteBuffer bin = in.readBinary();
      writeStringAction(buffer, bin);
      break;
    case TType.VOID:
      break;
    default:
      throw new TException("Unknown type: " + type);
    }
    return hasFieldsIgnored;
  }
private boolean readOneValue ( TProtocol in , byte type , List < Action > buffer , ThriftType expectedType ) throws TException { if ( expectedType != null && expectedType . getType ( ) . getSerializedThriftType ( ) != type ) { throw new DecodingSchemaMismatchException ( "the data type does not match the expected thrift structure: expected " + expectedType + " got " + typeName ( type ) ) ; } boolean hasFieldsIgnored = false ; switch ( type ) { case TType . LIST : hasFieldsIgnored = readOneList ( in , buffer , ( ListType ) expectedType ) ; break ; case TType . MAP : hasFieldsIgnored = readOneMap ( in , buffer , ( MapType ) expectedType ) ; break ; case TType . SET : hasFieldsIgnored = readOneSet ( in , buffer , ( SetType ) expectedType ) ; break ; case TType . STRUCT : hasFieldsIgnored = readOneStruct ( in , buffer , ( StructType ) expectedType ) ; break ; case TType . STOP : break ; case TType . BOOL : final boolean bool = in . readBool ( ) ; writeBoolAction ( buffer , bool ) ; break ; case TType . BYTE : final byte b = in . readByte ( ) ; writeByteAction ( buffer , b ) ; break ; case TType . DOUBLE : final double d = in . readDouble ( ) ; writeDoubleAction ( buffer , d ) ; break ; case TType . I16 : final short s = in . readI16 ( ) ; writeShortAction ( buffer , s ) ; break ; case TType . ENUM : case TType . I32 : final int i = in . readI32 ( ) ; checkEnum ( expectedType , i ) ; writeIntAction ( buffer , i ) ; break ; case TType . I64 : final long l = in . readI64 ( ) ; writeLongAction ( buffer , l ) ; break ; case TType . STRING : final ByteBuffer bin = in . readBinary ( ) ; writeStringAction ( buffer , bin ) ; break ; case TType . VOID : break ; default : throw new TException ( "Unknown type: " + type ) ; } return hasFieldsIgnored ; }
@return true when all value is consumed, false when some values is ignored due to the field is not defined in expectedType
@throws TException