public static HashProvider best(HashParameters params,EnumSet<HashSupport> required){
  HashProvider result=null;
  EnumSet<HashSupport> resultSupport=null;
  for (  final HashProvider provider : ALL_PROVIDERS) {
    final EnumSet<HashSupport> support=provider.querySupport(params);
    if (support.containsAll(required) && (result == null || HashSupport.compare(support,resultSupport) < 0)) {
      result=provider;
      resultSupport=support;
    }
  }
  if (result == null)   throw new UnsupportedOperationException();
  return result;
}

public static HashProvider best ( HashParameters params , EnumSet < HashSupport > required ) { HashProvider result = null ; EnumSet < HashSupport > resultSupport = null ; for ( final HashProvider provider : ALL_PROVIDERS ) { final EnumSet < HashSupport > support = provider . querySupport ( params ) ; if ( support . containsAll ( required ) && ( result == null || HashSupport . compare ( support , resultSupport ) < 0 ) ) { result = provider ; resultSupport = support ; } } if ( result == null ) throw new UnsupportedOperationException ( ) ; return result ; }
returns the best hash provider supporting at least the given flags for a hash function with the given parameters .
