Class FilterSpec


  • public final class FilterSpec
    extends Object
    Represents either a filter specified in a protocol "filter" line, or a placeholder to indicate no filtering.
    Since:
    5.4
    • Field Detail

      • NO_FILTER

        public static final FilterSpec NO_FILTER
        A placeholder that indicates no filtering.
    • Method Detail

      • fromFilterLine

        public static FilterSpec fromFilterLine​(String filterLine)
                                         throws PackProtocolException
        Process the content of "filter" line from the protocol. It has a shape like:
        • "blob:none"
        • "blob:limit=N", with N >= 0
        • "tree:DEPTH", with DEPTH >= 0
        Parameters:
        filterLine - the content of the "filter" line in the protocol
        Returns:
        a FilterSpec representing the given filter
        Throws:
        PackProtocolException - invalid filter because due to unrecognized format or negative/non-numeric filter.
      • allowsType

        public boolean allowsType​(int type)
        Parameters:
        type - a Git object type, such as Constants.OBJ_BLOB
        Returns:
        whether this filter allows objects of the specified type
        Since:
        5.9
      • getBlobLimit

        public long getBlobLimit()
        Returns:
        -1 if this filter does not filter blobs based on size, or a non-negative integer representing the max size of blobs to allow
      • getTreeDepthLimit

        public long getTreeDepthLimit()
        Returns:
        -1 if this filter does not filter blobs and trees based on depth, or a non-negative integer representing the max tree depth of blobs and trees to fetch
      • isNoOp

        public boolean isNoOp()
        Returns:
        true if this filter doesn't filter out anything
      • filterLine

        @Nullable
        public String filterLine()
        Returns:
        the filter line which describes this spec, e.g. "filter blob:limit=42"