|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.knime.base.node.preproc.filter.row.rowfilter.RowFilter
org.knime.base.node.preproc.filter.row.rowfilter.AttrValueRowFilter
org.knime.base.node.preproc.filter.row.rowfilter.RangeRowFilter
public class RangeRowFilter
Filters rows based on the value of a cell in a certain column. It includes
(or excludes) rows if their cell value is in a certain range. The type of the
column is not checked and not restricted to numerical types - the result of a
string range check (for example) might not be as expected though. The filter
uses the comparator provided by the column (see
DataValueComparator
).
NOTE: Before the filter instance is applied it must be configured to find the column index to the specified column name and to set the appropriate comparator.
Constructor Summary | |
---|---|
RangeRowFilter()
Don't use created filter without loading settings before. |
|
RangeRowFilter(String colName,
boolean include,
DataCell lowerBound,
DataCell upperBound)
Creates a filter that compares the value of a data cell in the specified column with the specified range. |
Method Summary | |
---|---|
DataTableSpec |
configure(DataTableSpec inSpec)
Called when a new DataTableSpec is available. |
DataCell |
getLowerBound()
|
DataCell |
getUpperBound()
|
void |
loadSettingsFrom(NodeSettingsRO cfg)
Load your internal settings from the configuration object. |
boolean |
matches(DataRow row,
int rowIndex)
Return true if the specified row matches the criteria set
in the filter. |
protected void |
saveSettings(NodeSettingsWO cfg)
Do not call this function - rather call RowFilter.saveSettingsTo(NodeSettingsWO) . |
String |
toString()
|
Methods inherited from class org.knime.base.node.preproc.filter.row.rowfilter.AttrValueRowFilter |
---|
getColIdx, getColName, getInclude |
Methods inherited from class org.knime.base.node.preproc.filter.row.rowfilter.RowFilter |
---|
clone, saveSettingsTo |
Methods inherited from class java.lang.Object |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public RangeRowFilter(String colName, boolean include, DataCell lowerBound, DataCell upperBound)
NOTE: This filter must be configured before it can be applied (there, the index of the selected column is determined and the comparator is retrieved from the column. The comparator is used to do the range checking).
colName
- the column name of the cell to matchinclude
- if true, matching rows are included, if false, they are
excluded.lowerBound
- the lower bound of the range the value will be checked
against. Could be null (if the upper bound is not null) which
indicates that there is no lower bound for the range.upperBound
- the upper bound of the range the value will be checked
against. Could be null (if the lower bound is not null) which
indicates that there is no upper bound for the range.configure(DataTableSpec)
RangeRowFilter()
Method Detail |
---|
public DataTableSpec configure(DataTableSpec inSpec) throws InvalidSettingsException
DataTableSpec
is available. The filters can
grab whatever they need from that new config (e.g. a comparator), should
do some error checking (e.g. col number against number of columns) -
throw an InvalidSettingsException
if settings are invalid, and
can return a new table spec according to their settings - if they can. If
a filter cannot tell how it would modify the spec, it should return null.
(Returned table specs are not used right now anyway.)
configure
in class AttrValueRowFilter
inSpec
- the new spec propagated into the row filter node. Could be
null or empty!
InvalidSettingsException
- if the settings in the row filter are
not compatible with the table spec coming inpublic void loadSettingsFrom(NodeSettingsRO cfg) throws InvalidSettingsException
loadSettingsFrom
in class AttrValueRowFilter
cfg
- the object holding the settings to load
InvalidSettingsException
- if cfg contains
invalid/incorrect/inconsistent settingsprotected void saveSettings(NodeSettingsWO cfg)
RowFilter.saveSettingsTo(NodeSettingsWO)
. This is just a helper function
for RowFilter.saveSettingsTo(NodeSettingsWO)
. Row filters implement this
and do the work usually done in RowFilter.saveSettingsTo(NodeSettingsWO)
.
The passed config is prepared in a way that the factory will be able to
recreate this object from it.
saveSettings
in class AttrValueRowFilter
cfg
- object to add the current internal settings topublic boolean matches(DataRow row, int rowIndex) throws EndOfTableException, IncludeFromNowOn
true
if the specified row matches the criteria set
in the filter. Can throw a EndOfTableException
if the filter can
tell that no more rows of the table will be able to fulfill the criteria.
matches
in class RowFilter
row
- the row to testrowIndex
- the row index of the passed row in the original table
true
if the row matches the criteria set in the
filter, false
if not
EndOfTableException
- if there is no chance that any of the rows
coming (including the current rowIndex
) will
fulfill the criteria, thus no further row in the original
table will be a match to this filter. (In general this is
hard to tell, but a row number filter can certainly use it.)
If the exception is received the row filter table iterator
will flag an end of table.
IncludeFromNowOn
- if the current and all following rows from now
on are to be included into the result tablepublic DataCell getLowerBound()
public DataCell getUpperBound()
public String toString()
toString
in class Object
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |