com.day.cq.search.facets.extractors
Class PredefinedBucketsFacetExtractor

java.lang.Object
  extended by com.day.cq.search.facets.extractors.PropertyFacetExtractor
      extended by com.day.cq.search.facets.extractors.PredefinedBucketsFacetExtractor
All Implemented Interfaces:
FacetExtractor

public class PredefinedBucketsFacetExtractor
extends PropertyFacetExtractor

PredefinedBucketsFacetExtractor extracts facets based on a list of predefined buckets. This means that the buckets returned will at most be the ones added in the constructor or through addPredefinedBucket(PredefinedBucket), but could be less, because only buckets with at least one match will be returned in the facet.

Since:
5.2

Field Summary
 
Fields inherited from class com.day.cq.search.facets.extractors.PropertyFacetExtractor
EMPTY_PROPERTY_LIST, propertyRelPath
 
Constructor Summary
PredefinedBucketsFacetExtractor(String propertyRelPath)
           
PredefinedBucketsFacetExtractor(String propertyRelPath, Collection<? extends PredefinedBucket> buckets)
           
 
Method Summary
 void addPredefinedBucket(PredefinedBucket bucket)
          Adds a predefined bucket to this extractor.
 boolean equals(Object obj)
           
protected  List<Value> filter(List<Value> values, ValueFactory vf)
          Filters the values by applying the filter of the definition associated with this facet.
 Facet getFacet()
          Called after the result set was scanned (and FacetExtractor.handleNode(Node) was called for each node in the result) to retrieve the final Facet object.
protected  void handleValue(Value value)
          Called for each value found in a node of the result and that matches the relative property path.
 int hashCode()
           
 
Methods inherited from class com.day.cq.search.facets.extractors.PropertyFacetExtractor
getValues, handleNode
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PredefinedBucketsFacetExtractor

public PredefinedBucketsFacetExtractor(String propertyRelPath)

PredefinedBucketsFacetExtractor

public PredefinedBucketsFacetExtractor(String propertyRelPath,
                                       Collection<? extends PredefinedBucket> buckets)
Method Detail

addPredefinedBucket

public void addPredefinedBucket(PredefinedBucket bucket)
Adds a predefined bucket to this extractor.

Parameters:
definition - the bucket definition to add.

handleValue

protected void handleValue(Value value)
                    throws RepositoryException
Description copied from class: PropertyFacetExtractor
Called for each value found in a node of the result and that matches the relative property path. This can be multiple values per node as it could be a multi-value property or if multiple properties match the relative property path pattern.

Specified by:
handleValue in class PropertyFacetExtractor
Parameters:
value - a value to check in which bucket it fits
Throws:
RepositoryException

getFacet

public Facet getFacet()
Description copied from interface: FacetExtractor
Called after the result set was scanned (and FacetExtractor.handleNode(Node) was called for each node in the result) to retrieve the final Facet object. Please note that this might be called without FacetExtractor.handleNode(Node) ever being called, if the result was empty.

Implementations can use the simple FacetImpl implementation of the Facet interface.

Returns:
an implementation of the Facet interface with all buckets found in the result or null if nothing was found in the result

filter

protected List<Value> filter(List<Value> values,
                             ValueFactory vf)
                      throws RepositoryException
Description copied from class: PropertyFacetExtractor
Filters the values by applying the filter of the definition associated with this facet.

Specified by:
filter in class PropertyFacetExtractor
Parameters:
values - the values to filter.
vf - the value factory.
Returns:
the filtered values.
Throws:
RepositoryException - if an error occurs while reading the values.

equals

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

hashCode

public int hashCode()
Overrides:
hashCode in class Object


Copyright © 2009 Day Management AG. All Rights Reserved.