com.browseengine.bobo.facets.impl.PathFacetIterator Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of bobo-browse Show documentation
Show all versions of bobo-browse Show documentation
Bobo is a Faceted Search implementation written purely in Java, an extension of Apache Lucene
The newest version!
/**
*
*/
package com.browseengine.bobo.facets.impl;
import java.util.List;
import java.util.NoSuchElementException;
import com.browseengine.bobo.api.BrowseFacet;
import com.browseengine.bobo.api.FacetIterator;
public class PathFacetIterator extends FacetIterator {
private final BrowseFacet[] _facets;
private int _index;
/**
* @param facets a value ascending sorted list of BrowseFacets
*/
public PathFacetIterator(List facets) {
_facets = facets.toArray(new BrowseFacet[facets.size()]);
_index = -1;
facet = null;
count = 0;
}
/*
* (non-Javadoc)
* @see com.browseengine.bobo.api.FacetIterator#next()
*/
@Override
public Comparable> next() {
if ((_index >= 0) && !hasNext()) throw new NoSuchElementException(
"No more facets in this iteration");
_index++;
facet = _facets[_index].getValue();
count = _facets[_index].getFacetValueHitCount();
return facet;
}
/*
* (non-Javadoc)
* @see java.util.Iterator#hasNext()
*/
@Override
public boolean hasNext() {
return ((_index >= 0) && (_index < (_facets.length - 1)));
}
/*
* (non-Javadoc)
* @see java.util.Iterator#remove()
*/
@Override
public void remove() {
throw new UnsupportedOperationException("remove() method not supported for Facet Iterators");
}
/*
* (non-Javadoc)
* @see com.browseengine.bobo.api.FacetIterator#next(int)
*/
@Override
public Comparable> next(int minHits) {
while (++_index < _facets.length) {
if (_facets[_index].getFacetValueHitCount() >= minHits) {
facet = _facets[_index].getValue();
count = _facets[_index].getFacetValueHitCount();
return facet;
}
}
facet = null;
count = 0;
return facet;
}
/**
* The string from here should be already formatted. No need to reformat.
* @see com.browseengine.bobo.api.FacetIterator#format(java.lang.Object)
*/
@Override
public String format(Object val) {
return (String) val;
}
}