code: public static <S extends Storable> Comparator<S>
          createComparator(OrderedProperty<S>... properties)
      {
          if (properties == null || properties.length == 0 || properties[0] == null) {
              throw new IllegalArgumentException();
          }
  
          Class<S> type = properties[0].getChainedProperty().getPrimeProperty().getEnclosingType();
  
          BeanComparator bc = BeanComparator.forClass(type);
  
          for (OrderedProperty<S> property : properties) {
              if (property == null) {
                  throw new IllegalArgumentException();
              }
              bc = orderBy(bc, property);
          }
  
          return bc;
      }
docs: Convenience method to create a comparator which orders storables by the
  given properties.
  
  @param properties list of properties to order by
  @throws IllegalArgumentException if no properties or if any property is null