Jackson deserialization for ColumnAdditionByFetchingURLsOperation
This commit is contained in:
parent
0c87687e92
commit
a07f825aad
@ -45,10 +45,10 @@ import java.util.List;
|
|||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import org.json.JSONArray;
|
|
||||||
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.common.cache.CacheBuilder;
|
import com.google.common.cache.CacheBuilder;
|
||||||
@ -74,7 +74,6 @@ import com.google.refine.model.changes.CellAtRow;
|
|||||||
import com.google.refine.model.changes.ColumnAdditionChange;
|
import com.google.refine.model.changes.ColumnAdditionChange;
|
||||||
import com.google.refine.operations.EngineDependentOperation;
|
import com.google.refine.operations.EngineDependentOperation;
|
||||||
import com.google.refine.operations.OnError;
|
import com.google.refine.operations.OnError;
|
||||||
import com.google.refine.operations.cell.TextTransformOperation;
|
|
||||||
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;
|
import com.google.refine.util.ParsingUtilities;
|
||||||
@ -87,7 +86,12 @@ public class ColumnAdditionByFetchingURLsOperation extends EngineDependentOperat
|
|||||||
@JsonProperty("value")
|
@JsonProperty("value")
|
||||||
final public String value;
|
final public String value;
|
||||||
|
|
||||||
public HttpHeader(String name, String value) {
|
@JsonCreator
|
||||||
|
public HttpHeader(
|
||||||
|
@JsonProperty("name")
|
||||||
|
String name,
|
||||||
|
@JsonProperty("value")
|
||||||
|
String value) {
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.value = value;
|
this.value = value;
|
||||||
}
|
}
|
||||||
@ -104,41 +108,28 @@ public class ColumnAdditionByFetchingURLsOperation extends EngineDependentOperat
|
|||||||
final protected List<HttpHeader> _httpHeadersJson;
|
final protected List<HttpHeader> _httpHeadersJson;
|
||||||
|
|
||||||
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(), ColumnAdditionByFetchingURLsOperation.class);
|
||||||
|
|
||||||
List<HttpHeader> headers = null;
|
|
||||||
JSONArray headersJson = obj.optJSONArray("httpHeadersJson");
|
|
||||||
if (headersJson != null) {
|
|
||||||
headers = new ArrayList<>(headersJson.length());
|
|
||||||
for (int i = 0; i < headersJson.length(); i++) {
|
|
||||||
String headerLabel = headersJson.getJSONObject(i).getString("name");
|
|
||||||
String headerValue = headersJson.getJSONObject(i).getString("value");
|
|
||||||
headers.add(new HttpHeader(headerLabel, headerValue));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return new ColumnAdditionByFetchingURLsOperation(
|
|
||||||
EngineConfig.reconstruct(engineConfig),
|
|
||||||
obj.getString("baseColumnName"),
|
|
||||||
obj.getString("urlExpression"),
|
|
||||||
TextTransformOperation.stringToOnError(obj.getString("onError")),
|
|
||||||
obj.getString("newColumnName"),
|
|
||||||
obj.getInt("columnInsertIndex"),
|
|
||||||
obj.getInt("delay"),
|
|
||||||
obj.optBoolean("cacheResponses", false), // false for retro-compatibility
|
|
||||||
headers // will be null if it doesn't exist for retro-compatibility
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@JsonCreator
|
||||||
public ColumnAdditionByFetchingURLsOperation(
|
public ColumnAdditionByFetchingURLsOperation(
|
||||||
|
@JsonProperty("engineConfig")
|
||||||
EngineConfig engineConfig,
|
EngineConfig engineConfig,
|
||||||
|
@JsonProperty("baseColumnName")
|
||||||
String baseColumnName,
|
String baseColumnName,
|
||||||
|
@JsonProperty("urlExpression")
|
||||||
String urlExpression,
|
String urlExpression,
|
||||||
|
@JsonProperty("onError")
|
||||||
OnError onError,
|
OnError onError,
|
||||||
|
@JsonProperty("newColumnName")
|
||||||
String newColumnName,
|
String newColumnName,
|
||||||
|
@JsonProperty("columnInsertIndex")
|
||||||
int columnInsertIndex,
|
int columnInsertIndex,
|
||||||
|
@JsonProperty("delay")
|
||||||
int delay,
|
int delay,
|
||||||
|
@JsonProperty("cacheResponses")
|
||||||
boolean cacheResponses,
|
boolean cacheResponses,
|
||||||
|
@JsonProperty("httpHeadersJson")
|
||||||
List<HttpHeader> httpHeadersJson
|
List<HttpHeader> httpHeadersJson
|
||||||
) {
|
) {
|
||||||
super(engineConfig);
|
super(engineConfig);
|
||||||
|
Loading…
Reference in New Issue
Block a user