public static <T> CQueryCollection<T> from(final Iterable<T> iterable) {
   return iterable == null
       ? CQuery.<T>empty()
       : new CQueryCollection<T>() {
         @Override
         public Iterator<T> iterator() {
           return iterable.iterator();
         }
       };
 }
 public static <T> CQueryCollection<T> from(final Set<T> collection) {
   return collection == null
       ? CQuery.<T>empty()
       : new CollectionWrapper<T>(collection) {
         @Override
         public CQueryCollection<T> distinct() {
           return this;
         }
       };
 }
 public static CQueryCollection<Integer> from(final int... array) {
   return array == null ? CQuery.<Integer>empty() : new IntArrayWrapper(array);
 }
 public static CQueryCollection<Boolean> from(final boolean... array) {
   return array == null ? CQuery.<Boolean>empty() : new BooleanArrayWrapper(array);
 }
 public static <T> CQueryCollection<T> from(final T... array) {
   return array == null ? CQuery.<T>empty() : new ArrayWrapper<T>(array);
 }
 public static <T> CQueryCollection<T> from(final Collection<T> collection) {
   return collection == null ? CQuery.<T>empty() : new CollectionWrapper<T>(collection);
 }