Search in sources :

Example 6 with ParsingException

use of com.google.refine.expr.ParsingException in project OpenRefine by OpenRefine.

the class ListFacet method initializeFromJSON.

@Override
public void initializeFromJSON(Project project, JSONObject o) throws JSONException {
    _name = o.getString("name");
    _expression = o.getString("expression");
    _columnName = o.getString("columnName");
    _invert = o.has("invert") && o.getBoolean("invert");
    if (_columnName.length() > 0) {
        Column column = project.columnModel.getColumnByName(_columnName);
        if (column != null) {
            _cellIndex = column.getCellIndex();
        } else {
            _errorMessage = "No column named " + _columnName;
        }
    } else {
        _cellIndex = -1;
    }
    try {
        _eval = MetaParser.parse(_expression);
    } catch (ParsingException e) {
        _errorMessage = e.getMessage();
    }
    _selection.clear();
    JSONArray a = o.getJSONArray("selection");
    int length = a.length();
    for (int i = 0; i < length; i++) {
        JSONObject oc = a.getJSONObject(i);
        JSONObject ocv = oc.getJSONObject("v");
        DecoratedValue decoratedValue = new DecoratedValue(ocv.get("v"), ocv.getString("l"));
        NominalFacetChoice nominalFacetChoice = new NominalFacetChoice(decoratedValue);
        nominalFacetChoice.selected = true;
        _selection.add(nominalFacetChoice);
    }
    _omitBlank = JSONUtilities.getBoolean(o, "omitBlank", false);
    _omitError = JSONUtilities.getBoolean(o, "omitError", false);
    _selectBlank = JSONUtilities.getBoolean(o, "selectBlank", false);
    _selectError = JSONUtilities.getBoolean(o, "selectError", false);
}
Also used : JSONObject(org.json.JSONObject) Column(com.google.refine.model.Column) ParsingException(com.google.refine.expr.ParsingException) JSONArray(org.json.JSONArray) DecoratedValue(com.google.refine.browsing.DecoratedValue)

Example 7 with ParsingException

use of com.google.refine.expr.ParsingException in project OpenRefine by OpenRefine.

the class RangeFacet method initializeFromJSON.

@Override
public void initializeFromJSON(Project project, JSONObject o) throws JSONException {
    _name = o.getString("name");
    _expression = o.getString("expression");
    _columnName = o.getString("columnName");
    if (_columnName.length() > 0) {
        Column column = project.columnModel.getColumnByName(_columnName);
        if (column != null) {
            _cellIndex = column.getCellIndex();
        } else {
            _errorMessage = "No column named " + _columnName;
        }
    } else {
        _cellIndex = -1;
    }
    try {
        _eval = MetaParser.parse(_expression);
    } catch (ParsingException e) {
        _errorMessage = e.getMessage();
    }
    if (o.has(FROM) || o.has(TO)) {
        _from = o.has(FROM) ? o.getDouble(FROM) : _min;
        _to = o.has(TO) ? o.getDouble(TO) : _max;
        _selected = true;
    }
    _selectNumeric = JSONUtilities.getBoolean(o, "selectNumeric", true);
    _selectNonNumeric = JSONUtilities.getBoolean(o, "selectNonNumeric", true);
    _selectBlank = JSONUtilities.getBoolean(o, "selectBlank", true);
    _selectError = JSONUtilities.getBoolean(o, "selectError", true);
    if (!_selectNumeric || !_selectNonNumeric || !_selectBlank || !_selectError) {
        _selected = true;
    }
}
Also used : Column(com.google.refine.model.Column) ParsingException(com.google.refine.expr.ParsingException)

Example 8 with ParsingException

use of com.google.refine.expr.ParsingException in project OpenRefine by OpenRefine.

the class TimeRangeFacet method initializeFromJSON.

@Override
public void initializeFromJSON(Project project, JSONObject o) throws JSONException {
    _name = o.getString("name");
    _expression = o.getString("expression");
    _columnName = o.getString("columnName");
    if (_columnName.length() > 0) {
        Column column = project.columnModel.getColumnByName(_columnName);
        if (column != null) {
            _cellIndex = column.getCellIndex();
        } else {
            _errorMessage = "No column named " + _columnName;
        }
    } else {
        _cellIndex = -1;
    }
    try {
        _eval = MetaParser.parse(_expression);
    } catch (ParsingException e) {
        _errorMessage = e.getMessage();
    }
    if (o.has(FROM) || o.has(TO)) {
        _from = o.has(FROM) ? o.getDouble(FROM) : _min;
        _to = o.has(TO) ? o.getDouble(TO) : _max;
        _selected = true;
    }
    _selectTime = JSONUtilities.getBoolean(o, "selectTime", true);
    _selectNonTime = JSONUtilities.getBoolean(o, "selectNonTime", true);
    _selectBlank = JSONUtilities.getBoolean(o, "selectBlank", true);
    _selectError = JSONUtilities.getBoolean(o, "selectError", true);
    if (!_selectTime || !_selectNonTime || !_selectBlank || !_selectError) {
        _selected = true;
    }
}
Also used : Column(com.google.refine.model.Column) ParsingException(com.google.refine.expr.ParsingException)

Example 9 with ParsingException

use of com.google.refine.expr.ParsingException in project OpenRefine by OpenRefine.

the class GetScatterplotCommand method draw.

public void draw(OutputStream output, Project project, Engine engine, JSONObject o) throws IOException, JSONException {
    double min_x = 0;
    double min_y = 0;
    double max_x = 0;
    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;
    int dim_x = (o.has(ScatterplotFacet.DIM_X)) ? ScatterplotFacet.getAxisDim(o.getString(ScatterplotFacet.DIM_X)) : ScatterplotFacet.LIN;
    int dim_y = (o.has(ScatterplotFacet.DIM_Y)) ? ScatterplotFacet.getAxisDim(o.getString(ScatterplotFacet.DIM_Y)) : ScatterplotFacet.LIN;
    int rotation = (o.has(ScatterplotFacet.ROTATION)) ? ScatterplotFacet.getRotation(o.getString(ScatterplotFacet.ROTATION)) : ScatterplotFacet.NO_ROTATION;
    String color_str = (o.has(ScatterplotFacet.COLOR)) ? o.getString(ScatterplotFacet.COLOR) : "000000";
    Color color = new Color(Integer.parseInt(color_str, 16));
    String base_color_str = (o.has(ScatterplotFacet.BASE_COLOR)) ? o.getString(ScatterplotFacet.BASE_COLOR) : null;
    Color base_color = base_color_str != null ? new Color(Integer.parseInt(base_color_str, 16)) : null;
    String columnName_x = o.getString(ScatterplotFacet.X_COLUMN_NAME);
    String expression_x = (o.has(ScatterplotFacet.X_EXPRESSION)) ? o.getString(ScatterplotFacet.X_EXPRESSION) : "value";
    if (columnName_x.length() > 0) {
        Column x_column = project.columnModel.getColumnByName(columnName_x);
        if (x_column != null) {
            columnIndex_x = x_column.getCellIndex();
        }
    } else {
        columnIndex_x = -1;
    }
    try {
        eval_x = MetaParser.parse(expression_x);
    } catch (ParsingException e) {
        logger.warn("error parsing expression", e);
    }
    String columnName_y = o.getString(ScatterplotFacet.Y_COLUMN_NAME);
    String expression_y = (o.has(ScatterplotFacet.Y_EXPRESSION)) ? o.getString(ScatterplotFacet.Y_EXPRESSION) : "value";
    if (columnName_y.length() > 0) {
        Column y_column = project.columnModel.getColumnByName(columnName_y);
        if (y_column != null) {
            columnIndex_y = y_column.getCellIndex();
        }
    } else {
        columnIndex_y = -1;
    }
    try {
        eval_y = MetaParser.parse(expression_y);
    } catch (ParsingException e) {
        logger.warn("error parsing expression", e);
    }
    NumericBinIndex index_x = null;
    NumericBinIndex index_y = null;
    String col_x_name = o.getString(ScatterplotFacet.X_COLUMN_NAME);
    Column column_x = project.columnModel.getColumnByName(col_x_name);
    if (column_x != null) {
        columnIndex_x = column_x.getCellIndex();
        index_x = ScatterplotFacet.getBinIndex(project, column_x, eval_x, expression_x);
        min_x = index_x.getMin();
        max_x = index_x.getMax();
    }
    String col_y_name = o.getString(ScatterplotFacet.Y_COLUMN_NAME);
    Column column_y = project.columnModel.getColumnByName(col_y_name);
    if (column_y != null) {
        columnIndex_y = column_y.getCellIndex();
        index_y = ScatterplotFacet.getBinIndex(project, column_y, eval_y, expression_y);
        min_y = index_y.getMin();
        max_y = index_y.getMax();
    }
    if (index_x != null && index_y != null && index_x.isNumeric() && index_y.isNumeric()) {
        ScatterplotDrawingRowVisitor drawer = new ScatterplotDrawingRowVisitor(columnIndex_x, columnIndex_y, min_x, max_x, min_y, max_y, size, dim_x, dim_y, rotation, dot, color);
        if (base_color != null) {
            drawer.setColor(base_color);
            FilteredRows filteredRows = engine.getAllRows();
            filteredRows.accept(project, drawer);
            drawer.setColor(color);
        }
        {
            FilteredRows filteredRows = engine.getAllFilteredRows();
            filteredRows.accept(project, drawer);
        }
        ImageIO.write(drawer.getImage(), "png", output);
    } else {
        ImageIO.write(new BufferedImage(1, 1, BufferedImage.TYPE_4BYTE_ABGR), "png", output);
    }
}
Also used : Evaluable(com.google.refine.expr.Evaluable) Column(com.google.refine.model.Column) NumericBinIndex(com.google.refine.browsing.util.NumericBinIndex) Color(java.awt.Color) ParsingException(com.google.refine.expr.ParsingException) ScatterplotDrawingRowVisitor(com.google.refine.browsing.facets.ScatterplotDrawingRowVisitor) FilteredRows(com.google.refine.browsing.FilteredRows) BufferedImage(java.awt.image.BufferedImage)

Example 10 with ParsingException

use of com.google.refine.expr.ParsingException in project OpenRefine by OpenRefine.

the class ScatterplotFacet method initializeFromJSON.

@Override
public void initializeFromJSON(Project project, JSONObject o) throws JSONException {
    name = o.getString(NAME);
    l = size = (o.has(SIZE)) ? o.getInt(SIZE) : 100;
    dot = (o.has(DOT)) ? o.getInt(DOT) : 0.5d;
    dim_x = (o.has(DIM_X)) ? getAxisDim(o.getString(DIM_X)) : LIN;
    if (o.has(FROM_X) && o.has(TO_X)) {
        from_x = o.getDouble(FROM_X);
        to_x = o.getDouble(TO_X);
        selected = true;
    } else {
        from_x = 0;
        to_x = 1;
    }
    dim_y = (o.has(DIM_Y)) ? getAxisDim(o.getString(DIM_Y)) : LIN;
    if (o.has(FROM_Y) && o.has(TO_Y)) {
        from_y = o.getDouble(FROM_Y);
        to_y = o.getDouble(TO_Y);
        selected = true;
    } else {
        from_y = 0;
        to_y = 1;
    }
    rotation = (o.has(ROTATION)) ? getRotation(o.getString(ROTATION)) : NO_ROTATION;
    t = createRotationMatrix(rotation, l);
    color_str = (o.has(COLOR)) ? o.getString(COLOR) : "000000";
    color = new Color(Integer.parseInt(color_str, 16));
    columnName_x = o.getString(X_COLUMN_NAME);
    expression_x = o.getString(X_EXPRESSION);
    if (columnName_x.length() > 0) {
        Column x_column = project.columnModel.getColumnByName(columnName_x);
        if (x_column != null) {
            columnIndex_x = x_column.getCellIndex();
            NumericBinIndex index_x = ScatterplotFacet.getBinIndex(project, x_column, eval_x, expression_x);
            min_x = index_x.getMin();
            max_x = index_x.getMax();
        } else {
            errorMessage_x = "No column named " + columnName_x;
        }
    } else {
        columnIndex_x = -1;
    }
    try {
        eval_x = MetaParser.parse(expression_x);
    } catch (ParsingException e) {
        errorMessage_x = e.getMessage();
    }
    columnName_y = o.getString(Y_COLUMN_NAME);
    expression_y = o.getString(Y_EXPRESSION);
    if (columnName_y.length() > 0) {
        Column y_column = project.columnModel.getColumnByName(columnName_y);
        if (y_column != null) {
            columnIndex_y = y_column.getCellIndex();
            NumericBinIndex index_y = ScatterplotFacet.getBinIndex(project, y_column, eval_y, expression_y);
            min_y = index_y.getMin();
            max_y = index_y.getMax();
        } else {
            errorMessage_y = "No column named " + columnName_y;
        }
    } else {
        columnIndex_y = -1;
    }
    try {
        eval_y = MetaParser.parse(expression_y);
    } catch (ParsingException e) {
        errorMessage_y = e.getMessage();
    }
}
Also used : Column(com.google.refine.model.Column) NumericBinIndex(com.google.refine.browsing.util.NumericBinIndex) Color(java.awt.Color) ParsingException(com.google.refine.expr.ParsingException)

Aggregations

ParsingException (com.google.refine.expr.ParsingException)12 Evaluable (com.google.refine.expr.Evaluable)6 Column (com.google.refine.model.Column)6 NumericBinIndex (com.google.refine.browsing.util.NumericBinIndex)4 EvalError (com.google.refine.expr.EvalError)3 JSONObject (org.json.JSONObject)3 FilteredRows (com.google.refine.browsing.FilteredRows)2 ExpressionBasedRowEvaluable (com.google.refine.browsing.util.ExpressionBasedRowEvaluable)2 NumericBinRowIndex (com.google.refine.browsing.util.NumericBinRowIndex)2 Project (com.google.refine.model.Project)2 Color (java.awt.Color)2 IOException (java.io.IOException)2 JSONArray (org.json.JSONArray)2 JSONException (org.json.JSONException)2 JSONWriter (org.json.JSONWriter)2 DecoratedValue (com.google.refine.browsing.DecoratedValue)1 Engine (com.google.refine.browsing.Engine)1 FilteredRecords (com.google.refine.browsing.FilteredRecords)1 RecordVisitor (com.google.refine.browsing.RecordVisitor)1 RowVisitor (com.google.refine.browsing.RowVisitor)1