// this is really crappy, need to fix it private BrowseFacet[] foldChoices(BrowseFacet[] choices, int max) { if (max == 0 || choices.length <= max) return choices; ArrayList<RangeFacet> list = new ArrayList<RangeFacet>(); for (int i = 0; i < choices.length; i += 2) { RangeFacet rangeChoice = new RangeFacet(); if ((i + 1) < choices.length) { if (choices instanceof RangeFacet[]) { RangeFacet[] rChoices = (RangeFacet[]) choices; String val1 = rChoices[i]._lower; String val2 = rChoices[i + 1]._upper; rangeChoice.setValues(val1, val2); rangeChoice.setHitCount(choices[i].getHitCount() + choices[i + 1].getHitCount()); } else { rangeChoice.setValues(choices[i].getValue(), choices[i + 1].getValue()); rangeChoice.setHitCount(choices[i].getHitCount() + choices[i + 1].getHitCount()); } } else { if (choices instanceof RangeFacet[]) { RangeFacet[] rChoices = (RangeFacet[]) choices; rangeChoice.setValues(rChoices[i]._lower, rChoices[i]._upper); } else { rangeChoice.setValues(choices[i].getValue(), choices[i].getValue()); } rangeChoice.setHitCount(choices[i].getHitCount()); } list.add(rangeChoice); } RangeFacet[] result = new RangeFacet[list.size()]; result = (RangeFacet[]) list.toArray(result); return foldChoices(result, max); }
void convertFacets(BrowseFacet[] facets) { int i = 0; for (BrowseFacet facet : facets) { int hit = facet.getHitCount(); String val = facet.getValue(); RangeFacet rangeFacet = new RangeFacet(); rangeFacet.setValues(val, val); rangeFacet.setHitCount(hit); facets[i++] = rangeFacet; } }