/* * (non-Javadoc) * * @see atg.commerce.search.refinement.CommerceFacetSearchTools#isEligibleFacetValue(atg.repository.search.refinement.FacetTrail, * atg.repository.search.refinement.FacetValue) */ @Override protected boolean isEligibleFacetValue(FacetTrail pFacetTrail, FacetValue pFacetValue) { boolean result = true; if (PerformanceMonitor.isEnabled()) { PerformanceMonitor.startOperation("search", "TEST:CastFacetSearchTools.isEligibleFacetValue"); } if (isSkipValuesAlreadyInTrail()) { FacetValue[] trailValues = pFacetTrail.getFacetValues(); for (int i = 0; i < trailValues.length; i++) { if (trailValues[i] instanceof DisjunctionMultiValue) { for (Object o : ((DisjunctionMultiValue) trailValues[i]).getValues()) { Object value = pFacetValue instanceof FacetDisjunctionMultiValue ? ((FacetDisjunctionMultiValue) pFacetValue).getSingleValue() : pFacetValue instanceof RangeFacetDisjunctionMultiValue ? ((RangeFacetDisjunctionMultiValue) pFacetValue).getSingleValue() : pFacetValue.getValue(); if (value.equals(o)) { if (PerformanceMonitor.isEnabled()) { PerformanceMonitor.endOperation( "search", "TEST:CastFacetSearchTools.isEligibleFacetValue"); } return false; } } } else { result = super.isEligibleFacetValue(pFacetTrail, pFacetValue); break; } } } // end if if (PerformanceMonitor.isEnabled()) { PerformanceMonitor.endOperation("search", "TEST:CastFacetSearchTools.isEligibleFacetValue"); } return result; }