/** * This software is licensed to you under the Apache License, Version 2.0 (the * "Apache License"). * * LinkedIn's contributions are made under the Apache License. If you contribute * to the Software, the contributions will be deemed to have been made under the * Apache License, unless you expressly indicate otherwise. Please do not make any * contributions that would be inconsistent with the Apache License. * * You may obtain a copy of the Apache License at http://www.apache.org/licenses/LICENSE-2.0 * Unless required by applicable law or agreed to in writing, this software * distributed under the Apache License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the Apache * License for the specific language governing permissions and limitations for the * software governed under the Apache License. * * © 2012 LinkedIn Corp. All Rights Reserved. */ package com.senseidb.search.facet.attribute; import com.browseengine.bobo.facets.data.MultiValueFacetDataCache; public class Range { int start; int end; public Range(int start, int end) { this.start = start; this.end = end; } public boolean inRange(int val) { return val >= start && val < end; } public static Range[] getRanges(MultiValueFacetDataCache cache, String[] vals, char separator) { Range[] ret = new Range[vals.length]; for (int i = 0; i < vals.length; i++) { ret[i] = getRange(cache, vals[i], separator); } return ret; } public static Range getRange(MultiValueFacetDataCache cache, String val, char separator) { int start = cache.valArray.indexOf(val + separator); if (start < 0) { start = (-1)*start - 1; } int end = cache.valArray.indexOf(val + (char) (separator + 1)); if (end < 0) { end = (-1)*end - 1; } return new Range(start, end); } @Override public String toString() { return "[start=" + start + ", end=" + end + "]"; } }