code: public static Filter getVisibilityFilter(Transaction tx, Map<byte[], Long> ttlByFamily, boolean allowEmptyValues,
                                             ScanType scanType) {
      return new CellSkipFilter(new TransactionVisibilityFilter(tx, ttlByFamily, allowEmptyValues, scanType, null));
    }
docs: Creates a new {@link org.apache.hadoop.hbase.filter.Filter} for returning data only from visible transactions.
  
  @param tx the current transaction to apply.  Only data visible to this transaction will be returned.
  @param ttlByFamily map of time-to-live (TTL) (in milliseconds) by column family name
  @param allowEmptyValues if {@code true} cells with empty {@code byte[]} values will be returned, if {@code false}
  these will be interpreted as "delete" markers and the column will be filtered out
  @param scanType the type of scan operation being performed