// Path: src/joquery/core/collection/FilterImpl.java
// public class FilterImpl<T> extends QueryImpl<T,Filter<T>> implements Filter<T>
// {
//     @Override
//     public T first() throws QueryException
//     {
//         return super.first(list());
//     }
// 
//     @Override
//     public T last() throws QueryException
//     {
//         return super.last(list());
//     }
// 
//     @Override
//     public Collection<T> list() throws QueryException
//     {
//         return transformDefaultSelection();
//     }
// }
// 
// Path: src/joquery/core/collection/SelectionQueryImpl.java
// public class SelectionQueryImpl<T,U> extends ResultTransformedQueryImpl<T,U,SelectionQuery<T,U>> implements SelectionQuery<T,U>
// {
// }


import joquery.core.collection.FilterImpl;
import joquery.core.collection.SelectionQueryImpl;
import java.util.Collection;
package joquery;



/**
 * User: Adipa
 * Date: 10/14/12
 * Time: 10:52 AM
 */
public class CQ
{
    public static <T> Filter<T> filter()
    {
        return new FilterImpl<>();
    }

    public static <T> Filter<T> filter(Collection<T> ts)
    {
        return new FilterImpl<T>().from(ts);
    }

    public static <T,U> SelectionQuery<T,U> query()
    {
// Path: src/joquery/core/collection/FilterImpl.java
// public class FilterImpl<T> extends QueryImpl<T,Filter<T>> implements Filter<T>
// {
//     @Override
//     public T first() throws QueryException
//     {
//         return super.first(list());
//     }
// 
//     @Override
//     public T last() throws QueryException
//     {
//         return super.last(list());
//     }
// 
//     @Override
//     public Collection<T> list() throws QueryException
//     {
//         return transformDefaultSelection();
//     }
// }
// 
// Path: src/joquery/core/collection/SelectionQueryImpl.java
// public class SelectionQueryImpl<T,U> extends ResultTransformedQueryImpl<T,U,SelectionQuery<T,U>> implements SelectionQuery<T,U>
// {
// }


// Path: src/joquery/CQ.java
import joquery.core.collection.FilterImpl;
import joquery.core.collection.SelectionQueryImpl;
import java.util.Collection;

package joquery;



/**
 * User: Adipa
 * Date: 10/14/12
 * Time: 10:52 AM
 */
public class CQ
{
    public static <T> Filter<T> filter()
    {
        return new FilterImpl<>();
    }

    public static <T> Filter<T> filter(Collection<T> ts)
    {
        return new FilterImpl<T>().from(ts);
    }

    public static <T,U> SelectionQuery<T,U> query()
    {
        return new SelectionQueryImpl<>();