// 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/QueryMode.java
// public enum QueryMode
// {
//     SELECT,
//     FROM,
//     WHERE,
//     SORT
// }


import joquery.core.QueryException;
import joquery.core.QueryMode;
import java.util.function.Function;
package joquery.core.collection.expr;



/**
 * User: Adipa
 * Date: 10/6/12
 * Time: 9:31 PM
 */
public class FunctionExpr<T> implements IExpr<T>
{
    private Function<T,?> function;

    public FunctionExpr(Function<T,?> function)
    {
        this.function = function;
    }

    @Override
// 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/QueryMode.java
// public enum QueryMode
// {
//     SELECT,
//     FROM,
//     WHERE,
//     SORT
// }


// Path: src/joquery/core/collection/expr/FunctionExpr.java
import joquery.core.QueryException;
import joquery.core.QueryMode;
import java.util.function.Function;

package joquery.core.collection.expr;



/**
 * User: Adipa
 * Date: 10/6/12
 * Time: 9:31 PM
 */
public class FunctionExpr<T> implements IExpr<T>
{
    private Function<T,?> function;

    public FunctionExpr(Function<T,?> function)
    {
        this.function = function;
    }

    @Override
    public boolean supportsMode(QueryMode mode)