mirror of
https://github.com/gnosygnu/xowa.git
synced 2025-05-30 14:04:56 +00:00
Wikibase: Add qualifiers-order to GetEntityStatements [#374]
This commit is contained in:
parent
2526b677fa
commit
d4a28d3ffe
@ -135,6 +135,7 @@ public class Scrib_lib_wikibase_srl {
|
||||
list.Add(Keyval_.new_(Wdata_dict_claim_v1.Str_rank, Wbase_claim_rank_.Reg.Get_str_or_fail(itm.Rank_tid())));
|
||||
list.Add(Keyval_.new_("type", itm.Prop_type()));
|
||||
Srl_root(list, Wdata_dict_claim.Itm__qualifiers.Key_str(), Srl_qualifiers(prop_mgr, visitor, itm.Qualifiers(), base_adj, page_url));
|
||||
Srl_root(list, Wdata_dict_claim.Itm__qualifiers_order.Key_str(), Srl_qualifiers_order(prop_mgr, visitor, itm.Qualifiers_order(), base_adj, page_url));
|
||||
return (Keyval[])list.To_ary_and_clear(Keyval.class);
|
||||
}
|
||||
private static Keyval[] Srl_qualifiers(Wbase_prop_mgr prop_mgr, Scrib_lib_wikibase_srl_visitor visitor, Wbase_claim_grp_list list, int base_adj, byte[] page_url) {
|
||||
@ -155,6 +156,16 @@ public class Scrib_lib_wikibase_srl {
|
||||
}
|
||||
return (Keyval[])rv.To_ary_and_clear(Keyval.class);
|
||||
}
|
||||
private static Keyval[] Srl_qualifiers_order(Wbase_prop_mgr prop_mgr, Scrib_lib_wikibase_srl_visitor visitor, int[] list, int base_adj, byte[] page_url) {
|
||||
if (list == null) return null;
|
||||
int list_len = list.length; if (list_len == 0) return Keyval_.Ary_empty;
|
||||
List_adp rv = List_adp_.New();
|
||||
for (int i = 0; i < list_len; ++i) {
|
||||
String itm_pid = "P" + Int_.To_str(list[i]);
|
||||
rv.Add(Keyval_.int_(i + base_adj, itm_pid));
|
||||
}
|
||||
return (Keyval[])rv.To_ary_and_clear(Keyval.class);
|
||||
}
|
||||
private static Keyval[] Srl_claims_prop_itm_core(Wbase_prop_mgr prop_mgr, Scrib_lib_wikibase_srl_visitor visitor, String pid, Wbase_claim_base itm, byte[] page_url) {
|
||||
boolean snak_is_valued = itm.Snak_tid() == Wbase_claim_value_type_.Tid__value; // PURPOSE: was != Wbase_claim_value_type_.Tid__novalue; PAGE:it.s:Autore:Anonimo DATE:2015-12-06
|
||||
int snak_is_valued_adj = snak_is_valued ? 1 : 0;
|
||||
|
@ -16,7 +16,7 @@ Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
|
||||
package gplx.xowa.xtns.scribunto.libs.wikibases; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.scribunto.*; import gplx.xowa.xtns.scribunto.libs.*;
|
||||
import org.junit.*; import gplx.core.tests.*;
|
||||
import gplx.langs.jsons.*; import gplx.xowa.xtns.wbases.*; import gplx.xowa.xtns.wbases.core.*; import gplx.xowa.xtns.wbases.claims.*; import gplx.xowa.xtns.wbases.claims.itms.*; import gplx.xowa.xtns.wbases.parsers.*; import gplx.xowa.xtns.wbases.stores.*;
|
||||
public class Srl__tst {
|
||||
public class Srl__tst {// see also FOOTNOTE:VIEWING_WIKIDATA_JSON
|
||||
@Before public void init() {fxt.Clear();} private Srl__fxt fxt = new Srl__fxt();
|
||||
@Test public void Label() {
|
||||
fxt.Init_label("en", "Earth").Init_label("fr", "Terre").Init_label("de", "Erde");
|
||||
@ -328,7 +328,21 @@ public class Srl__tst {
|
||||
}
|
||||
@Test public void Qualifiers() {
|
||||
Wdata_wiki_mgr_fxt wdata_fxt = fxt.Wdata_fxt();
|
||||
fxt.Init_prop(wdata_fxt.Make_claim_string(2, "Earth").Qualifiers_(wdata_fxt.Make_qualifiers(wdata_fxt.Make_qualifiers_grp(3, wdata_fxt.Make_claim_time(3, "2001-02-03 04:05:06")))));
|
||||
fxt.Init_prop
|
||||
( wdata_fxt.Make_claim_string(2, "Earth")
|
||||
.Qualifiers_
|
||||
( wdata_fxt.Make_qualifiers
|
||||
( wdata_fxt.Make_qualifiers_grp
|
||||
( 3, wdata_fxt.Make_claim_time(3, "2001-02-03 04:05:06")
|
||||
)
|
||||
, wdata_fxt.Make_qualifiers_grp
|
||||
( 1, wdata_fxt.Make_claim_string(1, "val1")
|
||||
)
|
||||
)
|
||||
)
|
||||
.Qualifiers_order_(Int_ary_.New(3, 1))
|
||||
)
|
||||
;
|
||||
fxt.Test
|
||||
( "claims:"
|
||||
, " P2:"
|
||||
@ -358,6 +372,17 @@ public class Srl__tst {
|
||||
, " property:'P3'"
|
||||
, " snaktype:'value'"
|
||||
, " datatype:'time'"
|
||||
, " P1:"
|
||||
, " 1:"
|
||||
, " datavalue:"
|
||||
, " type:'string'"
|
||||
, " value:'val1'"
|
||||
, " property:'P1'"
|
||||
, " snaktype:'value'"
|
||||
, " datatype:'string'"
|
||||
, " qualifiers-order:"
|
||||
, " 1:'P3'"
|
||||
, " 2:'P1'"
|
||||
, ""
|
||||
);
|
||||
}
|
||||
@ -418,4 +443,9 @@ public class Srl__tst {
|
||||
Keyval keyval = Keyval_find_.Find(true, visitor.Rv(), "value", "numeric-id");
|
||||
Gftest.Eq__int(456, (int)keyval.Val()); // NOTE: must be 456 not "456"
|
||||
}
|
||||
}
|
||||
}
|
||||
/*
|
||||
FOOTNOTE:VIEWING_WIKIDATA_JSON
|
||||
* https://www.wikidata.org/w/api.php?action=wbgetentities&ids=q2
|
||||
* https://www.wikidata.org/wiki/Special:Export/Q2
|
||||
*/
|
||||
|
@ -34,7 +34,7 @@ public abstract class Wbase_claim_base implements CompareAble {
|
||||
public Wbase_claim_base Rank_tid_(byte v) {this.rank_tid = v; return this;}
|
||||
public void Wguid_(byte[] v) {this.wguid = v;}
|
||||
public Wbase_claim_base Qualifiers_(Wbase_claim_grp_list v) {qualifiers = v; return this;}
|
||||
public void Qualifiers_order_(int[] v) {qualifiers_order = v;}
|
||||
public Wbase_claim_base Qualifiers_order_(int[] v) {qualifiers_order = v; return this;}
|
||||
public void References_(Wbase_references_grp[] v) {references = v;}
|
||||
|
||||
public int compareTo(Object obj) {
|
||||
|
Loading…
Reference in New Issue
Block a user