Jive API (3.0.13) Core Javadocs

com.jivesoftware.community
Class ResultFilter

java.lang.Object
  extended by com.jivesoftware.community.ResultFilter
Direct Known Subclasses:
BanFilter, CommentResultFilter, DocumentResultFilter, MediaResultFilter, ThreadResultFilter

public abstract class ResultFilter
extends Object

Abstract base class for Jive SBS result filters.


Field Summary
static int AND_MODE
          'AND' mode.
static int ASCENDING
          Ascending sort (ie 3, 4, 5...).
static int CONTAINS_MATCH
          Contains match.
static int DESCENDING
          Descending sort (ie 3, 2, 1...).
static int EXACT_MATCH
          Exact match.
static int NULL_INT
          An integer value that represents NULL.
static int OR_MODE
          'OR' mode;
 
Constructor Summary
ResultFilter()
           
 
Method Summary
 void addProperty(String name, String value)
          Adds a property to the list of properties that will be filtered on.
 void addProperty(String name, String value, int matchType)
          Adds a property to the list of properties that will be filtered on.
 void addTag(ContentTag tag)
          Adds a ContentTag to the list of tags to filter on.
static ResultFilter createDefaultContentFilter()
          Creates a default ResultFilter: no filtering with results sorted on the modification date.
static ResultFilter createDefaultRecursiveContentFilter()
          Creates a default recursive ResultFilter: no filtering with results sorted on the modification date.
 boolean equals(Object o)
           
 Date getCreationDateRangeMax()
          Returns the date that represents the upper boundry for creation dates that will pass the result filter.
 Date getCreationDateRangeMin()
          Returns the date that represents the lower boundry for creation dates that will pass the result filter.
 Date getModificationDateRangeMax()
          Returns the date that represents the upper boundry for modification dates that will pass the result filter.
 Date getModificationDateRangeMin()
          Returns the date that represents the lower boundry for modification dates that will pass the result filter.
 int getNumResults()
          Returns the max number of results that should be returned.
 int getPropertyCount()
          Returns the number of properties that results will be filtered on.
 int getPropertyMatchType(int index)
          Returns the value of the property at the specified index in the list of properties.
 int getPropertyMode()
          Returns the mode that will be used to select results if multiple properties have been specified.
 String getPropertyName(int index)
          Returns the name of the property at the specified index in the list of properties to be filtered on.
 Object getPropertyValue(int index)
          Returns the value of the property at the specified index in the list of properties to be filtered on.
 String getPropertyValueString(int index)
          Returns the value of the property at the specified index in the list of properties to be filtered on.
 int getSortField()
          Returns the currently selected sort field.
 int getSortOrder()
          Returns the sort order, which will be ResultFilter.ASCENDING for ascending sorting, or ResultFilter.DESCENDING for descending sorting.
 String getSortPropertyName()
          Returns the name of the extended property that will be sorted on.
 int getStartIndex()
          Returns the index of the first result to return.
 Collection<ContentTag> getTags()
          Returns the the ContentTags to filter on.
 long getUserID()
          Returns the userID that results will be filtered on.
 int hashCode()
           
 boolean isAllTagsRequired()
          Returns true if the content must be tagged with every tag contained in getTags().
 boolean isPerformDistinctCount()
          If the query is a count query, this property indicates whether a distinct count shoud be performed.
 boolean isRecursive()
          If true, the result filter will return content from all sub-communities of specified community, including content from sub-communities of sub-communities, etc.
 void setAllTagsRequired(boolean allTagsRequired)
          Sets whether or not the content must be tagged with every tag contained in getTags().
 void setCreationDateRangeMax(Date creationDateRangeMax)
          Sets the date that represents the upper boundry for creation dates that will pass the result filter If this value is not set the result filter will be unbounded for the latest creation date selected.
 void setCreationDateRangeMin(Date creationDateRangeMin)
          Sets the date that represents the lower boundry for creation dates that will pass the result filter.
 void setModificationDateRangeMax(Date modificationDateRangeMax)
          Sets the date that represents the upper boundry for modification dates that will pass the result filter.
 void setModificationDateRangeMin(Date modificationDateRangeMin)
          Sets the date that represents the lower boundry for modification dates that will pass the result filter.
 void setNumResults(int numResults)
          Sets the limit on the number of results to be returned.
 void setPerformDistinctCount(boolean performDistinctCount)
          Sets the mode so that if a count query is performed it will use a distinct count operation.
 void setPropertyMode(int propertyMode)
          Sets the mode that will be used to select results if multiple properties have been specified.
 void setRecursive(boolean recursive)
          Sets the recursive value of queries.
 void setSortField(int sortField)
          Sets the sort field to use.
 void setSortOrder(int sortOrder)
          Sets the sort type.
 void setSortPropertyName(String sortPropertyName)
          Sets the property name to sort on.
 void setStartIndex(int startIndex)
          Sets the index of the first result to return.
 void setTags(Collection<ContentTag> tags)
          Sets the ContentTags to filter on.
 void setUserID(long userID)
          Sets the userID that results will be filtered on.
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

DESCENDING

public static final int DESCENDING
Descending sort (ie 3, 2, 1...).

See Also:
Constant Field Values

ASCENDING

public static final int ASCENDING
Ascending sort (ie 3, 4, 5...).

See Also:
Constant Field Values

EXACT_MATCH

public static final int EXACT_MATCH
Exact match.

See Also:
Constant Field Values

CONTAINS_MATCH

public static final int CONTAINS_MATCH
Contains match.

See Also:
Constant Field Values

AND_MODE

public static final int AND_MODE
'AND' mode.

See Also:
Constant Field Values

OR_MODE

public static final int OR_MODE
'OR' mode;

See Also:
Constant Field Values

NULL_INT

public static final int NULL_INT
An integer value that represents NULL. The actual value is Integer.MAX_VALUE - 123 (an arbitrary number that has a very low probability of actually being selected by a user as a valid value).

See Also:
Constant Field Values
Constructor Detail

ResultFilter

public ResultFilter()
Method Detail

createDefaultContentFilter

public static ResultFilter createDefaultContentFilter()
Creates a default ResultFilter: no filtering with results sorted on the modification date.

Returns:
a default ResultFilter: no filtering with results sorted on the modification date.

createDefaultRecursiveContentFilter

public static ResultFilter createDefaultRecursiveContentFilter()
Creates a default recursive ResultFilter: no filtering with results sorted on the modification date.

Returns:
a default recursiveResultFilter: no filtering with results sorted on the modification date.

getUserID

public long getUserID()
Returns the userID that results will be filtered on. The method will return NULL_INT if no user to filter on has been specified. The method will return -1 if filtering is to take place on all "anonymous" users.

Returns:
the userID that results will be filtered on.

setUserID

public void setUserID(long userID)
Sets the userID that results will be filtered on. If you'd like to filter on "anonymous" users, pass in an id of -1. By default, no filtering on userID's will take place. If you'd like to change so that no filtering is performed, pass in ResultFilter.NULL_INT.

Parameters:
userID - the user ID to filter on.

addProperty

public void addProperty(String name,
                        String value)
Adds a property to the list of properties that will be filtered on. For an object to pass the property filter:

For example, say that we have a comment with extended properties "color" and "size" with the values "green" and "big". If we create a result filter and specify that we should filter on "color=green" and "size=small" with no other properties, the hypothetical comment will be filtered out since the size property values don't match. If OR_MODE is specified and multiple properties to filter upon have been given, then the comment will not be filtered out if any of the other properties match.

Parameters:
name - the name of the property to filter on.
value - the value of the property that results must match.

addProperty

public void addProperty(String name,
                        String value,
                        int matchType)
Adds a property to the list of properties that will be filtered on. There are two types of matching available, EXACT_MATCH and CONTAINS_MATCH. The exact match will match the following:

and the contains match will match the following:

Parameters:
name - the name of the property to filter on.
value - the value of the property that results must match.
matchType - the type of match to perform, one of EXACT_MATCH or CONTAINS_MATCH

getPropertyMode

public int getPropertyMode()
Returns the mode that will be used to select results if multiple properties have been specified. By default the mode is AND_MODE which specifies that all properties must match for the object to be selected. OR_MODE is useful if you want objects to be returned if any of the properties match.

Returns:
the mode that will be used to select results if multiple properties have been specified.

setPropertyMode

public void setPropertyMode(int propertyMode)
Sets the mode that will be used to select results if multiple properties have been specified. AND_MODE (the default) specifies that all properties must match for the object to be selected. OR_MODE is useful if you want objects to be returned if any of the properties match.

Parameters:
propertyMode - the mode that will be used to select results if multiple properties have been specified.

getPropertyCount

public int getPropertyCount()
Returns the number of properties that results will be filtered on.

Returns:
the number of properties that results will be filtered on.

getPropertyName

public String getPropertyName(int index)
Returns the name of the property at the specified index in the list of properties to be filtered on. If the index is invalid, null will be returned.

Parameters:
index - the index of the property in the property list
Returns:
the name of the property at the specified index in the property filter list.

getPropertyValue

public Object getPropertyValue(int index)
Returns the value of the property at the specified index in the list of properties to be filtered on. If the index is invalid, null will be returned.

The object that normally is returned is a String, however if multiple properties are added in OR_MODE with the same name and match type a list will be returned instead.

Parameters:
index - the index of the property in the property list
Returns:
the value of the property at the specified index in the property filter list.

getPropertyValueString

public String getPropertyValueString(int index)
Returns the value of the property at the specified index in the list of properties to be filtered on. If the index is invalid, null will be returned.

If multiple properties are added in OR_MODE with the same name and match type, the first value in the list of values at that index will be returned.

Parameters:
index - the index of the property in the property list
Returns:
the value of the property at the specified index in the property filter list.

getPropertyMatchType

public int getPropertyMatchType(int index)
Returns the value of the property at the specified index in the list of properties. If the index is invalid, EXACT_MATCH will be returned.

Parameters:
index - the index of the property in the properties list
Returns:
the value of the property at the specified index in the property filter list.

isPerformDistinctCount

public boolean isPerformDistinctCount()
If the query is a count query, this property indicates whether a distinct count shoud be performed. This property defaults to True.

Returns:
true if the query should be performed using a count distinct.

setPerformDistinctCount

public void setPerformDistinctCount(boolean performDistinctCount)
Sets the mode so that if a count query is performed it will use a distinct count operation.

Parameters:
performDistinctCount - true if query should be performed using a distinct count

addTag

public void addTag(ContentTag tag)
Adds a ContentTag to the list of tags to filter on. If any tags have been added to the list, only results with at least one of the tags will be returned.

Parameters:
tag - the ContentTag to filter on.

setTags

public void setTags(Collection<ContentTag> tags)
Sets the ContentTags to filter on. Only results with at least one of the tags will be returned.

Parameters:
tags - the ContentTags to filter on.

getTags

public Collection<ContentTag> getTags()
Returns the the ContentTags to filter on.

Returns:
the the ContentTags to filter on.

isAllTagsRequired

public boolean isAllTagsRequired()
Returns true if the content must be tagged with every tag contained in getTags().

Returns:
true if the content must be tagged with every tag contained in getTags().

setAllTagsRequired

public void setAllTagsRequired(boolean allTagsRequired)
Sets whether or not the content must be tagged with every tag contained in getTags(). Default value is false meaning content matching any one of the tags will be returned.

Parameters:
allTagsRequired - true if the content must be tagged with every tag contained in getTags().

getCreationDateRangeMin

public Date getCreationDateRangeMin()
Returns the date that represents the lower boundry for creation dates that will pass the result filter. If this value has not been set, the method will return null and the result filter will be unbounded for the earliest creation date selected.

Returns:
a date representing the lowest value of the creation date to be selected.

setCreationDateRangeMin

public void setCreationDateRangeMin(Date creationDateRangeMin)
Sets the date that represents the lower boundry for creation dates that will pass the result filter. If this value is not set the result filter will be unbounded for the earliest creation date selected.

Setting a date range for a ResultFilter is a potential performance bottleneck. For example, if the argument for the date range is "new Date()" then the corresponding database query will map to an accuracy of a particular millisecond in time. This means that the results can't be cached. A better solution is to round dates to the nearest minute, hour, etc (whatever accuracy you need).

Parameters:
creationDateRangeMin - a date representing the lowest value of the creation date to be selected.

getCreationDateRangeMax

public Date getCreationDateRangeMax()
Returns the date that represents the upper boundry for creation dates that will pass the result filter. If this value is not set it will return null and the result filter will be unbounded for the latest creation date selected.

Returns:
a date representing the highest value of the creation date to be selected.

setCreationDateRangeMax

public void setCreationDateRangeMax(Date creationDateRangeMax)
Sets the date that represents the upper boundry for creation dates that will pass the result filter If this value is not set the result filter will be unbounded for the latest creation date selected.

Setting a date range for a ResultFilter is a potential performance bottleneck. For example, if the argument for the date range is "new Date()" then the corresponding database query will map to an accuracy of a particular millesecond in time. This means that the results can't be cached. A better solution is to round dates to the nearest minute, hour, etc (whatever accuracy you need).

Parameters:
creationDateRangeMax - a date representing the highest value of the creation date to be selected.

getModificationDateRangeMin

public Date getModificationDateRangeMin()
Returns the date that represents the lower boundry for modification dates that will pass the result filter. If this value is not set it will return null and the result filter will be unbounded for the earliest modification date selected.

Returns:
a date representing the lowest value of the modification date range.

setModificationDateRangeMin

public void setModificationDateRangeMin(Date modificationDateRangeMin)
Sets the date that represents the lower boundry for modification dates that will pass the result filter. If this value is not set the result filter will be unbounded for the earliest modification date selected.

Setting a date range for a ResultFilter is a potential performance bottleneck. For example, if the argument for the date range is "new Date()" then the corresponding database query will map to an accuracy of a particular millisecond in time. This means that the results can't be cached. A better solution is to round dates to the nearest minute, hour, etc (whatever accuracy you need).

Parameters:
modificationDateRangeMin - a date representing the lowest value of the modification date to be selected.

getModificationDateRangeMax

public Date getModificationDateRangeMax()
Returns the date that represents the upper boundry for modification dates that will pass the result filter. If this value is not set it will return null and the result filter will be unbounded for the latest modification date selected.

Returns:
a date representing the highest value of the modification date to be selected.

setModificationDateRangeMax

public void setModificationDateRangeMax(Date modificationDateRangeMax)
Sets the date that represents the upper boundry for modification dates that will pass the result filter. If this value is not set the result filter will be unbounded for the latest modification date selected.

Setting a date range for a ResultFilter is a potential performance bottleneck. For example, if the argument for the date range is "new Date()" then the corresponding database query will map to an accuracy of a particular millisecond in time. This means that the results can't be cached. A better solution is to round dates to the nearest minute, hour, etc (whatever accuracy you need).

Parameters:
modificationDateRangeMax - a date representing the highest value of the modification date range to be selected.

getSortField

public int getSortField()
Returns the currently selected sort field. Default is JiveConstants.MODIFICATION_DATE.

Returns:
current sort field.

setSortField

public void setSortField(int sortField)
Sets the sort field to use. Default is JiveConstants.MODIFICATION_DATE. If the sortField is set to JiveConstants.EXTENDED_PROPERTY, the name of the property must be set by a subsequent call to setSortPropertyName(String).

Parameters:
sortField - the field that will be used for sorting.

getSortPropertyName

public String getSortPropertyName()
Returns the name of the extended property that will be sorted on. Returns null if sorting will not be done on a property.

Returns:
the extended property that will be sorted on.

setSortPropertyName

public void setSortPropertyName(String sortPropertyName)
Sets the property name to sort on. You must also call the setSortField(int) method with JiveConstants.EXTENDED_PROPERTY as an argument.

Parameters:
sortPropertyName - the name of the extended property to sort on.

getSortOrder

public int getSortOrder()
Returns the sort order, which will be ResultFilter.ASCENDING for ascending sorting, or ResultFilter.DESCENDING for descending sorting. Descending sorting is: 3, 2, 1, etc. Ascending sorting is 1, 2, 3, etc.

Returns:
the sort order.

setSortOrder

public void setSortOrder(int sortOrder)
Sets the sort type. Valid arguments are ResultFilter.ASCENDING for ascending sorting or ResultFilter.DESCENDING for descending sorting. Descending sorting is: 3, 2, 1, etc. Ascending sorting is 1, 2, 3, etc.

Parameters:
sortOrder - the order that results will be sorted in.

getNumResults

public int getNumResults()
Returns the max number of results that should be returned. The default value for is NULL_INT, which means there will be no limit on the number of results. This method can be used in combination with* setStartIndex(int) to perform pagination of results.

Returns:
the max number of results to return.
See Also:
setStartIndex(int)

setNumResults

public void setNumResults(int numResults)
Sets the limit on the number of results to be returned.

Parameters:
numResults - the number of results to return.

getStartIndex

public int getStartIndex()
Returns the index of the first result to return.

Returns:
the index of the first result which should be returned.

setStartIndex

public void setStartIndex(int startIndex)
Sets the index of the first result to return. For example, if the start index is set to 20, the Iterator returned will start at the 20th result in the query. This method can be used in combination with setNumResults(int) to perform pagination of results.

Parameters:
startIndex - the index of the first result to return.

isRecursive

public boolean isRecursive()
If true, the result filter will return content from all sub-communities of specified community, including content from sub-communities of sub-communities, etc. If false, only content from the specified community will be returned.

The default value of this is false which means that queries will be done in a non-recursive manner.

Returns:
true if this result filter should return recursive content, false otherwise.

setRecursive

public void setRecursive(boolean recursive)
Sets the recursive value of queries. If set to true then database results will be done over an entire tree of communities, rather than in a specific community.

The default value of this is false which means only one community (and not its children) will be considered in results.

Parameters:
recursive - true if this result filter should return recursive content, false otherwise.

equals

public boolean equals(Object o)
Overrides:
equals in class Object

hashCode

public int hashCode()
Overrides:
hashCode in class Object

toString

public String toString()
Overrides:
toString in class Object

Jive Product Page

Copyright © 1999-2007 Jive Software.