diff --git a/main/src/com/google/refine/operations/cell/BlankDownOperation.java b/main/src/com/google/refine/operations/cell/BlankDownOperation.java index 767cd102d..4ed6c4fd6 100644 --- a/main/src/com/google/refine/operations/cell/BlankDownOperation.java +++ b/main/src/com/google/refine/operations/cell/BlankDownOperation.java @@ -51,16 +51,12 @@ import com.google.refine.model.Project; import com.google.refine.model.Row; import com.google.refine.model.changes.CellChange; import com.google.refine.operations.EngineDependentMassCellOperation; +import com.google.refine.util.ParsingUtilities; public class BlankDownOperation extends EngineDependentMassCellOperation { static public AbstractOperation reconstruct(Project project, JSONObject obj) throws Exception { - JSONObject engineConfig = obj.getJSONObject("engineConfig"); - - return new BlankDownOperation( - EngineConfig.reconstruct(engineConfig), - obj.getString("columnName") - ); + return ParsingUtilities.mapper.readValue(obj.toString(), BlankDownOperation.class); } @JsonCreator diff --git a/main/src/com/google/refine/operations/cell/FillDownOperation.java b/main/src/com/google/refine/operations/cell/FillDownOperation.java index b1b78b4d6..b672f9558 100644 --- a/main/src/com/google/refine/operations/cell/FillDownOperation.java +++ b/main/src/com/google/refine/operations/cell/FillDownOperation.java @@ -52,16 +52,12 @@ import com.google.refine.model.Project; import com.google.refine.model.Row; import com.google.refine.model.changes.CellChange; import com.google.refine.operations.EngineDependentMassCellOperation; +import com.google.refine.util.ParsingUtilities; public class FillDownOperation extends EngineDependentMassCellOperation { static public AbstractOperation reconstruct(Project project, JSONObject obj) throws Exception { - JSONObject engineConfig = obj.getJSONObject("engineConfig"); - - return new FillDownOperation( - EngineConfig.reconstruct(engineConfig), - obj.getString("columnName") - ); + return ParsingUtilities.mapper.readValue(obj.toString(), FillDownOperation.class); } @JsonCreator diff --git a/main/src/com/google/refine/operations/cell/MultiValuedCellJoinOperation.java b/main/src/com/google/refine/operations/cell/MultiValuedCellJoinOperation.java index 112214b14..9f24bfb3d 100644 --- a/main/src/com/google/refine/operations/cell/MultiValuedCellJoinOperation.java +++ b/main/src/com/google/refine/operations/cell/MultiValuedCellJoinOperation.java @@ -38,6 +38,7 @@ import java.util.List; import org.json.JSONObject; +import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.refine.expr.ExpressionUtils; @@ -48,6 +49,7 @@ import com.google.refine.model.Column; import com.google.refine.model.Project; import com.google.refine.model.Row; import com.google.refine.model.changes.MassRowChange; +import com.google.refine.util.ParsingUtilities; public class MultiValuedCellJoinOperation extends AbstractOperation { final protected String _columnName; @@ -55,16 +57,16 @@ public class MultiValuedCellJoinOperation extends AbstractOperation { final protected String _separator; static public AbstractOperation reconstruct(Project project, JSONObject obj) throws Exception { - return new MultiValuedCellJoinOperation( - obj.getString("columnName"), - obj.getString("keyColumnName"), - obj.getString("separator") - ); + return ParsingUtilities.mapper.readValue(obj.toString(), MultiValuedCellJoinOperation.class); } + @JsonCreator public MultiValuedCellJoinOperation( + @JsonProperty("columnName") String columnName, + @JsonProperty("keyColumnName") String keyColumnName, + @JsonProperty("separator") String separator ) { _columnName = columnName;