Jackson deserialization for ExtendDataOperation
This commit is contained in:
parent
393eec1586
commit
eb66619840
@ -41,7 +41,6 @@ import com.google.refine.model.AbstractOperation;
|
|||||||
import com.google.refine.model.Project;
|
import com.google.refine.model.Project;
|
||||||
import com.google.refine.model.recon.ReconciledDataExtensionJob.DataExtensionConfig;
|
import com.google.refine.model.recon.ReconciledDataExtensionJob.DataExtensionConfig;
|
||||||
import com.google.refine.operations.recon.ExtendDataOperation;
|
import com.google.refine.operations.recon.ExtendDataOperation;
|
||||||
import com.google.refine.util.ParsingUtilities;
|
|
||||||
|
|
||||||
public class ExtendDataCommand extends EngineDependentCommand {
|
public class ExtendDataCommand extends EngineDependentCommand {
|
||||||
@Override
|
@Override
|
||||||
@ -55,7 +54,7 @@ public class ExtendDataCommand extends EngineDependentCommand {
|
|||||||
String schemaSpace = request.getParameter("schemaSpace");
|
String schemaSpace = request.getParameter("schemaSpace");
|
||||||
|
|
||||||
String jsonString = request.getParameter("extension");
|
String jsonString = request.getParameter("extension");
|
||||||
DataExtensionConfig extension = DataExtensionConfig.reconstruct(ParsingUtilities.evaluateJsonStringToObject(jsonString));
|
DataExtensionConfig extension = DataExtensionConfig.reconstruct(jsonString);
|
||||||
|
|
||||||
return new ExtendDataOperation(
|
return new ExtendDataOperation(
|
||||||
engineConfig,
|
engineConfig,
|
||||||
|
@ -93,7 +93,7 @@ public class PreviewExtendDataCommand extends Command {
|
|||||||
}
|
}
|
||||||
|
|
||||||
String jsonString = request.getParameter("extension");
|
String jsonString = request.getParameter("extension");
|
||||||
DataExtensionConfig config = DataExtensionConfig.reconstruct(ParsingUtilities.evaluateJsonStringToObject(jsonString));
|
DataExtensionConfig config = DataExtensionConfig.reconstruct(jsonString);
|
||||||
|
|
||||||
JSONArray rowIndices = ParsingUtilities.evaluateJsonStringToArray(rowIndicesString);
|
JSONArray rowIndices = ParsingUtilities.evaluateJsonStringToArray(rowIndicesString);
|
||||||
int length = rowIndices.length();
|
int length = rowIndices.length();
|
||||||
|
@ -107,10 +107,10 @@ public class ReconciledDataExtensionJob {
|
|||||||
this.properties = properties;
|
this.properties = properties;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static DataExtensionConfig reconstruct(JSONObject obj) throws JSONException {
|
public static DataExtensionConfig reconstruct(String json) throws JSONException {
|
||||||
ObjectMapper mapper = new ObjectMapper();
|
ObjectMapper mapper = new ObjectMapper();
|
||||||
try {
|
try {
|
||||||
return mapper.readValue(obj.toString(), DataExtensionConfig.class);
|
return mapper.readValue(json, DataExtensionConfig.class);
|
||||||
} catch(IOException e) {
|
} catch(IOException e) {
|
||||||
throw new JSONException(e.toString());
|
throw new JSONException(e.toString());
|
||||||
}
|
}
|
||||||
|
@ -44,6 +44,7 @@ import java.util.Set;
|
|||||||
import org.json.JSONException;
|
import org.json.JSONException;
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
|
||||||
import com.google.refine.browsing.Engine;
|
import com.google.refine.browsing.Engine;
|
||||||
@ -67,6 +68,7 @@ import com.google.refine.model.recon.ReconciledDataExtensionJob.DataExtensionCon
|
|||||||
import com.google.refine.operations.EngineDependentOperation;
|
import com.google.refine.operations.EngineDependentOperation;
|
||||||
import com.google.refine.process.LongRunningProcess;
|
import com.google.refine.process.LongRunningProcess;
|
||||||
import com.google.refine.process.Process;
|
import com.google.refine.process.Process;
|
||||||
|
import com.google.refine.util.ParsingUtilities;
|
||||||
|
|
||||||
public class ExtendDataOperation extends EngineDependentOperation {
|
public class ExtendDataOperation extends EngineDependentOperation {
|
||||||
@JsonProperty("baseColumnName")
|
@JsonProperty("baseColumnName")
|
||||||
@ -84,28 +86,24 @@ public class ExtendDataOperation extends EngineDependentOperation {
|
|||||||
|
|
||||||
|
|
||||||
static public AbstractOperation reconstruct(Project project, JSONObject obj) throws Exception {
|
static public AbstractOperation reconstruct(Project project, JSONObject obj) throws Exception {
|
||||||
JSONObject engineConfig = obj.getJSONObject("engineConfig");
|
return ParsingUtilities.mapper.readValue(obj.toString(), ExtendDataOperation.class);
|
||||||
|
|
||||||
DataExtensionConfig dataExtensionConfig = DataExtensionConfig.reconstruct(obj.getJSONObject("extension"));
|
|
||||||
|
|
||||||
return new ExtendDataOperation(
|
|
||||||
EngineConfig.reconstruct(engineConfig),
|
|
||||||
obj.getString("baseColumnName"),
|
|
||||||
obj.getString("endpoint"),
|
|
||||||
obj.getString("identifierSpace"),
|
|
||||||
obj.getString("schemaSpace"),
|
|
||||||
dataExtensionConfig,
|
|
||||||
obj.getInt("columnInsertIndex")
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@JsonCreator
|
||||||
public ExtendDataOperation(
|
public ExtendDataOperation(
|
||||||
|
@JsonProperty("engineConfig")
|
||||||
EngineConfig engineConfig,
|
EngineConfig engineConfig,
|
||||||
|
@JsonProperty("baseColumnName")
|
||||||
String baseColumnName,
|
String baseColumnName,
|
||||||
|
@JsonProperty("endpoint")
|
||||||
String endpoint,
|
String endpoint,
|
||||||
|
@JsonProperty("identifierSpace")
|
||||||
String identifierSpace,
|
String identifierSpace,
|
||||||
|
@JsonProperty("schemaSpace")
|
||||||
String schemaSpace,
|
String schemaSpace,
|
||||||
|
@JsonProperty("extension")
|
||||||
DataExtensionConfig extension,
|
DataExtensionConfig extension,
|
||||||
|
@JsonProperty("columnInsertIndex")
|
||||||
int columnInsertIndex
|
int columnInsertIndex
|
||||||
) {
|
) {
|
||||||
super(engineConfig);
|
super(engineConfig);
|
||||||
|
@ -177,12 +177,12 @@ public class ExtendDataOperationTests extends RefineTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void serializeDataExtensionConfig() {
|
public void serializeDataExtensionConfig() {
|
||||||
TestUtils.isSerializedTo(DataExtensionConfig.reconstruct(new JSONObject(dataExtensionConfigJson)), dataExtensionConfigJson);
|
TestUtils.isSerializedTo(DataExtensionConfig.reconstruct(dataExtensionConfigJson), dataExtensionConfigJson);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFormulateQuery() throws IOException {
|
public void testFormulateQuery() throws IOException {
|
||||||
DataExtensionConfig config = DataExtensionConfig.reconstruct(new JSONObject(dataExtensionConfigJson));
|
DataExtensionConfig config = DataExtensionConfig.reconstruct(dataExtensionConfigJson);
|
||||||
Set<String> ids = Collections.singleton("Q2");
|
Set<String> ids = Collections.singleton("Q2");
|
||||||
String json = "{\"ids\":[\"Q2\"],\"properties\":[{\"id\":\"P571\"},{\"id\":\"P159\"},{\"id\":\"P625\"}]}";
|
String json = "{\"ids\":[\"Q2\"],\"properties\":[{\"id\":\"P571\"},{\"id\":\"P159\"},{\"id\":\"P625\"}]}";
|
||||||
ReconciledDataExtensionJobStub stub = new ReconciledDataExtensionJobStub(config, "http://endpoint");
|
ReconciledDataExtensionJobStub stub = new ReconciledDataExtensionJobStub(config, "http://endpoint");
|
||||||
@ -214,7 +214,7 @@ public class ExtendDataOperationTests extends RefineTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFetchStrings() throws Exception {
|
public void testFetchStrings() throws Exception {
|
||||||
DataExtensionConfig extension = DataExtensionConfig.reconstruct(new JSONObject("{\"properties\":[{\"id\":\"P297\",\"name\":\"ISO 3166-1 alpha-2 code\"}]}"));
|
DataExtensionConfig extension = DataExtensionConfig.reconstruct("{\"properties\":[{\"id\":\"P297\",\"name\":\"ISO 3166-1 alpha-2 code\"}]}");
|
||||||
|
|
||||||
EngineDependentOperation op = new ExtendDataOperation(engine_config,
|
EngineDependentOperation op = new ExtendDataOperation(engine_config,
|
||||||
"country",
|
"country",
|
||||||
@ -252,7 +252,7 @@ public class ExtendDataOperationTests extends RefineTest {
|
|||||||
@Test
|
@Test
|
||||||
public void testFetchCounts() throws Exception {
|
public void testFetchCounts() throws Exception {
|
||||||
DataExtensionConfig extension = DataExtensionConfig.reconstruct(
|
DataExtensionConfig extension = DataExtensionConfig.reconstruct(
|
||||||
new JSONObject("{\"properties\":[{\"id\":\"P38\",\"name\":\"currency\",\"settings\":{\"count\":\"on\",\"rank\":\"any\"}}]}"));
|
"{\"properties\":[{\"id\":\"P38\",\"name\":\"currency\",\"settings\":{\"count\":\"on\",\"rank\":\"any\"}}]}");
|
||||||
|
|
||||||
EngineDependentOperation op = new ExtendDataOperation(engine_config,
|
EngineDependentOperation op = new ExtendDataOperation(engine_config,
|
||||||
"country",
|
"country",
|
||||||
@ -287,7 +287,7 @@ public class ExtendDataOperationTests extends RefineTest {
|
|||||||
@Test
|
@Test
|
||||||
public void testFetchCurrent() throws Exception {
|
public void testFetchCurrent() throws Exception {
|
||||||
DataExtensionConfig extension = DataExtensionConfig.reconstruct(
|
DataExtensionConfig extension = DataExtensionConfig.reconstruct(
|
||||||
new JSONObject("{\"properties\":[{\"id\":\"P38\",\"name\":\"currency\",\"settings\":{\"rank\":\"best\"}}]}"));
|
"{\"properties\":[{\"id\":\"P38\",\"name\":\"currency\",\"settings\":{\"rank\":\"best\"}}]}");
|
||||||
|
|
||||||
EngineDependentOperation op = new ExtendDataOperation(engine_config,
|
EngineDependentOperation op = new ExtendDataOperation(engine_config,
|
||||||
"country",
|
"country",
|
||||||
@ -328,7 +328,7 @@ public class ExtendDataOperationTests extends RefineTest {
|
|||||||
@Test
|
@Test
|
||||||
public void testFetchRecord() throws Exception {
|
public void testFetchRecord() throws Exception {
|
||||||
DataExtensionConfig extension = DataExtensionConfig.reconstruct(
|
DataExtensionConfig extension = DataExtensionConfig.reconstruct(
|
||||||
new JSONObject("{\"properties\":[{\"id\":\"P38\",\"name\":\"currency\",\"settings\":{\"rank\":\"any\"}}]}"));
|
"{\"properties\":[{\"id\":\"P38\",\"name\":\"currency\",\"settings\":{\"rank\":\"any\"}}]}");
|
||||||
|
|
||||||
EngineDependentOperation op = new ExtendDataOperation(engine_config,
|
EngineDependentOperation op = new ExtendDataOperation(engine_config,
|
||||||
"country",
|
"country",
|
||||||
|
Loading…
Reference in New Issue
Block a user