public static Filter createVisibilityLabelFilter(Region region, Authorizations authorizations)
    throws IOException {
    Map<ByteRange, Integer> cfVsMaxVersions = new HashMap<>();
    for (ColumnFamilyDescriptor hcd : region.getTableDescriptor().getColumnFamilies()) {
      cfVsMaxVersions.put(new SimpleMutableByteRange(hcd.getName()), hcd.getMaxVersions());
    }
    VisibilityLabelService vls =
      VisibilityLabelServiceManager.getInstance().getVisibilityLabelService();
    Filter visibilityLabelFilter =
      new VisibilityLabelFilter(vls.getVisibilityExpEvaluator(authorizations), cfVsMaxVersions);
    return visibilityLabelFilter;
  }
Extracts and partitions the visibility tags and nonVisibility Tags
@param cell       - the cell for which we would extract and partition the visibility and non
                  visibility tags - all the visibilty tags of type TagType.VISIBILITY_TAG_TYPE
                  would be added to this list
@param nonVisTags - all the non visibility tags would be added to this list
@return - the serailization format of the tag. Can be null if no tags are found or if there is
        no visibility tag found
hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityUtils.java