Class FilterSpec

java.lang.Object
org.eclipse.jgit.transport.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 Details

    • types

      private final FilterSpec.ObjectTypes types
    • blobLimit

      private final long blobLimit
    • treeDepthLimit

      private final long treeDepthLimit
    • NO_FILTER

      public static final FilterSpec NO_FILTER
      A placeholder that indicates no filtering.
  • Constructor Details

  • Method Details

    • 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.
    • withObjectTypes

      static FilterSpec withObjectTypes(FilterSpec.ObjectTypes types)
      Parameters:
      types - set of permitted object types, for use in "blob:none" and "object:none" filters
      Returns:
      a filter spec which restricts to objects of the specified types
    • withBlobLimit

      static FilterSpec withBlobLimit(long blobLimit)
      Parameters:
      blobLimit - the blob limit in a "blob:[limit]" filter line
      Returns:
      a filter spec which filters blobs above a certain size
    • withTreeDepthLimit

      static FilterSpec withTreeDepthLimit(long treeDepthLimit)
      Parameters:
      treeDepthLimit - the tree depth limit in a "tree:[depth]" filter line
      Returns:
      a filter spec which filters blobs and trees beyond a certain tree depth
    • 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"