-
- All Implemented Interfaces:
public class Filter
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description public final classFilter.Andpublic final classFilter.Orpublic final classFilter.Notpublic final classFilter.Leaf
-
Method Summary
Modifier and Type Method Description abstract <T extends Any> Tvisit(FilterVisitor<T> visitor)final FilterremoveValue(String column, SqlTarget value)final FilterremoveValue(SqlTarget target, SqlTarget value)final Filterminus(Filter toRemove)Allows to get a filter built by removing given filter from the current filter (current filter is not changed by this operation). final FilterreplaceColumns(Map<String, String> columns)Allows creating a filter which is made form the current one but with replaced column names (if any). final FilterkeepColumns(String columns)final FilterkeepColumns(Collection<String> columns)final FilterdropColumns(String columns)final FilterdropColumns(Collection<String> columns)final FilterdropColumns(Function1<String, Boolean> columnNamePredicate)final Filtermodify(Function1<Filter.Leaf, Filter> mapper)-
-
Method Detail
-
visit
abstract <T extends Any> T visit(FilterVisitor<T> visitor)
-
removeValue
final Filter removeValue(String column, SqlTarget value)
-
removeValue
final Filter removeValue(SqlTarget target, SqlTarget value)
-
minus
final Filter minus(Filter toRemove)
Allows to get a filter built by removing given filter from the current filter (current filter is not changed by this operation).
Note: given filter is compared via identity, e.g. if current filter is like
a = 1 or (b = 2 or a = 1)and this method is called withFilter.Leaf(SqlTarget.Column("a"), Constraint.Binary(Operator.EQUAL, "1"))then it returns the same filter, i.e.a = 1 or (b = 2 or a = 1)because even though given filter is equal to internala = 1sub-filters, it's a different object
-
replaceColumns
final Filter replaceColumns(Map<String, String> columns)
Allows creating a filter which is made form the current one but with replaced column names (if any).
For example, suppose that we have a filter like
a = 1 or (a = 2 and b = 3)initially and call this method withmapOf("a" to "x", "b" to "y"). Resulting filter would bex = 1 or (x = 2 and y = 3)
-
keepColumns
final Filter keepColumns(String columns)
-
keepColumns
final Filter keepColumns(Collection<String> columns)
-
dropColumns
final Filter dropColumns(String columns)
-
dropColumns
final Filter dropColumns(Collection<String> columns)
-
dropColumns
final Filter dropColumns(Function1<String, Boolean> columnNamePredicate)
-
modify
final Filter modify(Function1<Filter.Leaf, Filter> mapper)
-
-
-
-