From 2b5b238bc18ab89aadd5952412cb1facdcd186da Mon Sep 17 00:00:00 2001 From: gnosygnu Date: Sat, 17 Dec 2016 15:29:05 -0500 Subject: [PATCH] Wikibase: Do not cast 'numeric-id' to 'string'; leave as 'int' --- .../xtns/scribunto/libs/Scrib_lib_wikibase_srl_tst.java | 7 +++++++ .../scribunto/libs/Scrib_lib_wikibase_srl_visitor.java | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_wikibase_srl_tst.java b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_wikibase_srl_tst.java index 028a0f679..c9676d14f 100644 --- a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_wikibase_srl_tst.java +++ b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_wikibase_srl_tst.java @@ -408,6 +408,13 @@ public class Scrib_lib_wikibase_srl_tst { , "" ); } + @Test public void Numeric_id_is_int() { // PURPOSE: assert that numeric-id is integer, not String, else will fail when comparing directly to integer; PAGE:en.w:Hollywood_Walk_of_Fame DATE:2016-12-17 + Wbase_claim_entity claim = (Wbase_claim_entity)fxt.Wdata_fxt().Make_claim_entity_qid(123, 456); + Scrib_lib_wikibase_srl_visitor visitor = new Scrib_lib_wikibase_srl_visitor(); + visitor.Visit_entity(claim); + Keyval keyval = Keyval_find_.Find(true, visitor.Rv(), "value", "numeric-id"); + Gftest.Eq__int(456, (int)keyval.Val()); // NOTE: must be 456 not "456" + } } class Scrib_lib_wikibase_srl_fxt { private Wdata_doc_bldr wdoc_bldr; diff --git a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_wikibase_srl_visitor.java b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_wikibase_srl_visitor.java index 5b5a5f220..c07e9eb65 100644 --- a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_wikibase_srl_visitor.java +++ b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_wikibase_srl_visitor.java @@ -33,7 +33,7 @@ class Scrib_lib_wikibase_srl_visitor implements Wbase_claim_visitor { Wbase_claim_entity claim_entity = (Wbase_claim_entity)itm; Keyval[] rv = new Keyval[2]; rv[0] = Keyval_.new_(Wbase_claim_entity_.Itm__entity_type.Key_str(), claim_entity.Entity_tid_str()); - rv[1] = Keyval_.new_(Wbase_claim_entity_.Itm__numeric_id.Key_str(), Int_.To_str(claim_entity.Entity_id())); + rv[1] = Keyval_.new_(Wbase_claim_entity_.Itm__numeric_id.Key_str(), claim_entity.Entity_id()); // NOTE: must be int, not String, else will fail when comparing directly to integer; PAGE:en.w:Hollywood_Walk_of_Fame DATE:2016-12-17 return rv; } public void Visit_monolingualtext(Wbase_claim_monolingualtext itm) {