Search in sources :

Example 11 with AbstractOperation

use of com.google.refine.model.AbstractOperation in project OpenRefine by OpenRefine.

the class HistoryEntry method load.

public static HistoryEntry load(Project project, String s) throws Exception {
    JSONObject obj = ParsingUtilities.evaluateJsonStringToObject(s);
    AbstractOperation operation = null;
    if (obj.has(OPERATION) && !obj.isNull(OPERATION)) {
        operation = OperationRegistry.reconstruct(project, obj.getJSONObject(OPERATION));
    }
    return new HistoryEntry(obj.getLong("id"), project.id, obj.getString("description"), operation, ParsingUtilities.stringToDate(obj.getString("time")));
}
Also used : AbstractOperation(com.google.refine.model.AbstractOperation) JSONObject(org.json.JSONObject)

Example 12 with AbstractOperation

use of com.google.refine.model.AbstractOperation in project OpenRefine by OpenRefine.

the class DenormalizeCommand method doPost.

@Override
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    try {
        Project project = getProject(request);
        AbstractOperation op = new DenormalizeOperation();
        Process process = op.createProcess(project, new Properties());
        performProcessAndRespond(request, response, project, process);
    } catch (Exception e) {
        respondException(response, e);
    }
}
Also used : Project(com.google.refine.model.Project) AbstractOperation(com.google.refine.model.AbstractOperation) DenormalizeOperation(com.google.refine.operations.row.DenormalizeOperation) Process(com.google.refine.process.Process) Properties(java.util.Properties) ServletException(javax.servlet.ServletException) IOException(java.io.IOException)

Example 13 with AbstractOperation

use of com.google.refine.model.AbstractOperation in project OpenRefine by OpenRefine.

the class OperationRegistry method reconstruct.

public static AbstractOperation reconstruct(Project project, JSONObject obj) {
    try {
        String op = obj.getString("op");
        if (!op.contains("/")) {
            // backward compatible
            op = "core/" + op;
        }
        List<Class<? extends AbstractOperation>> classes = s_opNameToClass.get(op);
        if (classes != null && classes.size() > 0) {
            Class<? extends AbstractOperation> klass = classes.get(classes.size() - 1);
            Method reconstruct = klass.getMethod("reconstruct", Project.class, JSONObject.class);
            if (reconstruct != null) {
                return (AbstractOperation) reconstruct.invoke(null, project, obj);
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return null;
}
Also used : AbstractOperation(com.google.refine.model.AbstractOperation) Method(java.lang.reflect.Method)

Example 14 with AbstractOperation

use of com.google.refine.model.AbstractOperation in project OpenRefine by OpenRefine.

the class TransposeTests method keyValueComumnize.

@Test
public void keyValueComumnize() throws Exception {
    String input = "ID;Cat;Val\n" + "1;a;1\n" + "1;b;3\n" + "2;b;4\n" + "2;c;5\n" + "3;a;2\n" + "3;b;5\n" + "3;d;3\n";
    prepareOptions(";", -1, 0, 0, 1, false, false);
    List<Exception> exceptions = new ArrayList<Exception>();
    importer.parseOneFile(project, metadata, job, "filesource", new StringReader(input), -1, options, exceptions);
    project.update();
    ProjectManager.singleton.registerProject(project, metadata);
    AbstractOperation op = new KeyValueColumnizeOperation("Cat", "Val", null);
    Process process = op.createProcess(project, new Properties());
    HistoryEntry historyEntry = process.performImmediate();
    // Expected output from the GUI. 
    // ID;a;b;c;d
    // 1;1;3;;
    // 2;;4;5;
    // 3;2;5;;3
    Assert.assertEquals(project.columnModel.columns.size(), 5);
    Assert.assertEquals(project.columnModel.columns.get(0).getName(), "ID");
    Assert.assertEquals(project.columnModel.columns.get(1).getName(), "a");
    Assert.assertEquals(project.columnModel.columns.get(2).getName(), "b");
    Assert.assertEquals(project.columnModel.columns.get(3).getName(), "c");
    Assert.assertEquals(project.columnModel.columns.get(4).getName(), "d");
    Assert.assertEquals(project.rows.size(), 3);
    // The actual row data structure has to leave the columns model untouched for redo/undo purpose.
    // So we have 2 empty columns(column 1,2) on the row level.
    // 1;1;3;;
    Assert.assertEquals(project.rows.get(0).cells.get(0).value, "1");
    Assert.assertEquals(project.rows.get(0).cells.get(3).value, "1");
    Assert.assertEquals(project.rows.get(0).cells.get(4).value, "3");
    // 2;;4;5;
    Assert.assertEquals(project.rows.get(1).cells.get(0).value, "2");
    Assert.assertEquals(project.rows.get(1).cells.get(4).value, "4");
    Assert.assertEquals(project.rows.get(1).cells.get(5).value, "5");
    // 3;2;5;;3
    Assert.assertEquals(project.rows.get(2).cells.get(0).value, "3");
    Assert.assertEquals(project.rows.get(2).cells.get(3).value, "2");
    Assert.assertEquals(project.rows.get(2).cells.get(4).value, "5");
    Assert.assertEquals(project.rows.get(2).cells.get(6).value, "3");
}
Also used : AbstractOperation(com.google.refine.model.AbstractOperation) ArrayList(java.util.ArrayList) StringReader(java.io.StringReader) HistoryEntry(com.google.refine.history.HistoryEntry) Process(com.google.refine.process.Process) Properties(java.util.Properties) Test(org.testng.annotations.Test) BeforeTest(org.testng.annotations.BeforeTest) RefineTest(com.google.refine.tests.RefineTest)

Aggregations

AbstractOperation (com.google.refine.model.AbstractOperation)14 Process (com.google.refine.process.Process)12 Properties (java.util.Properties)12 IOException (java.io.IOException)11 ServletException (javax.servlet.ServletException)11 Project (com.google.refine.model.Project)10 HistoryEntry (com.google.refine.history.HistoryEntry)1 KeyValueColumnizeOperation (com.google.refine.operations.cell.KeyValueColumnizeOperation)1 MultiValuedCellJoinOperation (com.google.refine.operations.cell.MultiValuedCellJoinOperation)1 MultiValuedCellSplitOperation (com.google.refine.operations.cell.MultiValuedCellSplitOperation)1 TransposeColumnsIntoRowsOperation (com.google.refine.operations.cell.TransposeColumnsIntoRowsOperation)1 TransposeRowsIntoColumnsOperation (com.google.refine.operations.cell.TransposeRowsIntoColumnsOperation)1 ColumnMoveOperation (com.google.refine.operations.column.ColumnMoveOperation)1 ColumnRemovalOperation (com.google.refine.operations.column.ColumnRemovalOperation)1 ColumnRenameOperation (com.google.refine.operations.column.ColumnRenameOperation)1 DenormalizeOperation (com.google.refine.operations.row.DenormalizeOperation)1 RefineTest (com.google.refine.tests.RefineTest)1 StringReader (java.io.StringReader)1 Method (java.lang.reflect.Method)1 ArrayList (java.util.ArrayList)1