Add support for monolingual text in Wikibase schema
This commit is contained in:
parent
b326346fa3
commit
07e2a8d982
@ -58,6 +58,7 @@ function init() {
|
|||||||
"scripts/dialogs/schema-alignment-dialog.js",
|
"scripts/dialogs/schema-alignment-dialog.js",
|
||||||
"scripts/dialogs/manage-account-dialog.js",
|
"scripts/dialogs/manage-account-dialog.js",
|
||||||
"scripts/dialogs/perform-edits-dialog.js",
|
"scripts/dialogs/perform-edits-dialog.js",
|
||||||
|
"scripts/jquery.uls.data.js",
|
||||||
]);
|
]);
|
||||||
|
|
||||||
ClientSideResourceManager.addPaths(
|
ClientSideResourceManager.addPaths(
|
||||||
|
@ -507,7 +507,6 @@ SchemaAlignmentDialog._initPropertyField = function(inputContainer, targetContai
|
|||||||
label: data.name,
|
label: data.name,
|
||||||
datatype: datatype,
|
datatype: datatype,
|
||||||
});
|
});
|
||||||
console.log(datatype);
|
|
||||||
SchemaAlignmentDialog._addStatement(targetContainer, datatype, null);
|
SchemaAlignmentDialog._addStatement(targetContainer, datatype, null);
|
||||||
var addValueButtons = targetContainer.parent().find('.wbs-add-statement');
|
var addValueButtons = targetContainer.parent().find('.wbs-add-statement');
|
||||||
addValueButtons.show();
|
addValueButtons.show();
|
||||||
@ -531,8 +530,12 @@ SchemaAlignmentDialog._initPropertyField = function(inputContainer, targetContai
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SchemaAlignmentDialog._initField = function(inputContainer, mode, initialValue) {
|
SchemaAlignmentDialog._initField = function(inputContainer, mode, initialValue, changedCallback) {
|
||||||
var input = $('<input></input>').appendTo(inputContainer);
|
var input = $('<input></input>').appendTo(inputContainer);
|
||||||
|
|
||||||
|
if (! changedCallback) {
|
||||||
|
changedCallback = SchemaAlignmentDialog._hasChanged;
|
||||||
|
}
|
||||||
|
|
||||||
if (this._reconService !== null && mode === "wikibase-item") {
|
if (this._reconService !== null && mode === "wikibase-item") {
|
||||||
input.attr("placeholder", "item or reconciled column");
|
input.attr("placeholder", "item or reconciled column");
|
||||||
@ -541,7 +544,6 @@ SchemaAlignmentDialog._initField = function(inputContainer, mode, initialValue)
|
|||||||
var suggestConfig = $.extend({}, endpoint);
|
var suggestConfig = $.extend({}, endpoint);
|
||||||
suggestConfig.key = null;
|
suggestConfig.key = null;
|
||||||
suggestConfig.query_param_name = "prefix";
|
suggestConfig.query_param_name = "prefix";
|
||||||
|
|
||||||
|
|
||||||
input.suggestP(suggestConfig).bind("fb-select", function(evt, data) {
|
input.suggestP(suggestConfig).bind("fb-select", function(evt, data) {
|
||||||
inputContainer.data("jsonValue", {
|
inputContainer.data("jsonValue", {
|
||||||
@ -549,7 +551,7 @@ SchemaAlignmentDialog._initField = function(inputContainer, mode, initialValue)
|
|||||||
qid : data.id,
|
qid : data.id,
|
||||||
label: data.name,
|
label: data.name,
|
||||||
});
|
});
|
||||||
SchemaAlignmentDialog._hasChanged();
|
changedCallback();
|
||||||
});
|
});
|
||||||
} else if (mode === "time") {
|
} else if (mode === "time") {
|
||||||
input.attr("placeholder", "YYYY(-MM(-DD))...");
|
input.attr("placeholder", "YYYY(-MM(-DD))...");
|
||||||
@ -563,7 +565,7 @@ SchemaAlignmentDialog._initField = function(inputContainer, mode, initialValue)
|
|||||||
propagateValue("");
|
propagateValue("");
|
||||||
input.change(function() {
|
input.change(function() {
|
||||||
propagateValue($(this).val());
|
propagateValue($(this).val());
|
||||||
SchemaAlignmentDialog._hasChanged();
|
changedCallback();
|
||||||
});
|
});
|
||||||
} else if (mode === "globe-coordinate") {
|
} else if (mode === "globe-coordinate") {
|
||||||
input.attr("placeholder", "lat/lon");
|
input.attr("placeholder", "lat/lon");
|
||||||
@ -577,9 +579,56 @@ SchemaAlignmentDialog._initField = function(inputContainer, mode, initialValue)
|
|||||||
propagateValue("");
|
propagateValue("");
|
||||||
input.change(function() {
|
input.change(function() {
|
||||||
propagateValue($(this).val());
|
propagateValue($(this).val());
|
||||||
SchemaAlignmentDialog._hasChanged();
|
changedCallback();
|
||||||
});
|
});
|
||||||
} else { /* if (mode === "external-id") { */
|
} else if (mode === "quantity") {
|
||||||
|
alert("not supported yet!");
|
||||||
|
} else if (mode === "language") {
|
||||||
|
var initial_language_width = "20%";
|
||||||
|
var expanded_width = "90px";
|
||||||
|
var animation_duration = 50;
|
||||||
|
input.attr("placeholder", "lang");
|
||||||
|
inputContainer.width(initial_language_width);
|
||||||
|
input.langsuggest().bind("fb-select", function(evt, data) {
|
||||||
|
inputContainer.data("jsonValue", {
|
||||||
|
type: "wblanguageconstant",
|
||||||
|
id: data.id,
|
||||||
|
label: data.name,
|
||||||
|
});
|
||||||
|
changedCallback();
|
||||||
|
inputContainer.animate({ width: initial_language_width, duration: animation_duration });
|
||||||
|
}).bind("focus.suggest", function(e) {
|
||||||
|
inputContainer.animate({ width: expanded_width, duration: animation_duration });
|
||||||
|
});
|
||||||
|
} else if (mode === "monolingualtext") {
|
||||||
|
input.remove();
|
||||||
|
var inputContainerLanguage = $('<div></div>')
|
||||||
|
.addClass('wbs-monolingual-container')
|
||||||
|
.appendTo(inputContainer);
|
||||||
|
var inputContainerValue = $('<div></div>')
|
||||||
|
.addClass('wbs-monolingual-container')
|
||||||
|
.width('80%')
|
||||||
|
.appendTo(inputContainer);
|
||||||
|
|
||||||
|
var langValue = null;
|
||||||
|
var strValue = null;
|
||||||
|
if (initialValue) {
|
||||||
|
langValue = initialValue.language;
|
||||||
|
strValue = initialValue.value;
|
||||||
|
}
|
||||||
|
|
||||||
|
var propagateValue = function() {
|
||||||
|
inputContainer.data("jsonValue", {
|
||||||
|
type: "wbmonolingualexpr",
|
||||||
|
language: inputContainerLanguage.data("jsonValue"),
|
||||||
|
value: inputContainerValue.data("jsonValue"),
|
||||||
|
});
|
||||||
|
changedCallback();
|
||||||
|
}
|
||||||
|
|
||||||
|
SchemaAlignmentDialog._initField(inputContainerLanguage, "language", langValue, propagateValue);
|
||||||
|
SchemaAlignmentDialog._initField(inputContainerValue, "external-id", strValue, propagateValue);
|
||||||
|
} else { /* if (mode === "external-id") { */
|
||||||
var propagateValue = function(val) {
|
var propagateValue = function(val) {
|
||||||
inputContainer.data("jsonValue", {
|
inputContainer.data("jsonValue", {
|
||||||
type: "wbstringconstant",
|
type: "wbstringconstant",
|
||||||
@ -589,7 +638,7 @@ SchemaAlignmentDialog._initField = function(inputContainer, mode, initialValue)
|
|||||||
propagateValue("");
|
propagateValue("");
|
||||||
input.change(function() {
|
input.change(function() {
|
||||||
propagateValue($(this).val());
|
propagateValue($(this).val());
|
||||||
SchemaAlignmentDialog._hasChanged();
|
changedCallback();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -602,7 +651,7 @@ SchemaAlignmentDialog._initField = function(inputContainer, mode, initialValue)
|
|||||||
deleteButton.click(function () {
|
deleteButton.click(function () {
|
||||||
columnDiv.remove();
|
columnDiv.remove();
|
||||||
input.show();
|
input.show();
|
||||||
SchemaAlignmentDialog._hasChanged();
|
changedCallback();
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -616,24 +665,30 @@ SchemaAlignmentDialog._initField = function(inputContainer, mode, initialValue)
|
|||||||
wbVariableType = "wbdatevariable";
|
wbVariableType = "wbdatevariable";
|
||||||
} else if (mode === "globe-coordinate") {
|
} else if (mode === "globe-coordinate") {
|
||||||
wbVariableType = "wblocationvariable";
|
wbVariableType = "wblocationvariable";
|
||||||
}
|
} else if (mode === "monolingualtext") {
|
||||||
|
wbVariableType = null; // not droppable directly
|
||||||
|
} else if (mode === "language") {
|
||||||
|
wbVariableType = "wblanguagevariable";
|
||||||
|
}
|
||||||
|
|
||||||
inputContainer.droppable({
|
if (wbVariableType) {
|
||||||
accept: acceptClass,
|
inputContainer.droppable({
|
||||||
}).on("drop", function (evt, ui) {
|
accept: acceptClass,
|
||||||
var column = ui.draggable.clone();
|
}).on("drop", function (evt, ui) {
|
||||||
acceptDraggableColumn(column);
|
var column = ui.draggable.clone();
|
||||||
inputContainer.data("jsonValue", {
|
acceptDraggableColumn(column);
|
||||||
type : wbVariableType,
|
inputContainer.data("jsonValue", {
|
||||||
columnName: ui.draggable.text(),
|
type : wbVariableType,
|
||||||
});
|
columnName: ui.draggable.text(),
|
||||||
SchemaAlignmentDialog._hasChanged();
|
});
|
||||||
return true;
|
changedCallback();
|
||||||
}).on("dropactivate", function(evt, ui) {
|
return true;
|
||||||
input.addClass("wbs-accepting-input");
|
}).on("dropactivate", function(evt, ui) {
|
||||||
}).on("dropdeactivate", function(evt, ui) {
|
input.addClass("wbs-accepting-input");
|
||||||
input.removeClass("wbs-accepting-input");
|
}).on("dropdeactivate", function(evt, ui) {
|
||||||
});
|
input.removeClass("wbs-accepting-input");
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// Init with the provided initial value.
|
// Init with the provided initial value.
|
||||||
if (initialValue) {
|
if (initialValue) {
|
||||||
@ -642,13 +697,16 @@ SchemaAlignmentDialog._initField = function(inputContainer, mode, initialValue)
|
|||||||
} else if (initialValue.type == "wbitemvariable") {
|
} else if (initialValue.type == "wbitemvariable") {
|
||||||
var cell = SchemaAlignmentDialog._createDraggableColumn(initialValue.columnName, true);
|
var cell = SchemaAlignmentDialog._createDraggableColumn(initialValue.columnName, true);
|
||||||
acceptDraggableColumn(cell);
|
acceptDraggableColumn(cell);
|
||||||
} else if (initialValue.type == "wbstringconstant" ||
|
} else if (initialValue.type === "wbstringconstant" ||
|
||||||
initialValue.type == "wbdateconstant" ||
|
initialValue.type === "wbdateconstant" ||
|
||||||
initialValue.type == "wblocationconstant") {
|
initialValue.type === "wblocationconstant") {
|
||||||
input.val(initialValue.value);
|
input.val(initialValue.value);
|
||||||
} else if (initialValue.type == "wbstringvariable" ||
|
} else if (initialValue.type === "wblanguageconstant") {
|
||||||
initialValue.type == "wbdatevariable" ||
|
input.val(initialValue.id);
|
||||||
initialValue.type == "wblocationvariable") {
|
} else if (initialValue.type === "wbstringvariable" ||
|
||||||
|
initialValue.type === "wbdatevariable" ||
|
||||||
|
initialValue.type === "wblocationvariable" ||
|
||||||
|
initialValue.type === "wblanguagevariable") {
|
||||||
var cell = SchemaAlignmentDialog._createDraggableColumn(initialValue.columnName, false);
|
var cell = SchemaAlignmentDialog._createDraggableColumn(initialValue.columnName, false);
|
||||||
acceptDraggableColumn(cell);
|
acceptDraggableColumn(cell);
|
||||||
}
|
}
|
||||||
@ -712,4 +770,56 @@ SchemaAlignmentDialog.preview = function(initial) {
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/********************
|
||||||
|
* LANGUAGE SUGGEST *
|
||||||
|
********************/
|
||||||
|
|
||||||
|
$.suggest("langsuggest", {
|
||||||
|
_init: function() {
|
||||||
|
this.api_url = "https://www.wikidata.org/w/api.php";
|
||||||
|
this._status.SELECT = "Select a language from the list:";
|
||||||
|
},
|
||||||
|
|
||||||
|
request: function(val, cursor) {
|
||||||
|
var self = this;
|
||||||
|
var ajax_options = {
|
||||||
|
url: self.api_url,
|
||||||
|
data: { action: "languagesearch",
|
||||||
|
search: val,
|
||||||
|
format: "json", },
|
||||||
|
success: function(data) {
|
||||||
|
self.response(self.convertResults(data));
|
||||||
|
},
|
||||||
|
dataType: "jsonp",
|
||||||
|
};
|
||||||
|
$.ajax(ajax_options);
|
||||||
|
},
|
||||||
|
|
||||||
|
convertResults: function(data) {
|
||||||
|
var array = [];
|
||||||
|
for (var key in data.languagesearch) {
|
||||||
|
if (data.languagesearch.hasOwnProperty(key)) {
|
||||||
|
array.push({ id: key, name: key, search_name: data.languagesearch[key] });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return array;
|
||||||
|
},
|
||||||
|
|
||||||
|
create_item: function(data, response_data) {
|
||||||
|
var css = this.options.css;
|
||||||
|
var li = $("<li>").addClass(css.item);
|
||||||
|
var type = $("<div>").addClass("fbs-item-type").text(data.id);
|
||||||
|
var native_name = this.get_native_name(data.id);
|
||||||
|
var full_name = native_name ? native_name : data.search_name;
|
||||||
|
var label = $("<label>").text(full_name);
|
||||||
|
li.append($("<div>").addClass(css.item_name).append(type).append(label));
|
||||||
|
return li;
|
||||||
|
},
|
||||||
|
|
||||||
|
get_native_name: function(lang_code) {
|
||||||
|
var language = $.uls.data.languages[lang_code];
|
||||||
|
if (language) {
|
||||||
|
return language[2];
|
||||||
|
}
|
||||||
|
},
|
||||||
|
});
|
||||||
|
11
extensions/wikidata/module/scripts/jquery.uls.data.js
Normal file
11
extensions/wikidata/module/scripts/jquery.uls.data.js
Normal file
File diff suppressed because one or more lines are too long
@ -173,6 +173,10 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.wbs-monolingual-container {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
.wbs-reference-header {
|
.wbs-reference-header {
|
||||||
height: 20px;
|
height: 20px;
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
|
@ -147,7 +147,7 @@ public class QuickStatementsExporter implements WriterExporter {
|
|||||||
@Override
|
@Override
|
||||||
public String visit(MonolingualTextValue value) {
|
public String visit(MonolingualTextValue value) {
|
||||||
return String.format(
|
return String.format(
|
||||||
"%s:/\"%s\"",
|
"%s:\"%s\"",
|
||||||
value.getLanguageCode(),
|
value.getLanguageCode(),
|
||||||
value.getText());
|
value.getText());
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,44 @@
|
|||||||
|
package org.openrefine.wikidata.schema;
|
||||||
|
|
||||||
|
import java.util.Properties;
|
||||||
|
|
||||||
|
import org.json.JSONException;
|
||||||
|
import org.json.JSONObject;
|
||||||
|
import org.json.JSONWriter;
|
||||||
|
import org.wikidata.wdtk.datamodel.interfaces.Value;
|
||||||
|
|
||||||
|
|
||||||
|
public class WbLanguageConstant extends WbLanguageExpr {
|
||||||
|
|
||||||
|
public static final String jsonType = "wblanguageconstant";
|
||||||
|
|
||||||
|
protected String _langId;
|
||||||
|
protected String _langLabel;
|
||||||
|
|
||||||
|
public String evaluate(ExpressionContext ctxt) throws SkipStatementException {
|
||||||
|
return _langId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public WbLanguageConstant(String langId, String langLabel) {
|
||||||
|
_langId = langId;
|
||||||
|
_langLabel = langLabel;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void writeFields(JSONWriter writer, Properties options)
|
||||||
|
throws JSONException {
|
||||||
|
writer.key("id");
|
||||||
|
writer.value(_langId);
|
||||||
|
writer.key("label");
|
||||||
|
writer.value(_langLabel);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getJsonType() {
|
||||||
|
return jsonType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static WbLanguageExpr fromJSON(JSONObject obj) throws JSONException {
|
||||||
|
return new WbLanguageConstant(obj.getString("id"), obj.getString("label"));
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,30 @@
|
|||||||
|
package org.openrefine.wikidata.schema;
|
||||||
|
|
||||||
|
import java.util.Properties;
|
||||||
|
|
||||||
|
import org.json.JSONException;
|
||||||
|
import org.json.JSONObject;
|
||||||
|
import org.json.JSONWriter;
|
||||||
|
import org.wikidata.wdtk.datamodel.interfaces.MonolingualTextValue;
|
||||||
|
import org.wikidata.wdtk.datamodel.interfaces.Value;
|
||||||
|
|
||||||
|
|
||||||
|
public abstract class WbLanguageExpr extends BiJsonizable {
|
||||||
|
/**
|
||||||
|
* Evaluates the language expression to a Wikimedia language code
|
||||||
|
*
|
||||||
|
* @param ctxt the evulation context
|
||||||
|
* @return a Wikimedia language code
|
||||||
|
* @throws SkipStatementException when the code is invalid
|
||||||
|
*/
|
||||||
|
public abstract String evaluate(ExpressionContext ctxt) throws SkipStatementException;
|
||||||
|
|
||||||
|
public static WbLanguageExpr fromJSON(JSONObject obj) throws JSONException {
|
||||||
|
String type = obj.getString(jsonTypeKey);
|
||||||
|
if (WbLanguageConstant.jsonType.equals(type)) {
|
||||||
|
return WbLanguageConstant.fromJSON(obj);
|
||||||
|
} else {
|
||||||
|
throw new JSONException("unknown type for WbLocationExpr");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,48 @@
|
|||||||
|
package org.openrefine.wikidata.schema;
|
||||||
|
|
||||||
|
import java.util.Properties;
|
||||||
|
|
||||||
|
import org.json.JSONException;
|
||||||
|
import org.json.JSONObject;
|
||||||
|
import org.json.JSONWriter;
|
||||||
|
|
||||||
|
import com.google.refine.model.Cell;
|
||||||
|
|
||||||
|
|
||||||
|
public class WbLanguageVariable extends WbLanguageExpr {
|
||||||
|
public static final String jsonType = "wblanguagevariable";
|
||||||
|
|
||||||
|
private String _columnName;
|
||||||
|
|
||||||
|
public WbLanguageVariable(String columnName) {
|
||||||
|
_columnName = columnName;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String evaluate(ExpressionContext ctxt)
|
||||||
|
throws SkipStatementException {
|
||||||
|
Cell cell = ctxt.getCellByName(_columnName);
|
||||||
|
if (cell != null) {
|
||||||
|
// TODO some validation here?
|
||||||
|
return cell.value.toString();
|
||||||
|
}
|
||||||
|
throw new SkipStatementException();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void writeFields(JSONWriter writer, Properties options)
|
||||||
|
throws JSONException {
|
||||||
|
writer.key("columnName");
|
||||||
|
writer.value(_columnName);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static WbLanguageVariable fromJSON(JSONObject obj) throws JSONException {
|
||||||
|
return new WbLanguageVariable(obj.getString("columnName"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getJsonType() {
|
||||||
|
return jsonType;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,53 @@
|
|||||||
|
package org.openrefine.wikidata.schema;
|
||||||
|
|
||||||
|
import java.util.Properties;
|
||||||
|
|
||||||
|
import org.json.JSONException;
|
||||||
|
import org.json.JSONObject;
|
||||||
|
import org.json.JSONWriter;
|
||||||
|
import org.wikidata.wdtk.datamodel.helpers.Datamodel;
|
||||||
|
import org.wikidata.wdtk.datamodel.interfaces.MonolingualTextValue;
|
||||||
|
import org.wikidata.wdtk.datamodel.interfaces.Value;
|
||||||
|
|
||||||
|
|
||||||
|
public class WbMonolingualExpr extends WbValueExpr {
|
||||||
|
|
||||||
|
public static final String jsonType = "wbmonolingualexpr";
|
||||||
|
|
||||||
|
protected WbLanguageExpr _languageExpr;
|
||||||
|
protected WbStringExpr _valueExpr;
|
||||||
|
|
||||||
|
public WbMonolingualExpr(WbLanguageExpr languageExpr, WbStringExpr valueExpr) {
|
||||||
|
_languageExpr = languageExpr;
|
||||||
|
_valueExpr = valueExpr;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public MonolingualTextValue evaluate(ExpressionContext ctxt)
|
||||||
|
throws SkipStatementException {
|
||||||
|
return Datamodel.makeMonolingualTextValue(
|
||||||
|
_valueExpr.evaluate(ctxt).getString(),
|
||||||
|
_languageExpr.evaluate(ctxt));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static WbMonolingualExpr fromJSON(JSONObject obj) throws JSONException {
|
||||||
|
return new WbMonolingualExpr(
|
||||||
|
WbLanguageExpr.fromJSON(obj.getJSONObject("language")),
|
||||||
|
WbStringExpr.fromJSON(obj.getJSONObject("value")));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void writeFields(JSONWriter writer, Properties options)
|
||||||
|
throws JSONException {
|
||||||
|
writer.key("language");
|
||||||
|
_languageExpr.write(writer, options);
|
||||||
|
writer.key("value");
|
||||||
|
_valueExpr.write(writer, options);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getJsonType() {
|
||||||
|
return jsonType;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -38,6 +38,8 @@ public abstract class WbValueExpr extends BiJsonizable {
|
|||||||
valueExpr = WbLocationVariable.fromJSON(obj);
|
valueExpr = WbLocationVariable.fromJSON(obj);
|
||||||
} else if (WbLocationConstant.jsonType.equals(type)) {
|
} else if (WbLocationConstant.jsonType.equals(type)) {
|
||||||
valueExpr = WbLocationConstant.fromJSON(obj);
|
valueExpr = WbLocationConstant.fromJSON(obj);
|
||||||
|
} else if (WbMonolingualExpr.jsonType.equals(type)) {
|
||||||
|
valueExpr = WbMonolingualExpr.fromJSON(obj);
|
||||||
} else {
|
} else {
|
||||||
throw new JSONException("unknown type '"+type+"' for WbValueExpr");
|
throw new JSONException("unknown type '"+type+"' for WbValueExpr");
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user