docs: @SuppressWarnings("unchecked")
      private void combineIntersectingRangeCriteria(List<QueryCriteria> intersectionCriteria) {
          Map<String, QueryCriteria> intersectingRangeCriteria = new HashMap<String, QueryCriteria>();
          Iterator<QueryCriteria> iter = intersectionCriteria.iterator();
          while( iter.hasNext() ) {
              QueryCriteria criteria = iter.next();
              if( QueryCriteriaType.RANGE.equals(criteria.getType()) ) {
                  QueryCriteria previousCriteria = intersectingRangeCriteria.put(criteria.getListId(), criteria);
                  if( previousCriteria != null ) {
                      Object [] prevCritValues, thisCritValues;
                      assert previousCriteria.hasValues() || previousCriteria.hasDateValues() :
                          "Previous criteria has neither values nor date values!";
                      assert !(previousCriteria.hasValues() && previousCriteria.hasDateValues()) :
                          "Previous criteria has BOTH values and date values!";
                      assert (previousCriteria.hasValues() && criteria.hasValues())
                      || (previousCriteria.hasDateValues() && criteria.hasDateValues()) :
                          "Previous and current criteria should have either both have values or both have date values!";
  
                      boolean dateValues = false;
                      if( previousCriteria.hasValues() ) {
                          prevCritValues = previousCriteria.getValues().toArray();
                          thisCritValues = criteria.getValues().toArray();
                      } else {
                          dateValues = true;
                          prevCritValues = previousCriteria.getDateValues().toArray();
                          thisCritValues = criteria.getDateValues().toArray();
                      }
  
                      List values = dateValues ? previousCriteria.getDateValues() : previousCriteria.getValues();
                      if( prevCritValues[0] == null && thisCritValues[1] == null ) {
                          values.set(0, thisCritValues[0]);
                          intersectingRangeCriteria.put(previousCriteria.getListId(), previousCriteria);
                          iter.remove();
                      } else if( prevCritValues[1] == null && thisCritValues[0] == null ) {
                          values.set(1, thisCritValues[1]);
                          intersectingRangeCriteria.put(previousCriteria.getListId(), previousCriteria);
                          iter.remove();
                      }
                  }
              }
          }
      }