diff --git a/main/src/com/google/refine/browsing/Engine.java b/main/src/com/google/refine/browsing/Engine.java index 4feb97ec8..204e8a11e 100644 --- a/main/src/com/google/refine/browsing/Engine.java +++ b/main/src/com/google/refine/browsing/Engine.java @@ -41,6 +41,7 @@ import java.util.stream.Collectors; import org.json.JSONException; import org.json.JSONObject; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonValue; @@ -69,8 +70,9 @@ public class Engine { public final static String MODE_RECORD_BASED = "record-based"; protected Project _project; + @JsonProperty("facets") protected List _facets = new LinkedList(); - @JsonValue + @JsonIgnore protected EngineConfig _config = new EngineConfig(Collections.emptyList(), Mode.RowBased); static public String modeToString(Mode mode) { @@ -84,6 +86,7 @@ public class Engine { _project = project; } + @JsonProperty("engine-mode") public Mode getMode() { return _config.getMode(); } diff --git a/main/src/com/google/refine/browsing/facets/ListFacet.java b/main/src/com/google/refine/browsing/facets/ListFacet.java index 07ecf61f0..521af7858 100644 --- a/main/src/com/google/refine/browsing/facets/ListFacet.java +++ b/main/src/com/google/refine/browsing/facets/ListFacet.java @@ -231,16 +231,18 @@ public class ListFacet implements Facet { @JsonProperty("choiceCount") @JsonInclude(Include.NON_NULL) public Integer getChoiceCount() { - if (_errorMessage == null && _choices.size() > getLimit()) + if (_errorMessage == null && _choices.size() > getLimit()) { return _choices.size(); + } return null; } @JsonProperty("choices") @JsonInclude(Include.NON_NULL) public List getChoices() { - if (getError() == null) + if (getError() == null) { return _choices; + } return null; } diff --git a/main/src/com/google/refine/commands/GetPreferenceCommand.java b/main/src/com/google/refine/commands/GetPreferenceCommand.java index cd1681b99..2d133c041 100644 --- a/main/src/com/google/refine/commands/GetPreferenceCommand.java +++ b/main/src/com/google/refine/commands/GetPreferenceCommand.java @@ -43,14 +43,19 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.google.refine.ProjectManager; import com.google.refine.preference.PreferenceStore; +import com.google.refine.preference.TopList; public class GetPreferenceCommand extends Command { protected static class PreferenceValue { @JsonProperty("value") - protected Object pref; + protected Object value; - protected PreferenceValue(Object o) { - pref = o; + protected PreferenceValue(Object pref) { + if (pref == null || pref instanceof String || pref instanceof Number || pref instanceof Boolean || pref instanceof TopList) { + value = pref; + } else { + value = pref.toString(); + } } } diff --git a/main/src/com/google/refine/commands/HttpHeadersSupport.java b/main/src/com/google/refine/commands/HttpHeadersSupport.java index 6bac9db5b..e7cd88b3e 100644 --- a/main/src/com/google/refine/commands/HttpHeadersSupport.java +++ b/main/src/com/google/refine/commands/HttpHeadersSupport.java @@ -37,6 +37,9 @@ import java.util.HashMap; import java.util.Map; import java.util.Set; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; + import com.google.refine.RefineServlet; abstract public class HttpHeadersSupport { @@ -44,8 +47,11 @@ abstract public class HttpHeadersSupport { static final protected Map s_headers = new HashMap(); static public class HttpHeaderInfo { + @JsonIgnore final public String name; + @JsonProperty("header") final public String header; + @JsonProperty("defaultValue") final public String defaultValue; HttpHeaderInfo(String header, String defaultValue) { diff --git a/main/src/com/google/refine/expr/MetaParser.java b/main/src/com/google/refine/expr/MetaParser.java index 274b8e0f8..03ec48949 100644 --- a/main/src/com/google/refine/expr/MetaParser.java +++ b/main/src/com/google/refine/expr/MetaParser.java @@ -39,6 +39,9 @@ import java.util.Map; import java.util.Properties; import java.util.Set; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; + import com.google.refine.grel.Parser; import clojure.lang.IFn; @@ -47,8 +50,11 @@ import clojure.lang.RT; abstract public class MetaParser { static public class LanguageInfo { + @JsonProperty("name") final public String name; + @JsonIgnore final public LanguageSpecificParser parser; + @JsonProperty("defaultExpression") final public String defaultExpression; LanguageInfo(String name, LanguageSpecificParser parser, String defaultExpression) { diff --git a/main/src/com/google/refine/importing/ImportingJob.java b/main/src/com/google/refine/importing/ImportingJob.java index 4f52f6c3b..27b0c65e9 100644 --- a/main/src/com/google/refine/importing/ImportingJob.java +++ b/main/src/com/google/refine/importing/ImportingJob.java @@ -42,6 +42,9 @@ import org.apache.commons.io.FileUtils; import org.json.JSONArray; import org.json.JSONObject; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonRawValue; + import com.google.refine.ProjectManager; import com.google.refine.model.Project; import com.google.refine.model.metadata.ProjectMetadata; @@ -77,6 +80,11 @@ public class ImportingJob { dir.mkdirs(); } + @JsonProperty("config") + @JsonRawValue + public String getJsonConfig() { + return config.toString(); + } public JSONObject getOrCreateDefaultConfig() { return config; diff --git a/main/src/com/google/refine/operations/recon/ReconOperation.java b/main/src/com/google/refine/operations/recon/ReconOperation.java index 34593b77c..976b1acb3 100644 --- a/main/src/com/google/refine/operations/recon/ReconOperation.java +++ b/main/src/com/google/refine/operations/recon/ReconOperation.java @@ -149,9 +149,9 @@ public class ReconOperation extends EngineDependentOperation { "{\n" + " \"action\" : \"createFacet\",\n" + " \"facetConfig\" : {\n" + - " \"columnName\" : \"researcher\",\n" + + " \"columnName\" : \"" + _columnName + "\",\n" + " \"expression\" : \"forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \\\"(unreconciled)\\\", \\\"(blank)\\\"))\",\n" + - " \"name\" : \"researcher: judgment\"\n" + + " \"name\" : \"" + _columnName + ": judgment\"\n" + " },\n" + " \"facetOptions\" : {\n" + " \"scroll\" : false\n" + @@ -162,10 +162,10 @@ public class ReconOperation extends EngineDependentOperation { "{\n" + " \"action\" : \"createFacet\",\n" + " \"facetConfig\" : {\n" + - " \"columnName\" : \"researcher\",\n" + + " \"columnName\" : \"" + _columnName + "\",\n" + " \"expression\" : \"cell.recon.best.score\",\n" + " \"mode\" : \"range\",\n" + - " \"name\" : \"researcher: best candidate's score\"\n" + + " \"name\" : \"" + _columnName + ": best candidate's score\"\n" + " },\n" + " \"facetType\" : \"range\"\n" + "}"; diff --git a/main/src/com/google/refine/preference/PreferenceStore.java b/main/src/com/google/refine/preference/PreferenceStore.java index 3e64a4a77..25a27fba2 100644 --- a/main/src/com/google/refine/preference/PreferenceStore.java +++ b/main/src/com/google/refine/preference/PreferenceStore.java @@ -79,7 +79,7 @@ public class PreferenceStore { private Object wrapJSONArray(Object value) { ObjectMapper mapper = new ObjectMapper(); - if(value != null && value instanceof JSONArray) { + if(value != null && (value instanceof JSONArray || value instanceof JSONObject)) { try { return mapper.readValue(value.toString(), JsonNode.class); } catch (IOException e) { diff --git a/main/src/com/google/refine/util/Pool.java b/main/src/com/google/refine/util/Pool.java index 0ac44ab0e..ddb9ea39e 100644 --- a/main/src/com/google/refine/util/Pool.java +++ b/main/src/com/google/refine/util/Pool.java @@ -107,6 +107,7 @@ public class Pool { for (Recon recon : recons2) { ParsingUtilities.saveWriter.writeValue(writer, recon); + writer.write('\n'); } } diff --git a/main/tests/server/src/com/google/refine/tests/browsing/facets/ListFacetTests.java b/main/tests/server/src/com/google/refine/tests/browsing/facets/ListFacetTests.java index 6a18c1782..92a77bf63 100644 --- a/main/tests/server/src/com/google/refine/tests/browsing/facets/ListFacetTests.java +++ b/main/tests/server/src/com/google/refine/tests/browsing/facets/ListFacetTests.java @@ -33,7 +33,7 @@ public class ListFacetTests extends RefineTest { + "\"expression\":\"value+\\\"bar\\\"\"," + "\"columnName\":\"Column A\"," + "\"invert\":false," - + "\"error\":\"No column named Column A\"}\" are not equal as JSON strings.\n" + + + "\"error\":\"No column named Column A\"" + "}"; private static String jsonFacet = "{"