// Path: src/joquery/Filter.java
// public interface Filter<T> extends Query<T, Filter<T>>
// {
//     T first() throws QueryException;
// 
//     T last() throws QueryException;
// 
//     Collection<T> list() throws QueryException;
// }
// 
// Path: src/joquery/core/QueryException.java
// public class QueryException extends Exception
// {
//     public QueryException(String message)
//     {
//         super(message);
//     }
// 
//     public QueryException(String message, Throwable cause)
//     {
//         super(message, cause);
//     }
// }


import joquery.Filter;
import joquery.core.QueryException;
import java.util.Collection;
package joquery.core.collection;



/**
 * User: Adipa
 * Date: 10/14/12
 * Time: 11:20 AM
 */
public class FilterImpl<T> extends QueryImpl<T,Filter<T>> implements Filter<T>
{
    @Override
// Path: src/joquery/Filter.java
// public interface Filter<T> extends Query<T, Filter<T>>
// {
//     T first() throws QueryException;
// 
//     T last() throws QueryException;
// 
//     Collection<T> list() throws QueryException;
// }
// 
// Path: src/joquery/core/QueryException.java
// public class QueryException extends Exception
// {
//     public QueryException(String message)
//     {
//         super(message);
//     }
// 
//     public QueryException(String message, Throwable cause)
//     {
//         super(message, cause);
//     }
// }


// Path: src/joquery/core/collection/FilterImpl.java
import joquery.Filter;
import joquery.core.QueryException;
import java.util.Collection;

package joquery.core.collection;



/**
 * User: Adipa
 * Date: 10/14/12
 * Time: 11:20 AM
 */
public class FilterImpl<T> extends QueryImpl<T,Filter<T>> implements Filter<T>
{
    @Override
    public T first() throws QueryException