Package com.browseengine.bobo.facets.range

Source Code of com.browseengine.bobo.facets.range.ValueConverterBitSetBuilder

package com.browseengine.bobo.facets.range;

import org.apache.lucene.util.OpenBitSet;

import com.browseengine.bobo.facets.data.FacetDataCache;
import com.browseengine.bobo.facets.filter.FacetValueConverter;

public class ValueConverterBitSetBuilder implements BitSetBuilder {
  private final FacetValueConverter facetValueConverter;
  private final String[] vals;
  private final boolean takeCompliment;

  public ValueConverterBitSetBuilder(FacetValueConverter facetValueConverter, String[] vals,
      boolean takeCompliment) {
    this.facetValueConverter = facetValueConverter;
    this.vals = vals;
    this.takeCompliment = takeCompliment;
  }

  @Override
  public OpenBitSet bitSet(FacetDataCache<?> dataCache) {
    @SuppressWarnings("unchecked")
    int[] index = facetValueConverter.convert((FacetDataCache<String>) dataCache, vals);

    OpenBitSet bitset = new OpenBitSet(dataCache.valArray.size());
    for (int i : index) {
      bitset.fastSet(i);
    }
    if (takeCompliment) {
      // flip the bits
      for (int i = 0; i < index.length; ++i) {
        bitset.fastFlip(i);
      }
    }
    return bitset;
  }

}
TOP

Related Classes of com.browseengine.bobo.facets.range.ValueConverterBitSetBuilder

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.