Interface Filter
-
- All Superinterfaces:
BaseFilter
public interface Filter extends BaseFilter
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description Filter
addAndFilter(BaseFilter filter)
void
addBetween(String fieldAttributeName, Object value1, Object value2)
Adds a constraint that the valuefieldAttributeName
is betweenvalue1
andvalue2
(boundaries included).void
addBetween(String fieldAttributeName, Calendar start, Calendar end, DateTools.Resolution resolution)
Adds a FAST DATE RANGE constraint that the Calendar value forfieldAttributeName
is betweenstart
andend
(boundaries included) BASED ON the granularityresolution
.void
addContains(String scope, String fullTextSearch)
Adds a fulltext search to this Filter.void
addEqualTo(String fieldAttributeName, Object value)
Adds a constraint that the valuefieldAttributeName
is equal tovalue
void
addEqualTo(String fieldAttributeName, Calendar calendar, DateTools.Resolution resolution)
Adds a constraint that the Calendar value forfieldAttributeName
rounded to its resolution is equal to the rounded value forcalendar
.void
addEqualToCaseInsensitive(String fieldAttributeName, String value)
Case insensitive testing offieldAttributeName
for somevalue
.void
addGreaterOrEqualThan(String fieldAttributeName, Object value)
Adds a constraint that the valuefieldAttributeName
is greater than or equal tovalue
void
addGreaterOrEqualThan(String fieldAttributeName, Calendar calendar, DateTools.Resolution resolution)
note: supported resolutions areDateTools.Resolution.YEAR
,DateTools.Resolution.MONTH
,DateTools.Resolution.DAY
orDateTools.Resolution.HOUR
void
addGreaterThan(String fieldAttributeName, Object value)
Adds a constraint that the valuefieldAttributeName
is greater thanvalue
void
addGreaterThan(String fieldAttributeName, Calendar calendar, DateTools.Resolution resolution)
note: supported resolutions areDateTools.Resolution.YEAR
,DateTools.Resolution.MONTH
,DateTools.Resolution.DAY
orDateTools.Resolution.HOUR
void
addIsNull(String fieldAttributeName)
Add a constraint that the result does NOT have the propertyfieldAttributeName
void
addJCRExpression(String jcrExpression)
Adds the xpathjcrExpression
as constraint.void
addLessOrEqualThan(String fieldAttributeName, Object value)
Adds a constraint that the valuefieldAttributeName
is less than or equal tovalue
void
addLessOrEqualThan(String fieldAttributeName, Calendar calendar, DateTools.Resolution resolution)
note: supported resolutions areDateTools.Resolution.YEAR
,DateTools.Resolution.MONTH
,DateTools.Resolution.DAY
orDateTools.Resolution.HOUR
void
addLessThan(String fieldAttributeName, Object value)
Adds a constraint that the valuefieldAttributeName
is less thanvalue
void
addLessThan(String fieldAttributeName, Calendar calendar, DateTools.Resolution resolution)
note: supported resolutions areDateTools.Resolution.YEAR
,DateTools.Resolution.MONTH
,DateTools.Resolution.DAY
orDateTools.Resolution.HOUR
void
addLike(String fieldAttributeName, String value)
This function is based on the LIKE predicate found in SQL.void
addNotBetween(String fieldAttributeName, Object value1, Object value2)
Adds a constraint that the valuefieldAttributeName
is NOT betweenvalue1
andvalue2
, including NOTvalue1
andvalue2
void
addNotBetween(String fieldAttributeName, Calendar start, Calendar end, DateTools.Resolution resolution)
note: supported resolutions areDateTools.Resolution.YEAR
,DateTools.Resolution.MONTH
,DateTools.Resolution.DAY
orDateTools.Resolution.HOUR
void
addNotContains(String scope, String fullTextSearch)
The negated version ofaddContains(String, String)
void
addNotEqualTo(String fieldAttributeName, Object value)
Adds a constraint that the valuefieldAttributeName
is NOT equal tovalue
void
addNotEqualTo(String fieldAttributeName, Calendar calendar, DateTools.Resolution resolution)
note: supported resolutions areDateTools.Resolution.YEAR
,DateTools.Resolution.MONTH
,DateTools.Resolution.DAY
orDateTools.Resolution.HOUR
void
addNotEqualToCaseInsensitive(String fieldAttributeName, String value)
Case insensitive testing offieldAttributeName
for somevalue
.void
addNotLike(String fieldAttributeName, String value)
void
addNotNull(String fieldAttributeName)
Add a constraint that the result does have the propertyfieldAttributeName
, regardless its valueFilter
addOrFilter(BaseFilter filter)
Filter
negate()
Negates the current filter-
Methods inherited from interface org.hippoecm.hst.content.beans.query.filter.BaseFilter
getJcrExpression
-
-
-
-
Method Detail
-
addContains
void addContains(String scope, String fullTextSearch) throws FilterException
Adds a fulltext search to this Filter. A fulltext search is a search on the indexed text of thescope
. When thescope
is just a.
, the search will be done on the entire document. When thescope
is for example@myproject:title
, the free text search is done on this property only. You can also point to properties of child nodes, for example a scope likemyproject:paragraph/@myproject:header
- Parameters:
scope
- the scope to search in.scope = "."
means searching in the entire node/document.scope = "example:title"
only searches in the property "example:title".scope
is also allowed to be a path to a property in a descendant node, for examplescope = "address/example:street"
. The latter is equivalent toscope = "address/@example:street"
fullTextSearch
- the text to search on- Throws:
FilterException
- whenscope
orfullTextSearch
isnull
-
addNotContains
void addNotContains(String scope, String fullTextSearch) throws FilterException
The negated version ofaddContains(String, String)
- Parameters:
scope
- the scope to search in.scope = "."
means searching in the entire node/document.scope = "example:title"
only searches in the property "example:title".scope
is also allowed to be a path to a property in a descendant node, for examplescope = "address/example:street"
. The latter is equivalent toscope = "address/@example:street"
fullTextSearch
- the text to search on- Throws:
FilterException
- whenscope
orfullTextSearch
isnull
- See Also:
addContains(String, String)
-
addBetween
void addBetween(String fieldAttributeName, Object value1, Object value2) throws FilterException
Adds a constraint that the value
fieldAttributeName
is betweenvalue1
andvalue2
(boundaries included).note that for range queries on calendar/date instances where the granularity of, say Day, is enough, you should use
addBetween(String, java.util.Calendar, java.util.Calendar, DateTools.Resolution)
with the highest resolution that is acceptable for your use case, as this performs much better, OR make sure that your application runs with a default resolution set to for example 'day'- Parameters:
fieldAttributeName
- the name of the attribute, eg "hippo:lastModified"value1
- object that must be of type String, Boolean, Long, Double,Calendar
orDate
value2
- object that must be of type String, Boolean, Long, Double,Calendar
orDate
- Throws:
FilterException
- whenfieldAttributeName
,value1
orvalue2
are invalid types/values or one of them isnull
-
addBetween
void addBetween(String fieldAttributeName, Calendar start, Calendar end, DateTools.Resolution resolution) throws FilterException
Adds a FAST DATE RANGE constraint that the Calendar value forfieldAttributeName
is betweenstart
andend
(boundaries included) BASED ON the granularityresolution
. Thus suppose the Resolution isResolution.DAY
, then results with the same DAY as value forfieldAttributeName
will be included. The higher the Resolution (year is highest) the better the performance!- Parameters:
fieldAttributeName
- the name of the attribute, eg "hippo:lastModified"start
- the date to start from (including)end
- the date to end (including)resolution
- the resolution to use to compare dates. The higher the Resolution (year is highest) the better the performance. supported resolutions areDateTools.Resolution.YEAR
,DateTools.Resolution.MONTH
,DateTools.Resolution.DAY
orDateTools.Resolution.HOUR
- Throws:
FilterException
-
addNotBetween
void addNotBetween(String fieldAttributeName, Object value1, Object value2) throws FilterException
Adds a constraint that the value
fieldAttributeName
is NOT betweenvalue1
andvalue2
, including NOTvalue1
andvalue2
note that for range queries on calendar/date instances where the granularity of, say Day, is enough, you should use
addNotBetween(String, java.util.Calendar, java.util.Calendar, DateTools.Resolution)
with the highest resolution that is acceptable for your use case, as this performs much better, OR make sure that your application runs with a default resolution set to for example 'day'- Parameters:
fieldAttributeName
- the name of the attribute, eg "example:date"value1
- object that must be of type String, Boolean, Long, Double,Calendar
orDate
value2
- object that must be of type String, Boolean, Long, Double,Calendar
orDate
- Throws:
FilterException
- whenfieldAttributeName
,value1
orvalue2
are invalid types/values or one of them isnull
-
addNotBetween
void addNotBetween(String fieldAttributeName, Calendar start, Calendar end, DateTools.Resolution resolution) throws FilterException
note: supported resolutions are
DateTools.Resolution.YEAR
,DateTools.Resolution.MONTH
,DateTools.Resolution.DAY
orDateTools.Resolution.HOUR
-
addEqualTo
void addEqualTo(String fieldAttributeName, Object value) throws FilterException
Adds a constraint that the valuefieldAttributeName
is equal tovalue
- Parameters:
fieldAttributeName
- the name of the attribute, eg "example:author"value
- object that must be of type String, Boolean, Long, Double,Calendar
orDate
- Throws:
FilterException
- whenfieldAttributeName
orvalue
is of invalid type/value or isnull
-
addEqualToCaseInsensitive
void addEqualToCaseInsensitive(String fieldAttributeName, String value) throws FilterException
Case insensitive testing offieldAttributeName
for somevalue
.
-
addEqualTo
void addEqualTo(String fieldAttributeName, Calendar calendar, DateTools.Resolution resolution) throws FilterException
Adds a constraint that the Calendar value for
fieldAttributeName
rounded to its resolution is equal to the rounded value forcalendar
. Thus assume theResolution
is equal toResolution.DAY
, then all nodes/documents where the propertyfieldAttributeName
as a Calendar value with thesame date rounded to days (eg 20130128) has the same value ascalendar
rounded to days, will match.supported resolutions are
DateTools.Resolution.YEAR
,DateTools.Resolution.MONTH
,DateTools.Resolution.DAY
orDateTools.Resolution.HOUR
- Throws:
FilterException
-
addNotEqualTo
void addNotEqualTo(String fieldAttributeName, Object value) throws FilterException
Adds a constraint that the valuefieldAttributeName
is NOT equal tovalue
- Parameters:
fieldAttributeName
- the name of the attribute, eg "example:author"value
- object that must be of type String, Boolean, Long, Double,Calendar
orDate
- Throws:
FilterException
- whenfieldAttributeName
orvalue
is of invalid type/value or isnull
-
addNotEqualToCaseInsensitive
void addNotEqualToCaseInsensitive(String fieldAttributeName, String value) throws FilterException
Case insensitive testing offieldAttributeName
for somevalue
.
-
addNotEqualTo
void addNotEqualTo(String fieldAttributeName, Calendar calendar, DateTools.Resolution resolution) throws FilterException
note: supported resolutions are
DateTools.Resolution.YEAR
,DateTools.Resolution.MONTH
,DateTools.Resolution.DAY
orDateTools.Resolution.HOUR
-
addGreaterOrEqualThan
void addGreaterOrEqualThan(String fieldAttributeName, Object value) throws FilterException
Adds a constraint that the value
fieldAttributeName
is greater than or equal tovalue
note that for range queries on calendar/date instances where the granularity of, say Day, is enough, you should use
addGreaterOrEqualThan(String, java.util.Calendar, DateTools.Resolution)
with the highest resolution that is acceptable for your use case, as this performs much better, OR make sure that your application runs with a default resolution set to for example 'day'- Parameters:
fieldAttributeName
- the name of the attribute, eg "example:date"value
- object that must be of type String, Boolean, Long, Double,Calendar
orDate
- Throws:
FilterException
- whenfieldAttributeName
orvalue
is of invalid type/value or isnull
-
addGreaterOrEqualThan
void addGreaterOrEqualThan(String fieldAttributeName, Calendar calendar, DateTools.Resolution resolution) throws FilterException
note: supported resolutions are
DateTools.Resolution.YEAR
,DateTools.Resolution.MONTH
,DateTools.Resolution.DAY
orDateTools.Resolution.HOUR
-
addGreaterThan
void addGreaterThan(String fieldAttributeName, Object value) throws FilterException
Adds a constraint that the value
fieldAttributeName
is greater thanvalue
note that for range queries on calendar/date instances where the granularity of, say Day, is enough, you should use
addGreaterThan(String, java.util.Calendar, org.hippoecm.repository.util.DateTools.Resolution)
with the highest resolution that is acceptable for your use case, as this performs much better, OR make sure that your application runs with a default resolution set to for example 'day'- Parameters:
fieldAttributeName
- the name of the attribute, eg "example:date"value
- object that must be of type String, Boolean, Long, Double,Calendar
orDate
- Throws:
FilterException
- whenfieldAttributeName
orvalue
is of invalid type/value or isnull
-
addGreaterThan
void addGreaterThan(String fieldAttributeName, Calendar calendar, DateTools.Resolution resolution) throws FilterException
note: supported resolutions are
DateTools.Resolution.YEAR
,DateTools.Resolution.MONTH
,DateTools.Resolution.DAY
orDateTools.Resolution.HOUR
-
addLessOrEqualThan
void addLessOrEqualThan(String fieldAttributeName, Object value) throws FilterException
Adds a constraint that the value
fieldAttributeName
is less than or equal tovalue
note that for range queries on calendar/date instances where the granularity of, say Day, is enough, you should use
addLessOrEqualThan(String, java.util.Calendar, org.hippoecm.repository.util.DateTools.Resolution)
with the highest resolution that is acceptable for your use case, as this performs much better, OR make sure that your application runs with a default resolution set to for example 'day'- Parameters:
fieldAttributeName
- the name of the attribute, eg "example:date"value
- object that must be of type String, Boolean, Long, Double,Calendar
orDate
- Throws:
FilterException
- whenfieldAttributeName
orvalue
is of invalid type/value or isnull
-
addLessOrEqualThan
void addLessOrEqualThan(String fieldAttributeName, Calendar calendar, DateTools.Resolution resolution) throws FilterException
note: supported resolutions are
DateTools.Resolution.YEAR
,DateTools.Resolution.MONTH
,DateTools.Resolution.DAY
orDateTools.Resolution.HOUR
-
addLessThan
void addLessThan(String fieldAttributeName, Object value) throws FilterException
Adds a constraint that the value
fieldAttributeName
is less thanvalue
note that for range queries on calendar/date instances where the granularity of, say Day, is enough, you should use
addLessThan(String, java.util.Calendar, org.hippoecm.repository.util.DateTools.Resolution)
with the highest resolution that is acceptable for your use case, as this performs much better, OR make sure that your application runs with a default resolution set to for example 'day'- Parameters:
fieldAttributeName
- the name of the attribute, eg "example:date"value
- object that must be of type String, Boolean, Long, Double,Calendar
orDate
- Throws:
FilterException
- whenfieldAttributeName
orvalue
is of invalid type/value or isnull
-
addLessThan
void addLessThan(String fieldAttributeName, Calendar calendar, DateTools.Resolution resolution) throws FilterException
note: supported resolutions are
DateTools.Resolution.YEAR
,DateTools.Resolution.MONTH
,DateTools.Resolution.DAY
orDateTools.Resolution.HOUR
-
addLike
void addLike(String fieldAttributeName, String value) throws FilterException
This function is based on the LIKE predicate found in SQL. This method maps to
jcr:like
asjcr:like($property as attribute(), $pattern as xs:string)
. Also see JCR spec 1.0 6.6.5.1 jcr:likeusage: For example, the query “Find all documents whose
myproject:title
property starts withhip
”, is expressed as:addLike("myproject:title","hip%")
. The%
afterhip
is the wildcard.This method is particularly helpful in key kind of fields, where the key values contain chars on which Lucene text indexing tokenizes. For example, "give me all the documents that have a key that start with JIRA key
HSTTW0-23
" can be expressed asaddLike("myproject:key","HSTTW0-23%")
. This results in documents having keyHSTTW0-2345
,HSTTW0-2357
, etc.DO NOT USE '%' AS A PREFIX. Thus do not use a query like
addLike("myproject:key","%HSTTW0-23%")
. Note the prefix '%'. Prefix wildcards blow up in memory and CPU as they cannot be efficiently done in Lucene.- Parameters:
fieldAttributeName
- the name of the attribute, eg "example:author"value
- object that must be of type String- Throws:
FilterException
- whenfieldAttributeName
orvalue
is of invalid type/value or isnull
-
addNotLike
void addNotLike(String fieldAttributeName, String value) throws FilterException
- Throws:
FilterException
- See Also:
only now inverted
-
addNotNull
void addNotNull(String fieldAttributeName) throws FilterException
Add a constraint that the result does have the propertyfieldAttributeName
, regardless its value- Parameters:
fieldAttributeName
- the name of the attribute, eg "example:author"- Throws:
FilterException
- whenfieldAttributeName
isnull
-
addIsNull
void addIsNull(String fieldAttributeName) throws FilterException
Add a constraint that the result does NOT have the propertyfieldAttributeName
- Parameters:
fieldAttributeName
- the name of the attribute, eg "example:author"- Throws:
FilterException
- whenfieldAttributeName
isnull
-
addJCRExpression
void addJCRExpression(String jcrExpression)
Adds the xpathjcrExpression
as constraint. See jsr-170 spec for the xpath format- Parameters:
jcrExpression
-
-
addOrFilter
Filter addOrFilter(BaseFilter filter)
- Parameters:
filter
- to OR added- Returns:
- the current filter
-
addAndFilter
Filter addAndFilter(BaseFilter filter)
- Parameters:
filter
- to AND added- Returns:
- the current filter
-
negate
Filter negate()
Negates the current filter
-
-