public static <T>SyncSupplier<T> from(Collection<T> collection,boolean fair){
  return new SyncSupplier(new ReentrantLock(fair),new ArrayList<>(collection),collection.size());
}

public static < T > SyncSupplier < T > from ( Collection < T > collection , boolean fair ) { return new SyncSupplier ( new ReentrantLock ( fair ) , new ArrayList < > ( collection ) , collection . size ( ) ) ; }
creates and returns a new instance .
