@Override
  public int hashCode() {
    int hashCode = 1;

    hashCode = hashCode * 8191 + ((isSetStartRow()) ? 131071 : 524287);
    if (isSetStartRow())
      hashCode = hashCode * 8191 + startRow.hashCode();

    hashCode = hashCode * 8191 + ((isSetStopRow()) ? 131071 : 524287);
    if (isSetStopRow())
      hashCode = hashCode * 8191 + stopRow.hashCode();

    hashCode = hashCode * 8191 + ((isSetTimestamp()) ? 131071 : 524287);
    if (isSetTimestamp())
      hashCode = hashCode * 8191 + org.apache.thrift.TBaseHelper.hashCode(timestamp);

    hashCode = hashCode * 8191 + ((isSetColumns()) ? 131071 : 524287);
    if (isSetColumns())
      hashCode = hashCode * 8191 + columns.hashCode();

    hashCode = hashCode * 8191 + ((isSetCaching()) ? 131071 : 524287);
    if (isSetCaching())
      hashCode = hashCode * 8191 + caching;

    hashCode = hashCode * 8191 + ((isSetFilterString()) ? 131071 : 524287);
    if (isSetFilterString())
      hashCode = hashCode * 8191 + filterString.hashCode();

    hashCode = hashCode * 8191 + ((isSetBatchSize()) ? 131071 : 524287);
    if (isSetBatchSize())
      hashCode = hashCode * 8191 + batchSize;

    hashCode = hashCode * 8191 + ((isSetSortColumns()) ? 131071 : 524287);
    if (isSetSortColumns())
      hashCode = hashCode * 8191 + ((sortColumns) ? 131071 : 524287);

    hashCode = hashCode * 8191 + ((isSetReversed()) ? 131071 : 524287);
    if (isSetReversed())
      hashCode = hashCode * 8191 + ((reversed) ? 131071 : 524287);

    hashCode = hashCode * 8191 + ((isSetCacheBlocks()) ? 131071 : 524287);
    if (isSetCacheBlocks())
      hashCode = hashCode * 8191 + ((cacheBlocks) ? 131071 : 524287);

    return hashCode;
  }
Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise
hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/generated/TScan.java