@Override
  protected java.lang.Object standardSchemeReadValue(org.apache.thrift.protocol.TProtocol iprot, org.apache.thrift.protocol.TField field) throws org.apache.thrift.TException {
    _Fields setField = _Fields.findByThriftId(field.id);
    if (setField != null) {
      switch (setField) {
        case INT_VALUE:
          if (field.type == INT_VALUE_FIELD_DESC.type) {
            java.lang.Integer intValue;
            intValue = iprot.readI32();
            return intValue;
          } else {
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            return null;
          }
        case LONG_VALUE:
          if (field.type == LONG_VALUE_FIELD_DESC.type) {
            java.lang.Long longValue;
            longValue = iprot.readI64();
            return longValue;
          } else {
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            return null;
          }
        case STRING_VALUE:
          if (field.type == STRING_VALUE_FIELD_DESC.type) {
            java.lang.String stringValue;
            stringValue = iprot.readString();
            return stringValue;
          } else {
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            return null;
          }
        case DOUBLE_VALUE:
          if (field.type == DOUBLE_VALUE_FIELD_DESC.type) {
            java.lang.Double doubleValue;
            doubleValue = iprot.readDouble();
            return doubleValue;
          } else {
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            return null;
          }
        case FLAG:
          if (field.type == FLAG_FIELD_DESC.type) {
            java.lang.Boolean flag;
            flag = iprot.readBool();
            return flag;
          } else {
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            return null;
          }
        case L_STRING:
          if (field.type == L_STRING_FIELD_DESC.type) {
            java.util.List<java.lang.String> lString;
            {
              org.apache.thrift.protocol.TList _list0 = iprot.readListBegin();
              lString = new java.util.ArrayList<java.lang.String>(_list0.size);
              @org.apache.thrift.annotation.Nullable java.lang.String _elem1;
              for (int _i2 = 0; _i2 < _list0.size; ++_i2)
              {
                _elem1 = iprot.readString();
                lString.add(_elem1);
              }
              iprot.readListEnd();
            }
            return lString;
          } else {
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            return null;
          }
        case UNION_MSTRING_STRING:
          if (field.type == UNION_MSTRING_STRING_FIELD_DESC.type) {
            java.util.Map<java.lang.String,java.lang.String> unionMStringString;
            {
              org.apache.thrift.protocol.TMap _map3 = iprot.readMapBegin();
              unionMStringString = new java.util.HashMap<java.lang.String,java.lang.String>(2*_map3.size);
              @org.apache.thrift.annotation.Nullable java.lang.String _key4;
              @org.apache.thrift.annotation.Nullable java.lang.String _val5;
              for (int _i6 = 0; _i6 < _map3.size; ++_i6)
              {
                _key4 = iprot.readString();
                _val5 = iprot.readString();
                unionMStringString.put(_key4, _val5);
              }
              iprot.readMapEnd();
            }
            return unionMStringString;
          } else {
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
            return null;
          }
        default:
          throw new java.lang.IllegalStateException("setField wasn't null, but didn't match any of the case statements!");
      }
    } else {
      org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
      return null;
    }
  }
Find the _Fields constant that matches name, or null if its not found.
serde/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/serde2/thrift/test/PropValueUnion.java