Package com.google.refine.expr

Examples of com.google.refine.expr.Evaluable


//                "1=1", // TODO: Throws NullPointerException
                "a.value",
                };
        for (String test : tests) {
            try {
                Evaluable eval = MetaParser.parse("grel:" + test);
                Object result = eval.evaluate(bindings);
                Assert.assertTrue(result instanceof EvalError );
            } catch (ParsingException e) {
                Assert.fail("Unexpected parse failure: " + test);               
            }
        }
View Full Code Here


            parseEval(bindings, test);
        }
    }
    private void parseEval(Properties bindings, String[] test)
            throws ParsingException {
        Evaluable eval = MetaParser.parse("grel:" + test[0]);
        Object result = eval.evaluate(bindings);
        Assert.assertEquals(result.toString(), test[1],
                "Wrong result for expression: "+test[0]);
    }
View Full Code Here

    /**
     *  <expression> := <sub-expression>
     *                | <expression> [ "<" "<=" ">" ">=" "==" "!=" ] <sub-expression>
     */
    protected Evaluable parseExpression() throws ParsingException {
        Evaluable sub = parseSubExpression();

        while (_token != null &&
                _token.type == TokenType.Operator &&
                ">=<==!=".indexOf(_token.text) >= 0) {

            String op = _token.text;

            next(true);

            Evaluable sub2 = parseSubExpression();

            sub = new OperatorCallExpr(new Evaluable[] { sub, sub2 }, op);
        }

        return sub;
View Full Code Here

    /**
     *  <sub-expression> := <term>
     *                    | <sub-expression> [ "+" "-" ] <term>
     */
    protected Evaluable parseSubExpression() throws ParsingException {
        Evaluable sub = parseTerm();

        while (_token != null &&
                _token.type == TokenType.Operator &&
                "+-".indexOf(_token.text) >= 0) {

            String op = _token.text;

            next(true);

            Evaluable sub2 = parseTerm();

            sub = new OperatorCallExpr(new Evaluable[] { sub, sub2 }, op);
        }

        return sub;
View Full Code Here

    /**
     *  <term> := <factor>
     *          | <term> [ "*" "/" "%" ] <factor>
     */
    protected Evaluable parseTerm() throws ParsingException {
        Evaluable factor = parseFactor();

        while (_token != null &&
                _token.type == TokenType.Operator &&
                "*/%".indexOf(_token.text) >= 0) {

            String op = _token.text;

            next(true);

            Evaluable factor2 = parseFactor();

            factor = new OperatorCallExpr(new Evaluable[] { factor, factor2 }, op);
        }

        return factor;
View Full Code Here

    protected Evaluable parseFactor() throws ParsingException {
        if (_token == null) {
            throw makeException("Expecting something more at end of expression");
        }

        Evaluable eval = null;

        if (_token.type == TokenType.String) {
            eval = new LiteralExpr(_token.text);
            next(false);
        } else if (_token.type == TokenType.Regex) {
View Full Code Here

        if (_token != null &&
            (_token.type != TokenType.Delimiter || !_token.text.equals(closingDelimiter))) {

            while (_token != null) {
                Evaluable eval = parseExpression();

                l.add(eval);

                if (_token != null && _token.type == TokenType.Delimiter && _token.text.equals(",")) {
                    next(true); // swallow comma, loop back for more
View Full Code Here

           
            JSONWriter writer = new JSONWriter(response.getWriter());
            writer.object();
           
            try {
                Evaluable eval = MetaParser.parse(expression);
               
                writer.key("code"); writer.value("ok");
                writer.key("results"); writer.array();
               
                Properties bindings = ExpressionUtils.createBindings(project);
                for (int i = 0; i < length; i++) {
                    Object result = null;
                   
                    int rowIndex = rowIndices.getInt(i);
                    if (rowIndex >= 0 && rowIndex < project.rows.size()) {
                        Row row = project.rows.get(rowIndex);
                        Cell cell = row.getCell(cellIndex);
                           
                        try {
                            ExpressionUtils.bind(bindings, row, rowIndex, columnName, cell);
                            result = eval.evaluate(bindings);
                           
                            if (repeat) {
                                for (int r = 0; r < repeatCount && ExpressionUtils.isStorable(result); r++) {
                                    Cell newCell = new Cell((Serializable) result, (cell != null) ? cell.recon : null);
                                    ExpressionUtils.bind(bindings, row, rowIndex, columnName, newCell);
                                   
                                    Object newResult = eval.evaluate(bindings);
                                    if (ExpressionUtils.isError(newResult)) {
                                        break;
                                    } else if (ExpressionUtils.sameValue(result, newResult)) {
                                        break;
                                    } else {
View Full Code Here

            return null;
        } else if ("regex".equals(_mode) && _pattern == null) {
            return null;
        }
       
        Evaluable eval = new VariableExpr("value");
       
        if ("regex".equals(_mode)) {
            return new ExpressionStringComparisonRowFilter(eval, _columnName, _cellIndex) {
                @Override
                protected boolean checkValue(String s) {
View Full Code Here

        double max_y = 0;
       
        int columnIndex_x = 0;
        int columnIndex_y = 0;
       
        Evaluable eval_x = null;
        Evaluable eval_y = null;
       
        int size = (o.has(ScatterplotFacet.SIZE)) ? o.getInt(ScatterplotFacet.SIZE) : 100;

        double dot = (o.has(ScatterplotFacet.DOT)) ? o.getDouble(ScatterplotFacet.DOT) : 100;
       
View Full Code Here

TOP

Related Classes of com.google.refine.expr.Evaluable

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.