@InterfaceAudience.Private public class FilterListWithAND extends FilterListBase
Filter.ReturnCode| Modifier and Type | Field and Description |
|---|---|
private List<Filter> |
seekHintFilters |
filters, subFiltersIncludedCell| Constructor and Description |
|---|
FilterListWithAND(List<Filter> filters) |
| Modifier and Type | Method and Description |
|---|---|
void |
addFilterLists(List<Filter> filters) |
boolean |
equals(Object obj) |
boolean |
filterAllRemaining()
Filters that never filter all remaining can inherit this implementation that never stops the
filter early.
|
Filter.ReturnCode |
filterCell(Cell c)
A way to filter based on the column family, column qualifier and/or the column value.
|
boolean |
filterRow()
Filters that never filter by rows based on previously gathered state from
Filter.filterCell(Cell) can inherit this implementation that never filters a row. |
boolean |
filterRowKey(byte[] rowKey,
int offset,
int length)
Filters that do not filter by row key can inherit this implementation that never filters
anything.
|
boolean |
filterRowKey(Cell firstRowCell)
Filters a row based on the row key.
|
protected String |
formatLogFilters(List<Filter> logFilters) |
Cell |
getNextCellHint(Cell currentCell)
Filters that are not sure which key must be next seeked to, can inherit this implementation
that, by default, returns a null Cell.
|
int |
hashCode() |
private boolean |
isIncludeRelatedReturnCode(Filter.ReturnCode rc) |
private Filter.ReturnCode |
mergeReturnCode(Filter.ReturnCode rc,
Filter.ReturnCode localRC)
FilterList with MUST_PASS_ALL choose the maximal forward step among sub-filters in filter list.
|
void |
reset()
Filters that are purely stateless and do nothing in their reset() methods can inherit this
null/empty implementation.
|
checkAndGetReversed, compareCell, filterKeyValue, filterRowCells, getFilters, hasFilterRow, isEmpty, isFamilyEssential, isInReturnCodes, setReversed, size, toString, transformCellareSerializedFieldsEqual, createFilterFromArguments, toByteArrayisReversed, parseFromprivate List<Filter> seekHintFilters
public FilterListWithAND(List<Filter> filters)
public void addFilterLists(List<Filter> filters)
addFilterLists in class FilterListBaseprotected String formatLogFilters(List<Filter> logFilters)
formatLogFilters in class FilterListBaseprivate Filter.ReturnCode mergeReturnCode(Filter.ReturnCode rc, Filter.ReturnCode localRC)
INCLUDE < SKIP < INCLUDE_AND_NEXT_COL < NEXT_COL < INCLUDE_AND_SEEK_NEXT_ROW < NEXT_ROW
< SEEK_NEXT_USING_HINT
Here, we have the following map to describe The Maximal Step Rule. if current return code (for
previous sub-filters in filter list) is ReturnCode, and current filter returns
localRC, then we should return map[ReturnCode][localRC] for the merged result,
according to The Maximal Step Rule. LocalCode\ReturnCode INCLUDE INCLUDE_AND_NEXT_COL INCLUDE_AND_SEEK_NEXT_ROW SKIP NEXT_COL NEXT_ROW SEEK_NEXT_USING_HINT INCLUDE INCLUDE INCLUDE_AND_NEXT_COL INCLUDE_AND_SEEK_NEXT_ROW SKIP NEXT_COL NEXT_ROW SEEK_NEXT_USING_HINT INCLUDE_AND_NEXT_COL INCLUDE_AND_NEXT_COL INCLUDE_AND_NEXT_COL INCLUDE_AND_SEEK_NEXT_ROW NEXT_COL NEXT_COL NEXT_ROW SEEK_NEXT_USING_HINT INCLUDE_AND_SEEK_NEXT_ROW INCLUDE_AND_SEEK_NEXT_ROW INCLUDE_AND_SEEK_NEXT_ROW INCLUDE_AND_SEEK_NEXT_ROW NEXT_ROW NEXT_ROW NEXT_ROW SEEK_NEXT_USING_HINT SKIP SKIP NEXT_COL NEXT_ROW SKIP NEXT_COL NEXT_ROW SEEK_NEXT_USING_HINT NEXT_COL NEXT_COL NEXT_COL NEXT_ROW NEXT_COL NEXT_COL NEXT_ROW SEEK_NEXT_USING_HINT NEXT_ROW NEXT_ROW NEXT_ROW NEXT_ROW NEXT_ROW NEXT_ROW NEXT_ROW SEEK_NEXT_USING_HINT SEEK_NEXT_USING_HINT SEEK_NEXT_USING_HINT SEEK_NEXT_USING_HINT SEEK_NEXT_USING_HINT SEEK_NEXT_USING_HINT SEEK_NEXT_USING_HINT SEEK_NEXT_USING_HINT SEEK_NEXT_USING_HINT
rc - Return code which is calculated by previous sub-filter(s) in filter list.localRC - Return code of the current sub-filter in filter list.private boolean isIncludeRelatedReturnCode(Filter.ReturnCode rc)
public Filter.ReturnCode filterCell(Cell c) throws IOException
FilterReturnCode.NEXT_ROW, it should return
ReturnCode.NEXT_ROW until Filter.reset() is called just in case the caller calls
for the next row. Concrete implementers can signal a failure condition in their code by
throwing an IOException.filterCell in class Filterc - the Cell in questionIOException - in case an I/O or an filter specific failure needs to be signaled.Filter.ReturnCodepublic void reset() throws IOException
FilterBaseIOException.reset in class FilterBaseIOException - in case an I/O or an filter specific failure needs to be signaled.public boolean filterRowKey(byte[] rowKey, int offset, int length) throws IOException
FilterBaseFilter.filterCell(Cell) below. Concrete
implementers can signal a failure condition in their code by throwing an IOException.filterRowKey in class FilterBaserowKey - buffer containing row keyoffset - offset into buffer where row key startslength - length of the row keyIOException - in case an I/O or an filter specific failure needs to be signaled.public boolean filterRowKey(Cell firstRowCell) throws IOException
FilterFilter.filterCell(Cell) below. If
Filter.filterAllRemaining() returns true, then Filter.filterRowKey(Cell) should also return
true. Concrete implementers can signal a failure condition in their code by throwing an
IOException.filterRowKey in class FilterBasefirstRowCell - The first cell coming in the new rowIOException - in case an I/O or an filter specific failure needs to be signaled.public boolean filterAllRemaining() throws IOException
FilterBaseIOException.filterAllRemaining in class FilterBaseIOException - in case an I/O or an filter specific failure needs to be signaled.public boolean filterRow() throws IOException
FilterBaseFilter.filterCell(Cell) can inherit this implementation that never filters a row.
Last chance to veto row based on previous Filter.filterCell(Cell) calls. The filter needs to
retain state then return a particular value for this call if they wish to exclude a row if a
certain column is missing (for example). Concrete implementers can signal a failure condition
in their code by throwing an IOException.filterRow in class FilterBaseIOException - in case an I/O or an filter specific failure needs to be signaled.public Cell getNextCellHint(Cell currentCell) throws IOException
FilterBaseIOException.getNextCellHint in class FilterBaseIOException - in case an I/O or an filter specific failure needs to be signaled.Copyright © 2007–2020 The Apache Software Foundation. All rights reserved.