@Override
  public void fromData(DataInput in,
      DeserializationContext context) throws IOException, ClassNotFoundException {
    super.fromData(in, context);
    keys = DataSerializer.readByte(in);
    if (keys == KEY_LIST) {
      bucketKeys = DataSerializer.readHashMap(in);
    } else if (keys == ALL_KEYS) {
      bucketIds = DataSerializer.readHashSet(in);
    }
    regex = DataSerializer.readString(in);
    allowTombstones = DataSerializer.readPrimitiveBoolean(in);
  }
Sends a PartitionedRegion message to fetch all the entries for a bucketId

@param recipient the member that the fetch keys message is sent to
@param r the PartitionedRegion that contains the bucket
@param bucketIds the identity of the buckets that contain the entries to be returned
@param regex the regular expression to be evaluated for selecting keys
@return the processor used to read the returned entries
@throws ForceReattemptException if the peer is no longer available
geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/FetchBulkEntriesMessage.java