code: public static <S extends Storable> CompositeScore<S> evaluate
          (StorableIndex<S> index,
           Filter<S> filter,
           OrderingList<S> ordering)
      {
          if (index == null) {
              throw new IllegalArgumentException("Index required");
          }
  
          return evaluate(index.getOrderedProperties(),
                          index.isUnique(),
                          index.isClustered(),
                          filter,
                          ordering);
      }
docs: Evaluates the given index for its filtering and ordering capabilities
  against the given filter and order-by properties.
  
  @param index index to evaluate
  @param filter optional filter which cannot contain any logical 'or' operations.
  @param ordering optional properties which define desired ordering
  @throws IllegalArgumentException if index is null or filter is not supported