Package org.eclipse.jgit.transport
Class FilterSpec
- java.lang.Object
-
- org.eclipse.jgit.transport.FilterSpec
-
public final class FilterSpec extends java.lang.ObjectRepresents either a filter specified in a protocol "filter" line, or a placeholder to indicate no filtering.- Since:
- 5.4
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static classFilterSpec.ObjectTypesImmutable bit-set representation of a set of Git object types.
-
Field Summary
Fields Modifier and Type Field Description private longblobLimitstatic FilterSpecNO_FILTERA placeholder that indicates no filtering.private longtreeDepthLimitprivate FilterSpec.ObjectTypestypes
-
Constructor Summary
Constructors Modifier Constructor Description privateFilterSpec(FilterSpec.ObjectTypes types, long blobLimit, long treeDepthLimit)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanallowsType(int type)java.lang.StringfilterLine()static FilterSpecfromFilterLine(java.lang.String filterLine)Process the content of "filter" line from the protocol.longgetBlobLimit()longgetTreeDepthLimit()booleanisNoOp()(package private) static FilterSpecwithBlobLimit(long blobLimit)(package private) static FilterSpecwithObjectTypes(FilterSpec.ObjectTypes types)(package private) static FilterSpecwithTreeDepthLimit(long treeDepthLimit)
-
-
-
Field Detail
-
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 Detail
-
FilterSpec
private FilterSpec(FilterSpec.ObjectTypes types, long blobLimit, long treeDepthLimit)
-
-
Method Detail
-
fromFilterLine
public static FilterSpec fromFilterLine(java.lang.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 asConstants.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 java.lang.String filterLine()
- Returns:
- the filter line which describes this spec, e.g. "filter blob:limit=42"
-
-