mirror of
https://github.com/gnosygnu/xowa.git
synced 2026-03-02 03:49:30 +00:00
'v3.9.2.1'
This commit is contained in:
@@ -47,8 +47,8 @@ public class Wbase_doc_mgr {
|
||||
public Wdata_doc Get_by_bry_or_null(byte[] ttl_bry) {// must be correct format; EX:"Q2" or "Property:P1"
|
||||
Wdata_doc rv = hash.Get_or_null(ttl_bry);
|
||||
if (rv == null) {
|
||||
rv = Load_wdoc_or_null(ttl_bry); if (rv == null) return null; // page not found
|
||||
synchronized (hash) { // LOCK:app-level; hash;
|
||||
rv = Load_wdoc_or_null(ttl_bry); if (rv == null) return null; // page not found
|
||||
Add(ttl_bry, rv);// NOTE: use ttl_bry, not rv.Qid; allows subsequent lookups to skip this redirect cycle
|
||||
}
|
||||
}
|
||||
@@ -56,43 +56,43 @@ public class Wbase_doc_mgr {
|
||||
}
|
||||
public Wdata_doc Load_wdoc_or_null(byte[] src_ttl_bry) {
|
||||
if (!enabled) return null;
|
||||
byte[] cur_ttl_bry = src_ttl_bry;
|
||||
int load_count = -1;
|
||||
while (load_count < 2) { // limit to 2 tries (i.e.: 1 redirect)
|
||||
// parse ttl
|
||||
Xoa_ttl cur_ttl = wbase_mgr.Wdata_wiki().Ttl_parse(cur_ttl_bry);
|
||||
if (cur_ttl == null) {
|
||||
app.Usr_dlg().Warn_many("", "", "invalid wbase ttl: orig=~{0} cur=~{1}", src_ttl_bry, cur_ttl_bry);
|
||||
return null;
|
||||
}
|
||||
synchronized (hash) { // LOCK:app-level; jdoc_parser; moved synchronized higher up; DATE:2016-09-03
|
||||
byte[] cur_ttl_bry = src_ttl_bry;
|
||||
int load_count = -1;
|
||||
while (load_count < 2) { // limit to 2 tries (i.e.: 1 redirect)
|
||||
// parse ttl
|
||||
Xoa_ttl cur_ttl = wbase_mgr.Wdata_wiki().Ttl_parse(cur_ttl_bry);
|
||||
if (cur_ttl == null) {
|
||||
app.Usr_dlg().Warn_many("", "", "invalid wbase ttl: orig=~{0} cur=~{1}", src_ttl_bry, cur_ttl_bry);
|
||||
return null;
|
||||
}
|
||||
|
||||
// get page
|
||||
Xoae_page page = wbase_mgr.Wdata_wiki().Data_mgr().Load_page_by_ttl(cur_ttl);
|
||||
if (!page.Db().Page().Exists()) return null;
|
||||
// get page
|
||||
Xoae_page page = wbase_mgr.Wdata_wiki().Data_mgr().Load_page_by_ttl(cur_ttl);
|
||||
if (!page.Db().Page().Exists()) return null;
|
||||
|
||||
// parse jdoc
|
||||
byte[] jdoc_bry = page.Db().Text().Text_bry();
|
||||
Json_doc jdoc = null;
|
||||
synchronized (hash) { // LOCK:app-level; jdoc_parser
|
||||
// parse jdoc
|
||||
byte[] jdoc_bry = page.Db().Text().Text_bry();
|
||||
Json_doc jdoc = null;
|
||||
jdoc = wbase_mgr.Jdoc_parser().Parse(jdoc_bry);
|
||||
}
|
||||
if (jdoc == null) {
|
||||
app.Usr_dlg().Warn_many("", "", "invalid jdoc for ttl: orig=~{0} cur=~{1}", src_ttl_bry, cur_ttl_bry);
|
||||
return null;
|
||||
}
|
||||
if (jdoc == null) {
|
||||
app.Usr_dlg().Warn_many("", "", "invalid jdoc for ttl: orig=~{0} cur=~{1}", src_ttl_bry, cur_ttl_bry);
|
||||
return null;
|
||||
}
|
||||
|
||||
// check for redirect; EX: {"entity":"Q22350516","redirect":"Q21006972"}; PAGE:fr.w:Tour_du_Táchira_2016; DATE:2016-08-13
|
||||
Json_nde jdoc_root = jdoc.Root_nde();
|
||||
byte[] redirect_ttl = jdoc_root.Get_as_bry_or(Bry__redirect, null);
|
||||
if (redirect_ttl != null) {
|
||||
cur_ttl_bry = redirect_ttl;
|
||||
continue;
|
||||
}
|
||||
// check for redirect; EX: {"entity":"Q22350516","redirect":"Q21006972"}; PAGE:fr.w:Tour_du_Táchira_2016; DATE:2016-08-13
|
||||
Json_nde jdoc_root = jdoc.Root_nde();
|
||||
byte[] redirect_ttl = jdoc_root.Get_as_bry_or(Bry__redirect, null);
|
||||
if (redirect_ttl != null) {
|
||||
cur_ttl_bry = redirect_ttl;
|
||||
continue;
|
||||
}
|
||||
|
||||
// is json doc, and not a redirect; return
|
||||
return new Wdata_doc(cur_ttl_bry, wbase_mgr, jdoc);
|
||||
// is json doc, and not a redirect; return
|
||||
return new Wdata_doc(cur_ttl_bry, wbase_mgr, jdoc);
|
||||
}
|
||||
app.Usr_dlg().Warn_many("", "", "too many redirects for ttl: orig=~{0} cur=~{1}", src_ttl_bry, cur_ttl_bry);
|
||||
}
|
||||
app.Usr_dlg().Warn_many("", "", "too many redirects for ttl: orig=~{0} cur=~{1}", src_ttl_bry, cur_ttl_bry);
|
||||
return null;
|
||||
}
|
||||
private static final byte[] Bry__redirect = Bry_.new_a7("redirect");
|
||||
|
||||
@@ -90,7 +90,7 @@ public class Wdata_doc_wtr {
|
||||
wtr.Nde_bgn();
|
||||
wtr.Key(false, Wdata_dict_claim_v1.Bry_m);
|
||||
wtr.Ary_bgn();
|
||||
wtr.Val(Bool_.N, Wbase_claim_value_type_.To_bry_or_fail(prop.Snak_tid()));
|
||||
wtr.Val(Bool_.N, Wbase_claim_value_type_.Reg.Get_bry_or_fail(prop.Snak_tid()));
|
||||
wtr.Val(Bool_.Y, prop.Pid());
|
||||
if (prop.Snak_tid() == Wbase_claim_value_type_.Tid__value) {
|
||||
switch (prop.Val_tid()) {
|
||||
|
||||
@@ -45,7 +45,7 @@ public class Wdata_prop_val_visitor_ {
|
||||
return rv;
|
||||
}
|
||||
private static void Render_snak(Bry_bfr bfr, Xowe_wiki wiki, Xol_lang_itm lang, byte[] page_url, Keyval[] props, int sub_idx, int sub_len) {
|
||||
Keyval[] datavalue_ary = (Keyval[])Scrib_kv_utl_.Get_sub_by_key_or_null(props, Wdata_dict_mainsnak.Str_datavalue);
|
||||
Keyval[] datavalue_ary = (Keyval[])Scrib_kv_utl_.Get_sub_by_key_or_null(props, Wdata_dict_mainsnak.Itm__datavalue.Key_str());
|
||||
|
||||
// loop datavalue_ary to get tid, val_obj
|
||||
byte tid = Byte_.Max_value_127;
|
||||
@@ -53,9 +53,9 @@ public class Wdata_prop_val_visitor_ {
|
||||
int len = datavalue_ary.length;
|
||||
for (int i = 0; i < len; ++i) {
|
||||
String key = datavalue_ary[i].Key();
|
||||
if (String_.Eq(key, Wdata_dict_datavalue.Str_type))
|
||||
tid = Wbase_claim_type_.To_tid_or_unknown((String)datavalue_ary[i].Val());
|
||||
else if (String_.Eq(key, Wdata_dict_datavalue.Str_value))
|
||||
if (String_.Eq(key, Wdata_dict_datavalue.Itm__type.Key_str()))
|
||||
tid = Wbase_claim_type_.Get_tid_or_unknown((String)datavalue_ary[i].Val());
|
||||
else if (String_.Eq(key, Wdata_dict_datavalue.Itm__value.Key_str()))
|
||||
val_obj = datavalue_ary[i].Val();
|
||||
}
|
||||
|
||||
@@ -78,7 +78,7 @@ public class Wdata_prop_val_visitor_ {
|
||||
int len = kvs.length;
|
||||
for (int i = 0; i < len; ++i) {
|
||||
Keyval kv = kvs[i];
|
||||
byte val_tid = Wbase_claim_time_.To_tid_or_invalid(page_url, kv.Key());
|
||||
byte val_tid = Wbase_claim_time_.Reg.Get_tid_or_max_and_log(page_url, kv.Key()); if (val_tid == Byte_.Max_value_127) continue;
|
||||
switch (val_tid) {
|
||||
case Wbase_claim_time_.Tid__time: time = Bry_.new_u8((String)kv.Val()); break;
|
||||
case Wbase_claim_time_.Tid__before: before_int = Int_.cast(kv.Val()); break;
|
||||
@@ -99,7 +99,7 @@ public class Wdata_prop_val_visitor_ {
|
||||
int len = kvs.length;
|
||||
for (int i = 0; i < len; ++i) {
|
||||
Keyval kv = kvs[i];
|
||||
byte val_tid = Wbase_claim_quantity_.To_tid_or_invalid(page_url, kv.Key());
|
||||
byte val_tid = Wbase_claim_quantity_.Reg.Get_tid_or_max_and_log(page_url, kv.Key()); if (val_tid == Byte_.Max_value_127) continue;
|
||||
byte[] val_bry = Bry_.new_u8((String)kv.Val());
|
||||
switch (val_tid) {
|
||||
case Wbase_claim_quantity_.Tid__amount: amount_bry = val_bry; break;
|
||||
@@ -125,11 +125,10 @@ public class Wdata_prop_val_visitor_ {
|
||||
int len = kvs.length;
|
||||
for (int i = 0; i < len; ++i) {
|
||||
Keyval kv = kvs[i];
|
||||
byte val_tid = Wbase_claim_globecoordinate_.To_tid_or_invalid(page_url, kv.Key());
|
||||
byte val_tid = Wbase_claim_globecoordinate_.Reg.Get_tid_or_max_and_log(page_url, kv.Key()); if (val_tid == Byte_.Max_value_127) continue;
|
||||
switch (val_tid) {
|
||||
case Wbase_claim_globecoordinate_.Tid__latitude: lat = Double_.cast(kv.Val()); break;
|
||||
case Wbase_claim_globecoordinate_.Tid__longitude: lng = Double_.cast(kv.Val()); break;
|
||||
default: break; // ignore others
|
||||
}
|
||||
}
|
||||
Render__geo(bfr, lat, lng);
|
||||
|
||||
@@ -164,11 +164,11 @@ public class Wdata_wiki_mgr implements Gfo_evt_itm, Gfo_invk {
|
||||
public static final byte[] Html_json_id = Bry_.new_a7("xowa-wikidata-json");
|
||||
public static boolean Wiki_page_is_json(int wiki_tid, int ns_id) {
|
||||
switch (wiki_tid) {
|
||||
case Xow_domain_tid_.Int__wikidata:
|
||||
case Xow_domain_tid_.Tid__wikidata:
|
||||
if (ns_id == Xow_ns_.Tid__main || ns_id == gplx.xowa.xtns.wbases.Wdata_wiki_mgr.Ns_property)
|
||||
return true;
|
||||
break;
|
||||
case Xow_domain_tid_.Int__home:
|
||||
case Xow_domain_tid_.Tid__home:
|
||||
if (ns_id == gplx.xowa.xtns.wbases.Wdata_wiki_mgr.Ns_property)
|
||||
return true;
|
||||
break;
|
||||
|
||||
@@ -31,8 +31,8 @@ public class Wdata_xwiki_link_wtr implements gplx.core.brys.Bfr_arg {
|
||||
public static byte[] Write_wdata_links(List_adp slink_list, Xowe_wiki wiki, Xoa_ttl ttl, Wdata_external_lang_links_data external_links_mgr) {
|
||||
try {
|
||||
switch (wiki.Domain_tid()) {
|
||||
case Xow_domain_tid_.Int__home: // home will never be in wikidata
|
||||
case Xow_domain_tid_.Int__wikidata: // wikidata will never be in wikidata
|
||||
case Xow_domain_tid_.Tid__home: // home will never be in wikidata
|
||||
case Xow_domain_tid_.Tid__wikidata: // wikidata will never be in wikidata
|
||||
return Qid_null;
|
||||
}
|
||||
Wdata_wiki_mgr wdata_mgr = wiki.Appe().Wiki_mgr().Wdata_mgr();
|
||||
|
||||
@@ -22,13 +22,13 @@ public class Wdata_xwiki_link_wtr_tst {
|
||||
@Before public void init() {fxt.Init();} private final Wdata_wiki_mgr_fxt fxt = new Wdata_wiki_mgr_fxt();
|
||||
@Test public void Skip_xwiki_lang_for_self() { // PURPOSE: list of language links should not include self
|
||||
fxt.Init_xwikis_add("en", "fr", "de");
|
||||
fxt.Init_qids_add("en", Xow_domain_tid_.Int__wikipedia, "Q1_en", "Q1");
|
||||
fxt.Init_qids_add("en", Xow_domain_tid_.Tid__wikipedia, "Q1_en", "Q1");
|
||||
fxt.Init__docs__add(fxt.Wdoc_bldr("Q1").Add_sitelink("enwiki", "Q1_en").Add_sitelink("frwiki", "Q1_fr").Add_sitelink("dewiki", "Q1_de").Xto_wdoc());
|
||||
fxt.Test_xwiki_links("Q1_en", "Q1_fr", "Q1_de");
|
||||
}
|
||||
@Test public void No_external_lang_links__de() {
|
||||
fxt.Init_xwikis_add("fr", "de");
|
||||
fxt.Init_qids_add("en", Xow_domain_tid_.Int__wikipedia, "Q1_en", "Q1");
|
||||
fxt.Init_qids_add("en", Xow_domain_tid_.Tid__wikipedia, "Q1_en", "Q1");
|
||||
fxt.Init__docs__add(fxt.Wdoc_bldr("Q1").Add_sitelink("enwiki", "Q1_en").Add_sitelink("frwiki", "Q1_fr").Add_sitelink("dewiki", "Q1_de").Xto_wdoc());
|
||||
fxt.Init_external_links_mgr_add("de");
|
||||
fxt.Test_xwiki_links("Q1_en", "Q1_de");
|
||||
@@ -51,7 +51,7 @@ public class Wdata_xwiki_link_wtr_tst {
|
||||
}
|
||||
@Test public void Links_w_name_fmt() { // PURPOSE: wikidata changed links node from "enwiki:A" to "enwiki:{name:A,badges:[]}"; DATE:2013-09-14
|
||||
fxt.Init_xwikis_add("en", "fr", "de");
|
||||
fxt.Init_qids_add("en", Xow_domain_tid_.Int__wikipedia, "Q1_en", "Q1");
|
||||
fxt.Init_qids_add("en", Xow_domain_tid_.Tid__wikipedia, "Q1_en", "Q1");
|
||||
Json_doc jdoc = fxt.App().Utl__json_parser().Parse(String_.Concat_lines_nl
|
||||
( "{ \"entity\":\"q1\""
|
||||
, ", \"links\":"
|
||||
@@ -66,7 +66,7 @@ public class Wdata_xwiki_link_wtr_tst {
|
||||
}
|
||||
@Test public void Same_lang_but_different_domains() { // PURPOSE: if two entries for same lang, but one is in different domain, use the one for the current wiki DATE:2014-06-21
|
||||
fxt.Init_xwikis_add("en", "fr", "de");
|
||||
fxt.Init_qids_add("en", Xow_domain_tid_.Int__wikipedia, "Q1_en", "Q1");
|
||||
fxt.Init_qids_add("en", Xow_domain_tid_.Tid__wikipedia, "Q1_en", "Q1");
|
||||
Json_doc jdoc = fxt.App().Utl__json_parser().Parse(String_.Concat_lines_nl
|
||||
( "{ \"entity\":\"q1\""
|
||||
, ", \"links\":"
|
||||
@@ -82,7 +82,7 @@ public class Wdata_xwiki_link_wtr_tst {
|
||||
}
|
||||
@Test public void Badges() {
|
||||
fxt.Init_xwikis_add("de", "fr", "pl");
|
||||
fxt.Init_qids_add("en", Xow_domain_tid_.Int__wikipedia, "Q1_en", "Q1");
|
||||
fxt.Init_qids_add("en", Xow_domain_tid_.Tid__wikipedia, "Q1_en", "Q1");
|
||||
fxt.Init__docs__add
|
||||
( fxt.Wdoc_bldr("Q1")
|
||||
.Add_sitelink("enwiki", "Q1_en")
|
||||
@@ -121,7 +121,7 @@ public class Wdata_xwiki_link_wtr_tst {
|
||||
// }
|
||||
// @Test public void No_external_lang_links__sort() {
|
||||
// fxt.Init_xwikis_add("de", "fr");
|
||||
// fxt.Init_qids_add("en", Xow_domain_tid_.Int__wikipedia, "Q1_en", "Q1");
|
||||
// fxt.Init_qids_add("en", Xow_domain_tid_.Tid__wikipedia, "Q1_en", "Q1");
|
||||
// fxt.Init__docs__add("Q1", fxt.page_bldr_("Q1").Add_sitelink("enwiki", "Q1_en").Add_sitelink("frwiki", "Q1_fr").Add_sitelink("dewiki", "Q1_de").Xto_page_doc());
|
||||
// fxt.Init_external_links_mgr_add("*");
|
||||
// fxt.Test_xwiki_links("Q1_en", "Q1_de", "Q1_fr");
|
||||
|
||||
@@ -21,21 +21,9 @@ public class Wbase_claim_entity_type_ {
|
||||
Tid__item = 0
|
||||
, Tid__property = 1
|
||||
;
|
||||
private static final int Ary__len = 2;
|
||||
private static final Wbase_claim_enum[] Ary = new Wbase_claim_enum[Ary__len];
|
||||
private static final Hash_adp_bry hash_by_bry = Hash_adp_bry.cs();
|
||||
public static final Wbase_claim_enum
|
||||
Itm__item = New(Tid__item , "item")
|
||||
, Itm__property = New(Tid__property , "property")
|
||||
public static final Wbase_enum_hash Reg = new Wbase_enum_hash("claim.entity_type", 2);
|
||||
public static final Wbase_enum_itm
|
||||
Itm__item = Reg.Add(Tid__item , "item")
|
||||
, Itm__property = Reg.Add(Tid__property , "property")
|
||||
;
|
||||
private static Wbase_claim_enum New(byte tid, String key) {
|
||||
Wbase_claim_enum rv = new Wbase_claim_enum(tid, key);
|
||||
hash_by_bry.Add(rv.Key_bry(), rv);
|
||||
Ary[tid] = rv;
|
||||
return rv;
|
||||
}
|
||||
|
||||
public static String To_str_or_fail(byte tid) {return Ary[tid].Key_str();}
|
||||
public static byte[] To_bry_or_fail(byte tid) {return Ary[tid].Key_bry();}
|
||||
public static byte To_tid_or_fail(byte[] bry) {return ((Wbase_claim_enum)hash_by_bry.Get_by_or_fail(bry)).Tid();}
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
/*
|
||||
XOWA: the XOWA Offline Wiki Application
|
||||
Copyright (C) 2012 gnosygnu@gmail.com
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.xtns.wbases.claims.enums; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*; import gplx.xowa.xtns.wbases.claims.*;
|
||||
public class Wbase_claim_enum_ {
|
||||
public static byte To_tid_or_invalid(Hash_adp hash, byte[] url, String key) {
|
||||
Object rv_obj = hash.Get_by(key);
|
||||
if (rv_obj == null) {
|
||||
Gfo_usr_dlg_.Instance.Warn_many("", "", "unknown enum key for wikibase; url=~{0} key=~{1}", url, key);
|
||||
return Tid__invalid;
|
||||
}
|
||||
return ((Wbase_claim_enum)rv_obj).Tid();
|
||||
}
|
||||
public static byte To_tid_or_invalid(Hash_adp_bry hash, byte[] url, byte[] key) {
|
||||
Object rv_obj = hash.Get_by_bry(key);
|
||||
if (rv_obj == null) {
|
||||
Gfo_usr_dlg_.Instance.Warn_many("", "", "unknown enum key for wikibase; url=~{0} key=~{1}", url, key);
|
||||
return Tid__invalid;
|
||||
}
|
||||
return ((Wbase_claim_enum)rv_obj).Tid();
|
||||
}
|
||||
public static final byte Tid__invalid = Byte_.Max_value_127;
|
||||
}
|
||||
@@ -23,24 +23,11 @@ public class Wbase_claim_rank_ {
|
||||
, Tid__deprecated = 0
|
||||
, Tid__unknown = 3
|
||||
;
|
||||
private static final int Ary__len = 4;
|
||||
private static final Wbase_claim_enum[] Ary = new Wbase_claim_enum[Ary__len];
|
||||
private static final Hash_adp_bry hash_by_bry = Hash_adp_bry.cs();
|
||||
public static final Wbase_claim_enum
|
||||
Itm__preferred = New(Tid__preferred , "preferred")
|
||||
, Itm__normal = New(Tid__normal , "normal")
|
||||
, Itm__deprecated = New(Tid__deprecated , "deprecated")
|
||||
, Itm__unknown = New(Tid__unknown , "unknown")
|
||||
public static final Wbase_enum_hash Reg = new Wbase_enum_hash("claim.rank", 4);
|
||||
public static final Wbase_enum_itm
|
||||
Itm__preferred = Reg.Add(Tid__preferred , "preferred")
|
||||
, Itm__normal = Reg.Add(Tid__normal , "normal")
|
||||
, Itm__deprecated = Reg.Add(Tid__deprecated , "deprecated")
|
||||
, Itm__unknown = Reg.Add(Tid__unknown , "unknown")
|
||||
;
|
||||
private static Wbase_claim_enum New(byte tid, String key) {
|
||||
Wbase_claim_enum rv = new Wbase_claim_enum(tid, key);
|
||||
hash_by_bry.Add(rv.Key_bry(), rv);
|
||||
Ary[tid] = rv;
|
||||
return rv;
|
||||
}
|
||||
public static byte To_tid_or_unknown(byte[] src) {
|
||||
Object obj = hash_by_bry.Get_by_bry(src);
|
||||
return obj == null ? Tid__unknown : ((Wbase_claim_enum)obj).Tid();
|
||||
}
|
||||
public static String To_str_or_fail(byte tid) {return Ary[tid].Key_str();}
|
||||
}
|
||||
@@ -16,15 +16,8 @@ You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.xtns.wbases.claims.enums; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*; import gplx.xowa.xtns.wbases.claims.*;
|
||||
public class Wbase_claim_type {
|
||||
public Wbase_claim_type(byte tid, String key_str, String key_for_scrib) {
|
||||
this.tid = tid;
|
||||
this.key_str = key_str;
|
||||
this.key_bry = Bry_.new_u8(key_str);
|
||||
public class Wbase_claim_type extends Wbase_enum_itm { public Wbase_claim_type(byte tid, String key_str, String key_for_scrib) {super(tid, key_str);
|
||||
this.key_for_scrib = key_for_scrib;
|
||||
}
|
||||
public byte Tid() {return tid;} private final byte tid;
|
||||
public String Key_str() {return key_str;} private final String key_str;
|
||||
public byte[] Key_bry() {return key_bry;} private final byte[] key_bry;
|
||||
public String Key_for_scrib() {return key_for_scrib;} private final String key_for_scrib;
|
||||
}
|
||||
|
||||
@@ -28,11 +28,8 @@ public class Wbase_claim_type_ {
|
||||
, Tid__monolingualtext = 6
|
||||
, Tid__entity = 7
|
||||
;
|
||||
private static final int Ary__len = 13;
|
||||
private static final Wbase_claim_type[] Ary = new Wbase_claim_type[Ary__len];
|
||||
private static final Hash_adp_bry hash_by_bry = Hash_adp_bry.cs();
|
||||
private static final Hash_adp hash_by_str = Hash_adp_.New();
|
||||
public static final Wbase_claim_type
|
||||
public static final Wbase_enum_hash Reg = new Wbase_enum_hash("claim.data_type", 8);
|
||||
public static final Wbase_enum_itm
|
||||
Itm__unknown = New(Tid__unknown , "unknown")
|
||||
, Itm__bad = New(Tid__bad , "bad") // NOTE: wikidata identifies several entries as "bad"; Q1615351|'s-Graveland, Q107538|Baco; DATE:2013-10-20
|
||||
, Itm__string = New(Tid__string , "string") // EX:wd:Property:P1030
|
||||
@@ -42,23 +39,10 @@ public class Wbase_claim_type_ {
|
||||
, Itm__monolingualtext = New(Tid__monolingualtext , "monolingualtext")
|
||||
, Itm__entity = New(Tid__entity , "wikibase-entityid" , "wikibase-item")
|
||||
;
|
||||
private static Wbase_claim_type New(byte tid, String key) {return New(tid, key, key);}
|
||||
private static Wbase_claim_type New(byte tid, String key, String scrib) {
|
||||
Wbase_claim_type rv = new Wbase_claim_type(tid, key, scrib);
|
||||
hash_by_bry.Add(rv.Key_bry(), rv);
|
||||
hash_by_str.Add(rv.Key_str(), rv);
|
||||
Ary[tid] = rv;
|
||||
return rv;
|
||||
}
|
||||
public static String To_key_or_unknown(byte tid) {return tid < Ary__len ? Ary[tid].Key_str() : Itm__unknown.Key_str();}
|
||||
public static String To_scrib_or_unknown(byte tid) {return tid < Ary__len ? Ary[tid].Key_for_scrib() : Itm__unknown.Key_str();}
|
||||
public static byte To_tid_or_unknown(byte[] src) {return To_tid_or_unknown(src, 0, src.length);}
|
||||
public static byte To_tid_or_unknown(byte[] src, int bgn, int end) {
|
||||
Object obj = hash_by_bry.Get_by_mid(src, bgn, end);
|
||||
return obj == null ? Tid__unknown : ((Wbase_claim_type)obj).Tid();
|
||||
}
|
||||
public static byte To_tid_or_unknown(String src) {
|
||||
Object obj = hash_by_str.Get_by(src);
|
||||
return obj == null ? Tid__unknown : ((Wbase_claim_type)obj).Tid();
|
||||
}
|
||||
private static Wbase_enum_itm New(byte tid, String key) {return New(tid, key, key);}
|
||||
private static Wbase_enum_itm New(byte tid, String key, String scrib) {return Reg.Add(new Wbase_claim_type(tid, key, scrib));}
|
||||
public static String Get_scrib_or_unknown(byte tid) {return ((Wbase_claim_type)Reg.Get_itm_or(tid, Itm__unknown)).Key_for_scrib();}
|
||||
public static byte Get_tid_or_unknown(String key) {return Get_tid_or_unknown(Bry_.new_u8(key));}
|
||||
public static byte Get_tid_or_unknown(byte[] key) {return Get_tid_or_unknown(key, 0, key.length);}
|
||||
public static byte Get_tid_or_unknown(byte[] key, int bgn, int end) {return Reg.Get_tid_or(key, bgn, end, Tid__unknown);}
|
||||
}
|
||||
@@ -22,22 +22,10 @@ public class Wbase_claim_value_type_ {
|
||||
, Tid__value = 1
|
||||
, Tid__somevalue = 2
|
||||
;
|
||||
private static final int Ary__len = 3;
|
||||
private static final Wbase_claim_enum[] Ary = new Wbase_claim_enum[Ary__len];
|
||||
private static final Hash_adp_bry hash_by_bry = Hash_adp_bry.cs();
|
||||
public static final Wbase_claim_enum
|
||||
Itm__novalue = New(Tid__novalue , "novalue")
|
||||
, Itm__value = New(Tid__value , "value")
|
||||
, Itm__somevalue = New(Tid__somevalue , "somevalue")
|
||||
public static final Wbase_enum_hash Reg = new Wbase_enum_hash("claim.value_type", 3);
|
||||
public static final Wbase_enum_itm
|
||||
Itm__novalue = Reg.Add(Tid__novalue , "novalue")
|
||||
, Itm__value = Reg.Add(Tid__value , "value")
|
||||
, Itm__somevalue = Reg.Add(Tid__somevalue , "somevalue")
|
||||
;
|
||||
private static Wbase_claim_enum New(byte tid, String key) {
|
||||
Wbase_claim_enum rv = new Wbase_claim_enum(tid, key);
|
||||
hash_by_bry.Add(rv.Key_bry(), rv);
|
||||
Ary[tid] = rv;
|
||||
return rv;
|
||||
}
|
||||
|
||||
public static String To_str_or_fail(byte tid) {return Ary[tid].Key_str();}
|
||||
public static byte[] To_bry_or_fail(byte tid) {return Ary[tid].Key_bry();}
|
||||
public static byte To_tid_or_fail(byte[] bry) {return ((Wbase_claim_enum)hash_by_bry.Get_by_or_fail(bry)).Tid();}
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
/*
|
||||
XOWA: the XOWA Offline Wiki Application
|
||||
Copyright (C) 2012 gnosygnu@gmail.com
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.xtns.wbases.claims.enums; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*; import gplx.xowa.xtns.wbases.claims.*;
|
||||
public class Wbase_enum_hash {
|
||||
private final Wbase_enum_itm[] ary; private final int ary_len;
|
||||
private final Hash_adp_bry hash_by_bry = Hash_adp_bry.cs();
|
||||
public Wbase_enum_hash(String name, int ary_len) {
|
||||
this.name = name;
|
||||
this.ary = new Wbase_enum_itm[ary_len];
|
||||
this.ary_len = ary_len;
|
||||
}
|
||||
public String Name() {return name;} private final String name;
|
||||
public Wbase_enum_itm Add(byte tid, String key) {return Add(new Wbase_enum_itm(tid, key));}
|
||||
public Wbase_enum_itm Add(Wbase_enum_itm rv) {
|
||||
hash_by_bry.Add(rv.Key_bry(), rv);
|
||||
ary[rv.Tid()] = rv;
|
||||
return rv;
|
||||
}
|
||||
public Wbase_enum_itm Get_itm_or(byte tid, Wbase_enum_itm or) {return tid < ary_len ? ary[tid] : or;}
|
||||
public String Get_str_or(byte tid, String or) {return tid < ary_len ? ary[tid].Key_str() : or;}
|
||||
public String Get_str_or_fail(byte tid) {return ary[tid].Key_str();}
|
||||
public byte[] Get_bry_or_fail(byte tid) {return ary[tid].Key_bry();}
|
||||
public byte Get_tid_or_fail(byte[] key) {return ((Wbase_enum_itm)hash_by_bry.Get_by_or_fail(key)).Tid();}
|
||||
public byte Get_tid_or_max_and_log(byte[] qid, String key) {return Get_tid_or_max_and_log(qid, Bry_.new_u8(key));}
|
||||
public byte Get_tid_or_max_and_log(byte[] qid, byte[] key) {
|
||||
Object rv_obj = hash_by_bry.Get_by(key);
|
||||
if (rv_obj == null) {
|
||||
Gfo_usr_dlg_.Instance.Warn_many("", "", "unknown enum key for wikibase; qid=~{0} enum=~{1} key=~{2}", qid, name, key);
|
||||
return Byte_.Max_value_127;
|
||||
}
|
||||
return ((Wbase_enum_itm)rv_obj).Tid();
|
||||
}
|
||||
public byte Get_tid_or(String key, byte or) {return Get_tid_or(Bry_.new_u8(key), or);}
|
||||
public byte Get_tid_or(byte[] key, byte or) {
|
||||
Object obj = hash_by_bry.Get_by_bry(key);
|
||||
return obj == null ? or : ((Wbase_enum_itm)obj).Tid();
|
||||
}
|
||||
public byte Get_tid_or(byte[] key, int bgn, int end, byte or) {
|
||||
Object obj = hash_by_bry.Get_by_mid(key, bgn, end);
|
||||
return obj == null ? or : ((Wbase_enum_itm)obj).Tid();
|
||||
}
|
||||
}
|
||||
@@ -16,8 +16,8 @@ You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.xtns.wbases.claims.enums; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*; import gplx.xowa.xtns.wbases.claims.*;
|
||||
public class Wbase_claim_enum {
|
||||
public Wbase_claim_enum(byte tid, String key_str) {
|
||||
public class Wbase_enum_itm {
|
||||
public Wbase_enum_itm(byte tid, String key_str) {
|
||||
this.tid = tid;
|
||||
this.key_str = key_str;
|
||||
this.key_bry = Bry_.new_u8(key_str);
|
||||
@@ -28,8 +28,8 @@ public class Wbase_claim_entity extends Wbase_claim_base {
|
||||
public byte[] Entity_id_bry() {return entity_id_bry;} private final byte[] entity_id_bry;
|
||||
public byte Entity_tid() {return entity_tid;} private final byte entity_tid;
|
||||
public boolean Entity_tid_is_qid() {return entity_tid == Wbase_claim_entity_type_.Tid__item;}
|
||||
public String Entity_tid_str() {return Wbase_claim_entity_type_.To_str_or_fail(entity_tid);}
|
||||
public byte[] Entity_tid_bry() {return Wbase_claim_entity_type_.To_bry_or_fail(entity_tid);}
|
||||
public String Entity_tid_str() {return Wbase_claim_entity_type_.Reg.Get_str_or_fail(entity_tid);}
|
||||
public byte[] Entity_tid_bry() {return Wbase_claim_entity_type_.Reg.Get_bry_or_fail(entity_tid);}
|
||||
|
||||
public byte[] Page_ttl_db() {
|
||||
return entity_tid == Wbase_claim_entity_type_.Tid__item
|
||||
@@ -45,6 +45,6 @@ public class Wbase_claim_entity extends Wbase_claim_base {
|
||||
}
|
||||
@Override public void Welcome(Wbase_claim_visitor visitor) {visitor.Visit_entity(this);}
|
||||
@Override public String toString() {// TEST:
|
||||
return String_.Concat_with_str("|", Wbase_claim_value_type_.To_str_or_fail(this.Snak_tid()), Wbase_claim_type_.To_key_or_unknown(this.Val_tid()), this.Entity_tid_str(), Int_.To_str(entity_id));
|
||||
return String_.Concat_with_str("|", Wbase_claim_value_type_.Reg.Get_str_or_fail(this.Snak_tid()), Wbase_claim_type_.Reg.Get_str_or_fail(this.Val_tid()), this.Entity_tid_str(), Int_.To_str(entity_id));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,18 +19,14 @@ package gplx.xowa.xtns.wbases.claims.itms; import gplx.*; import gplx.xowa.*; im
|
||||
import gplx.xowa.xtns.wbases.claims.enums.*;
|
||||
public class Wbase_claim_entity_ {
|
||||
public static final byte
|
||||
Tid__entity_type = 0
|
||||
, Tid__numeric_id = 1
|
||||
Tid__entity_type = 0 // EX: "entity-type":"item"
|
||||
, Tid__numeric_id = 1 // EX: "numeric-id":121410
|
||||
, Tid__id = 2 // EX: "id":"Q121410"
|
||||
;
|
||||
private static final Hash_adp_bry hash_by_bry = Hash_adp_bry.cs();
|
||||
public static final Wbase_claim_enum
|
||||
Itm__entity_type = New(Tid__entity_type , "entity-type")
|
||||
, Itm__numeric_id = New(Tid__numeric_id , "numeric-id")
|
||||
public static final Wbase_enum_hash Reg = new Wbase_enum_hash("claim.val.entity", 3);
|
||||
public static final Wbase_enum_itm
|
||||
Itm__entity_type = Reg.Add(Tid__entity_type , "entity-type")
|
||||
, Itm__numeric_id = Reg.Add(Tid__numeric_id , "numeric-id")
|
||||
, Itm__id = Reg.Add(Tid__id , "id")
|
||||
;
|
||||
private static Wbase_claim_enum New(byte tid, String key) {
|
||||
Wbase_claim_enum rv = new Wbase_claim_enum(tid, key);
|
||||
hash_by_bry.Add(rv.Key_bry(), rv);
|
||||
return rv;
|
||||
}
|
||||
public static byte To_tid_or_invalid(byte[] page_url, byte[] key) {return Wbase_claim_enum_.To_tid_or_invalid(hash_by_bry, page_url, key);}
|
||||
}
|
||||
|
||||
@@ -38,6 +38,6 @@ public class Wbase_claim_globecoordinate extends Wbase_claim_base {
|
||||
|
||||
@Override public void Welcome(Wbase_claim_visitor visitor) {visitor.Visit_globecoordinate(this);}
|
||||
@Override public String toString() {// TEST:
|
||||
return String_.Concat_with_str("|", Wbase_claim_value_type_.To_str_or_fail(this.Snak_tid()), Wbase_claim_type_.To_key_or_unknown(this.Val_tid()), String_.new_u8(lat), String_.new_u8(lng), String_.new_u8(alt), String_.new_u8(prc), String_.new_u8(glb));
|
||||
return String_.Concat_with_str("|", Wbase_claim_value_type_.Reg.Get_str_or_fail(this.Snak_tid()), Wbase_claim_type_.Reg.Get_str_or_fail(this.Val_tid()), String_.new_u8(lat), String_.new_u8(lng), String_.new_u8(alt), String_.new_u8(prc), String_.new_u8(glb));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,29 +25,14 @@ public class Wbase_claim_globecoordinate_ {
|
||||
, Tid__precision = 3
|
||||
, Tid__globe = 4
|
||||
;
|
||||
private static final int Ary__len = 5;
|
||||
private static final Wbase_claim_enum[] Ary = new Wbase_claim_enum[Ary__len];
|
||||
private static final Hash_adp_bry hash_by_bry = Hash_adp_bry.cs();
|
||||
private static final Hash_adp hash_by_str = Hash_adp_.New();
|
||||
public static final Wbase_claim_enum
|
||||
Itm__latitude = New(Tid__latitude , "latitude")
|
||||
, Itm__longitude = New(Tid__longitude , "longitude")
|
||||
, Itm__altitude = New(Tid__altitude , "altitude")
|
||||
, Itm__precision = New(Tid__precision , "precision")
|
||||
, Itm__globe = New(Tid__globe , "globe")
|
||||
public static final Wbase_enum_hash Reg = new Wbase_enum_hash("claim.val.globecoordinate", 5);
|
||||
public static final Wbase_enum_itm
|
||||
Itm__latitude = Reg.Add(Tid__latitude , "latitude")
|
||||
, Itm__longitude = Reg.Add(Tid__longitude , "longitude")
|
||||
, Itm__altitude = Reg.Add(Tid__altitude , "altitude")
|
||||
, Itm__precision = Reg.Add(Tid__precision , "precision")
|
||||
, Itm__globe = Reg.Add(Tid__globe , "globe")
|
||||
;
|
||||
private static Wbase_claim_enum New(byte tid, String key) {
|
||||
Wbase_claim_enum rv = new Wbase_claim_enum(tid, key);
|
||||
hash_by_bry.Add(rv.Key_bry(), rv);
|
||||
hash_by_str.Add(rv.Key_str(), rv);
|
||||
Ary[tid] = rv;
|
||||
return rv;
|
||||
}
|
||||
|
||||
public static String To_str_or_invalid(byte tid) {return Ary[tid].Key_str();}
|
||||
public static byte[] To_bry_or_fail(byte tid) {return Ary[tid].Key_bry();}
|
||||
public static byte To_tid_or_invalid(byte[] page_url, String key) {return Wbase_claim_enum_.To_tid_or_invalid(hash_by_str, page_url, key);}
|
||||
public static byte To_tid_or_invalid(byte[] page_url, byte[] key) {return Wbase_claim_enum_.To_tid_or_invalid(hash_by_bry, page_url, key);}
|
||||
|
||||
public static String
|
||||
Val_globe_dflt_str = "http://www.wikidata.org/entity/Q2"
|
||||
|
||||
@@ -27,6 +27,6 @@ public class Wbase_claim_monolingualtext extends Wbase_claim_base {
|
||||
|
||||
@Override public void Welcome(Wbase_claim_visitor visitor) {visitor.Visit_monolingualtext(this);}
|
||||
@Override public String toString() {// TEST:
|
||||
return String_.Concat_with_str("|", Wbase_claim_value_type_.To_str_or_fail(this.Snak_tid()), Wbase_claim_type_.To_key_or_unknown(this.Val_tid()), String_.new_u8(lang), String_.new_u8(text));
|
||||
return String_.Concat_with_str("|", Wbase_claim_value_type_.Reg.Get_str_or_fail(this.Snak_tid()), Wbase_claim_type_.Reg.Get_str_or_fail(this.Val_tid()), String_.new_u8(lang), String_.new_u8(text));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,21 +22,9 @@ public class Wbase_claim_monolingualtext_ {
|
||||
Tid__text = 0
|
||||
, Tid__language = 1
|
||||
;
|
||||
private static final int Ary__len = 2;
|
||||
private static final Wbase_claim_enum[] Ary = new Wbase_claim_enum[Ary__len];
|
||||
private static final Hash_adp_bry hash_by_bry = Hash_adp_bry.cs();
|
||||
public static final Wbase_claim_enum
|
||||
Itm__text = New(Tid__text , "text")
|
||||
, Itm__language = New(Tid__language , "language")
|
||||
public static final Wbase_enum_hash Reg = new Wbase_enum_hash("claim.val.monolingualtext", 2);
|
||||
public static final Wbase_enum_itm
|
||||
Itm__text = Reg.Add(Tid__text , "text")
|
||||
, Itm__language = Reg.Add(Tid__language , "language")
|
||||
;
|
||||
private static Wbase_claim_enum New(byte tid, String key) {
|
||||
Wbase_claim_enum rv = new Wbase_claim_enum(tid, key);
|
||||
hash_by_bry.Add(rv.Key_bry(), rv);
|
||||
Ary[tid] = rv;
|
||||
return rv;
|
||||
}
|
||||
|
||||
public static String To_str_or_invalid(byte tid) {return Ary[tid].Key_str();}
|
||||
public static byte[] To_bry_or_fail(byte tid) {return Ary[tid].Key_bry();}
|
||||
public static byte To_tid_or_invalid(byte[] page_url, byte[] key) {return Wbase_claim_enum_.To_tid_or_invalid(hash_by_bry, page_url, key);}
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ public class Wbase_claim_quantity extends Wbase_claim_base {
|
||||
|
||||
@Override public void Welcome(Wbase_claim_visitor visitor) {visitor.Visit_quantity(this);}
|
||||
@Override public String toString() {// TEST:
|
||||
return String_.Concat_with_str("|", Wbase_claim_value_type_.To_str_or_fail(this.Snak_tid()), Wbase_claim_type_.To_key_or_unknown(this.Val_tid()), String_.new_u8(amount), String_.new_u8(unit), String_.new_u8(ubound), String_.new_u8(lbound));
|
||||
return String_.Concat_with_str("|", Wbase_claim_value_type_.Reg.Get_str_or_fail(this.Snak_tid()), Wbase_claim_type_.Reg.Get_str_or_fail(this.Val_tid()), String_.new_u8(amount), String_.new_u8(unit), String_.new_u8(ubound), String_.new_u8(lbound));
|
||||
}
|
||||
public static final byte[] Unit_1 = Bry_.new_a7("1");
|
||||
}
|
||||
|
||||
@@ -24,26 +24,11 @@ public class Wbase_claim_quantity_ {
|
||||
, Tid__upperbound = 2
|
||||
, Tid__lowerbound = 3
|
||||
;
|
||||
private static final int Ary__len = 4;
|
||||
private static final Wbase_claim_enum[] Ary = new Wbase_claim_enum[Ary__len];
|
||||
private static final Hash_adp_bry hash_by_bry = Hash_adp_bry.cs();
|
||||
private static final Hash_adp hash_by_str = Hash_adp_.New();
|
||||
public static final Wbase_claim_enum
|
||||
Itm__amount = New(Tid__amount , "amount")
|
||||
, Itm__unit = New(Tid__unit , "unit")
|
||||
, Itm__upperbound = New(Tid__upperbound , "upperBound")
|
||||
, Itm__lowerbound = New(Tid__lowerbound , "lowerBound")
|
||||
public static final Wbase_enum_hash Reg = new Wbase_enum_hash("claim.val.quantity", 4);
|
||||
public static final Wbase_enum_itm
|
||||
Itm__amount = Reg.Add(Tid__amount , "amount")
|
||||
, Itm__unit = Reg.Add(Tid__unit , "unit")
|
||||
, Itm__upperbound = Reg.Add(Tid__upperbound , "upperBound")
|
||||
, Itm__lowerbound = Reg.Add(Tid__lowerbound , "lowerBound")
|
||||
;
|
||||
private static Wbase_claim_enum New(byte tid, String key) {
|
||||
Wbase_claim_enum rv = new Wbase_claim_enum(tid, key);
|
||||
hash_by_bry.Add(rv.Key_bry(), rv);
|
||||
hash_by_str.Add(rv.Key_str(), rv);
|
||||
Ary[tid] = rv;
|
||||
return rv;
|
||||
}
|
||||
|
||||
public static String To_str_or_invalid(byte tid) {return Ary[tid].Key_str();}
|
||||
public static byte[] To_bry_or_fail(byte tid) {return Ary[tid].Key_bry();}
|
||||
public static byte To_tid_or_invalid(byte[] page_url, String key) {return Wbase_claim_enum_.To_tid_or_invalid(hash_by_str, page_url, key);}
|
||||
public static byte To_tid_or_invalid(byte[] page_url, byte[] key) {return Wbase_claim_enum_.To_tid_or_invalid(hash_by_bry, page_url, key);}
|
||||
}
|
||||
|
||||
@@ -26,6 +26,6 @@ public class Wbase_claim_string extends Wbase_claim_base {
|
||||
|
||||
@Override public void Welcome(Wbase_claim_visitor visitor) {visitor.Visit_str(this);}
|
||||
@Override public String toString() {// TEST:
|
||||
return String_.Concat_with_str("|", Wbase_claim_value_type_.To_str_or_fail(this.Snak_tid()), Wbase_claim_type_.To_key_or_unknown(this.Val_tid()), String_.new_u8(val));
|
||||
return String_.Concat_with_str("|", Wbase_claim_value_type_.Reg.Get_str_or_fail(this.Snak_tid()), Wbase_claim_type_.Reg.Get_str_or_fail(this.Val_tid()), String_.new_u8(val));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -101,7 +101,7 @@ public class Wbase_claim_time extends Wbase_claim_base {
|
||||
}
|
||||
@Override public void Welcome(Wbase_claim_visitor visitor) {visitor.Visit_time(this);}
|
||||
@Override public String toString() {// TEST:
|
||||
return String_.Concat_with_str("|", Wbase_claim_value_type_.To_str_or_fail(this.Snak_tid()), Wbase_claim_type_.To_key_or_unknown(this.Val_tid()), String_.new_u8(time), String_.new_u8(before), String_.new_u8(after), String_.new_u8(precision), String_.new_u8(calendar));
|
||||
return String_.Concat_with_str("|", Wbase_claim_value_type_.Reg.Get_str_or_fail(this.Snak_tid()), Wbase_claim_type_.Reg.Get_str_or_fail(this.Val_tid()), String_.new_u8(time), String_.new_u8(before), String_.new_u8(after), String_.new_u8(precision), String_.new_u8(calendar));
|
||||
}
|
||||
public static final byte[] Calendar_julian = Bry_.new_a7("http://www.wikidata.org/entity/Q1985786");
|
||||
}
|
||||
|
||||
@@ -26,31 +26,15 @@ public class Wbase_claim_time_ {
|
||||
, Tid__precision = 4
|
||||
, Tid__calendarmodel = 5
|
||||
;
|
||||
private static final int Ary__len = 6;
|
||||
private static final Wbase_claim_enum[] Ary = new Wbase_claim_enum[Ary__len];
|
||||
private static final Hash_adp_bry hash_by_bry = Hash_adp_bry.cs();
|
||||
private static final Hash_adp hash_by_str = Hash_adp_.New();
|
||||
public static final Wbase_claim_enum
|
||||
Itm__time = New(Tid__time , "time")
|
||||
, Itm__timezone = New(Tid__timezone , "timezone")
|
||||
, Itm__before = New(Tid__before , "before")
|
||||
, Itm__after = New(Tid__after , "after")
|
||||
, Itm__precision = New(Tid__precision , "precision")
|
||||
, Itm__calendarmodel = New(Tid__calendarmodel , "calendarmodel")
|
||||
public static final Wbase_enum_hash Reg = new Wbase_enum_hash("claim.val.time", 6);
|
||||
public static final Wbase_enum_itm
|
||||
Itm__time = Reg.Add(Tid__time , "time")
|
||||
, Itm__timezone = Reg.Add(Tid__timezone , "timezone")
|
||||
, Itm__before = Reg.Add(Tid__before , "before")
|
||||
, Itm__after = Reg.Add(Tid__after , "after")
|
||||
, Itm__precision = Reg.Add(Tid__precision , "precision")
|
||||
, Itm__calendarmodel = Reg.Add(Tid__calendarmodel , "calendarmodel")
|
||||
;
|
||||
private static Wbase_claim_enum New(byte tid, String key) {
|
||||
Wbase_claim_enum rv = new Wbase_claim_enum(tid, key);
|
||||
hash_by_bry.Add(rv.Key_bry(), rv);
|
||||
hash_by_str.Add(rv.Key_str(), rv);
|
||||
Ary[tid] = rv;
|
||||
return rv;
|
||||
}
|
||||
|
||||
public static String To_str_or_invalid(byte tid) {return Ary[tid].Key_str();}
|
||||
public static byte[] To_bry_or_fail(byte tid) {return Ary[tid].Key_bry();}
|
||||
public static byte To_tid_or_invalid(byte[] page_url, String key) {return Wbase_claim_enum_.To_tid_or_invalid(hash_by_str, page_url, key);}
|
||||
public static byte To_tid_or_invalid(byte[] page_url, byte[] key) {return Wbase_claim_enum_.To_tid_or_invalid(hash_by_bry, page_url, key);}
|
||||
|
||||
public static final Wbase_data_itm
|
||||
Dflt__precision = Wbase_data_itm.New_int(11)
|
||||
, Dflt__before = Wbase_data_itm.New_int(0)
|
||||
|
||||
@@ -25,7 +25,7 @@ public class Wbase_claim_value extends Wbase_claim_base {
|
||||
|
||||
@Override public void Welcome(Wbase_claim_visitor visitor) {visitor.Visit_system(this);}
|
||||
@Override public String toString() {// TEST:
|
||||
return String_.Concat_with_str("|", Wbase_claim_value_type_.To_str_or_fail(this.Snak_tid()), Wbase_claim_type_.To_key_or_unknown(this.Val_tid()));
|
||||
return String_.Concat_with_str("|", Wbase_claim_value_type_.Reg.Get_str_or_fail(this.Snak_tid()), Wbase_claim_type_.Reg.Get_str_or_fail(this.Val_tid()));
|
||||
}
|
||||
|
||||
public static Wbase_claim_value New_novalue(int pid) {return new Wbase_claim_value(pid, Wbase_claim_type_.Tid__unknown , Wbase_claim_value_type_.Tid__novalue);}
|
||||
|
||||
@@ -16,41 +16,25 @@ You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.xtns.wbases.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
|
||||
import gplx.xowa.xtns.wbases.claims.enums.*;
|
||||
public class Wdata_dict_claim {
|
||||
public static final byte
|
||||
Tid_mainsnak = 0
|
||||
, Tid_type = 1
|
||||
, Tid_id = 2
|
||||
, Tid_rank = 3
|
||||
, Tid_references = 4
|
||||
, Tid_qualifiers = 5
|
||||
, Tid_qualifiers_order = 6
|
||||
Tid__mainsnak = 0
|
||||
, Tid__type = 1
|
||||
, Tid__id = 2
|
||||
, Tid__rank = 3
|
||||
, Tid__references = 4
|
||||
, Tid__qualifiers = 5
|
||||
, Tid__qualifiers_order = 6
|
||||
;
|
||||
public static String
|
||||
Str_mainsnak = "mainsnak"
|
||||
, Str_type = "type"
|
||||
, Str_id = "id"
|
||||
, Str_rank = "rank"
|
||||
, Str_references = "references"
|
||||
, Str_qualifiers = "qualifiers"
|
||||
, Str_qualifiers_order = "qualifiers-order"
|
||||
;
|
||||
public static byte[]
|
||||
Bry_mainsnak = Bry_.new_a7(Str_mainsnak)
|
||||
, Bry_type = Bry_.new_a7(Str_type)
|
||||
, Bry_id = Bry_.new_a7(Str_id)
|
||||
, Bry_rank = Bry_.new_a7(Str_rank)
|
||||
, Bry_references = Bry_.new_a7(Str_references)
|
||||
, Bry_qualifiers = Bry_.new_a7(Str_qualifiers)
|
||||
, Bry_qualifiers_order = Bry_.new_a7(Str_qualifiers_order)
|
||||
;
|
||||
public static final Hash_adp_bry Dict = Hash_adp_bry.cs()
|
||||
.Add_bry_byte(Bry_mainsnak , Tid_mainsnak)
|
||||
.Add_bry_byte(Bry_type , Tid_type)
|
||||
.Add_bry_byte(Bry_id , Tid_id)
|
||||
.Add_bry_byte(Bry_rank , Tid_rank)
|
||||
.Add_bry_byte(Bry_references , Tid_references)
|
||||
.Add_bry_byte(Bry_qualifiers , Tid_qualifiers)
|
||||
.Add_bry_byte(Bry_qualifiers_order , Tid_qualifiers_order)
|
||||
public static final Wbase_enum_hash Reg = new Wbase_enum_hash("core.claim", 7);
|
||||
public static final Wbase_enum_itm
|
||||
Itm__mainsnak = Reg.Add(Tid__mainsnak , "mainsnak")
|
||||
, Itm__type = Reg.Add(Tid__type , "type")
|
||||
, Itm__id = Reg.Add(Tid__id , "id")
|
||||
, Itm__rank = Reg.Add(Tid__rank , "rank")
|
||||
, Itm__references = Reg.Add(Tid__references , "references")
|
||||
, Itm__qualifiers = Reg.Add(Tid__qualifiers , "qualifiers")
|
||||
, Itm__qualifiers_order = Reg.Add(Tid__qualifiers_order , "qualifiers-order")
|
||||
;
|
||||
}
|
||||
|
||||
@@ -16,25 +16,17 @@ You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.xtns.wbases.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
|
||||
import gplx.xowa.xtns.wbases.claims.enums.*;
|
||||
public class Wdata_dict_datavalue {
|
||||
public static final byte
|
||||
Tid_value = 0
|
||||
, Tid_type = 1
|
||||
, Tid_error = 2
|
||||
Tid__value = 0
|
||||
, Tid__type = 1
|
||||
, Tid__error = 2
|
||||
;
|
||||
public static final String
|
||||
Str_value = "value"
|
||||
, Str_type = "type"
|
||||
, Str_error = "error"
|
||||
;
|
||||
public static byte[]
|
||||
Bry_value = Bry_.new_a7(Str_value)
|
||||
, Bry_type = Bry_.new_a7(Str_type)
|
||||
, Bry_error = Bry_.new_a7(Str_error)
|
||||
;
|
||||
public static final Hash_adp_bry Dict = Hash_adp_bry.cs()
|
||||
.Add_bry_byte(Bry_value , Tid_value)
|
||||
.Add_bry_byte(Bry_type , Tid_type)
|
||||
.Add_bry_byte(Bry_error , Tid_error)
|
||||
public static final Wbase_enum_hash Reg = new Wbase_enum_hash("core.datavalue", 3);
|
||||
public static final Wbase_enum_itm
|
||||
Itm__value = Reg.Add(Tid__value , "value")
|
||||
, Itm__type = Reg.Add(Tid__type , "type")
|
||||
, Itm__error = Reg.Add(Tid__error , "error")
|
||||
;
|
||||
}
|
||||
|
||||
@@ -16,21 +16,15 @@ You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.xtns.wbases.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
|
||||
import gplx.xowa.xtns.wbases.claims.enums.*;
|
||||
public class Wdata_dict_langtext {
|
||||
public static final byte
|
||||
Tid_language = 0
|
||||
, Tid_value = 1
|
||||
Tid__language = 0
|
||||
, Tid__value = 1
|
||||
;
|
||||
public static final String
|
||||
Str_language = "language"
|
||||
, Str_value = "value"
|
||||
;
|
||||
public static byte[]
|
||||
Bry_language = Bry_.new_a7(Str_language)
|
||||
, Bry_value = Bry_.new_a7(Str_value)
|
||||
;
|
||||
public static final Hash_adp_bry Dict = Hash_adp_bry.cs()
|
||||
.Add_bry_byte(Bry_language , Tid_language)
|
||||
.Add_bry_byte(Bry_value , Tid_value)
|
||||
public static final Wbase_enum_hash Reg = new Wbase_enum_hash("core.langtext", 2);
|
||||
public static final Wbase_enum_itm
|
||||
Itm__language = Reg.Add(Tid__language , "language")
|
||||
, Itm__value = Reg.Add(Tid__value , "value")
|
||||
;
|
||||
}
|
||||
|
||||
@@ -16,31 +16,23 @@ You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.xtns.wbases.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
|
||||
import gplx.xowa.xtns.wbases.claims.enums.*;
|
||||
public class Wdata_dict_mainsnak {
|
||||
public static final byte
|
||||
Tid_snaktype = 0
|
||||
, Tid_property = 1
|
||||
, Tid_hash = 2
|
||||
, Tid_datavalue = 3
|
||||
, Tid_type = 4
|
||||
, Tid_datatype = 5
|
||||
Tid__snaktype = 0
|
||||
, Tid__property = 1
|
||||
, Tid__hash = 2
|
||||
, Tid__datavalue = 3
|
||||
, Tid__type = 4
|
||||
, Tid__datatype = 5
|
||||
;
|
||||
public static final String
|
||||
Str_datavalue = "datavalue";
|
||||
public static byte[]
|
||||
Bry_snaktype = Bry_.new_a7("snaktype")
|
||||
, Bry_property = Bry_.new_a7("property")
|
||||
, Bry_hash = Bry_.new_a7("hash")
|
||||
, Bry_datavalue = Bry_.new_a7(Str_datavalue)
|
||||
, Bry_type = Bry_.new_a7("type")
|
||||
, Bry_datatype = Bry_.new_a7("datatype")
|
||||
;
|
||||
public static final Hash_adp_bry Dict = Hash_adp_bry.cs()
|
||||
.Add_bry_byte(Bry_snaktype , Tid_snaktype)
|
||||
.Add_bry_byte(Bry_property , Tid_property)
|
||||
.Add_bry_byte(Bry_hash , Tid_hash)
|
||||
.Add_bry_byte(Bry_datavalue , Tid_datavalue)
|
||||
.Add_bry_byte(Bry_type , Tid_type)
|
||||
.Add_bry_byte(Bry_datatype , Tid_datatype)
|
||||
public static final Wbase_enum_hash Reg = new Wbase_enum_hash("core.mainsnak", 6);
|
||||
public static final Wbase_enum_itm
|
||||
Itm__snaktype = Reg.Add(Tid__snaktype , "snaktype")
|
||||
, Itm__property = Reg.Add(Tid__property , "property")
|
||||
, Itm__hash = Reg.Add(Tid__hash , "hash")
|
||||
, Itm__datavalue = Reg.Add(Tid__datavalue, "datavalue")
|
||||
, Itm__type = Reg.Add(Tid__type , "type")
|
||||
, Itm__datatype = Reg.Add(Tid__datatype , "datatype")
|
||||
;
|
||||
}
|
||||
|
||||
@@ -16,41 +16,17 @@ You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.xtns.wbases.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
|
||||
import gplx.xowa.xtns.wbases.claims.enums.*;
|
||||
public class Wdata_dict_reference {
|
||||
public static final byte
|
||||
Tid_hash = 0
|
||||
, Tid_snaks = 1
|
||||
, Tid_snaks_order = 2
|
||||
Tid__hash = 0
|
||||
, Tid__snaks = 1
|
||||
, Tid__snaks_order = 2
|
||||
;
|
||||
public static final String
|
||||
Str_hash = "hash"
|
||||
, Str_snaks = "snaks"
|
||||
, Str_snaks_order = "snaks-order"
|
||||
public static final Wbase_enum_hash Reg = new Wbase_enum_hash("core.reference", 3);
|
||||
public static final Wbase_enum_itm
|
||||
Itm__hash = Reg.Add(Tid__hash , "hash")
|
||||
, Itm__snaks = Reg.Add(Tid__snaks , "snaks")
|
||||
, Itm__snaks_order = Reg.Add(Tid__snaks_order , "snaks-order")
|
||||
;
|
||||
public static final byte[]
|
||||
Bry_hash = Bry_.new_a7(Str_hash)
|
||||
, Bry_snaks = Bry_.new_a7(Str_snaks)
|
||||
, Bry_snaks_order = Bry_.new_a7(Str_snaks_order)
|
||||
;
|
||||
public static Hash_adp_bry Dict = Hash_adp_bry.cs()
|
||||
.Add_bry_byte(Bry_hash , Tid_hash)
|
||||
.Add_bry_byte(Bry_snaks , Tid_snaks)
|
||||
.Add_bry_byte(Bry_snaks_order , Tid_snaks_order)
|
||||
;
|
||||
public static String Xto_str(byte v) {
|
||||
switch (v) {
|
||||
case Tid_hash: return Str_hash;
|
||||
case Tid_snaks: return Str_snaks;
|
||||
case Tid_snaks_order: return Str_snaks_order;
|
||||
default: throw Err_.new_unhandled(v);
|
||||
}
|
||||
}
|
||||
public static byte[] Xto_bry(byte v) {
|
||||
switch (v) {
|
||||
case Tid_hash: return Bry_hash;
|
||||
case Tid_snaks: return Bry_snaks;
|
||||
case Tid_snaks_order: return Bry_snaks_order;
|
||||
default: throw Err_.new_unhandled(v);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,25 +16,17 @@ You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.xtns.wbases.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
|
||||
import gplx.xowa.xtns.wbases.claims.enums.*;
|
||||
public class Wdata_dict_sitelink {
|
||||
public static final byte
|
||||
Tid_site = 0
|
||||
, Tid_title = 1
|
||||
, Tid_badges = 2
|
||||
Tid__site = 0
|
||||
, Tid__title = 1
|
||||
, Tid__badges = 2
|
||||
;
|
||||
public static final String
|
||||
Str_site = "site"
|
||||
, Str_title = "title"
|
||||
, Str_badges = "badges"
|
||||
;
|
||||
public static byte[]
|
||||
Bry_site = Bry_.new_a7(Str_site)
|
||||
, Bry_title = Bry_.new_a7(Str_title)
|
||||
, Bry_badges = Bry_.new_a7(Str_badges)
|
||||
;
|
||||
public static final Hash_adp_bry Dict = Hash_adp_bry.cs()
|
||||
.Add_bry_byte(Bry_site , Tid_site)
|
||||
.Add_bry_byte(Bry_title , Tid_title)
|
||||
.Add_bry_byte(Bry_badges , Tid_badges)
|
||||
public static final Wbase_enum_hash Reg = new Wbase_enum_hash("core.sitelink", 3);
|
||||
public static final Wbase_enum_itm
|
||||
Itm__site = Reg.Add(Tid__site , "site")
|
||||
, Itm__title = Reg.Add(Tid__title , "title")
|
||||
, Itm__badges = Reg.Add(Tid__badges , "badges")
|
||||
;
|
||||
}
|
||||
|
||||
@@ -112,7 +112,7 @@ class Wdata_fmtr__claim_row implements gplx.core.brys.Bfr_arg {
|
||||
byte[] val = tmp_bfr.To_bry_and_clear();
|
||||
fmtr_qual.Init_by_claim(ttl, itm);
|
||||
fmtr_ref.Init_by_claim(ttl, itm);
|
||||
row_fmtr.Bld_bfr_many(bfr, Wbase_claim_rank_.To_str_or_fail(itm.Rank_tid()), val, fmtr_qual, fmtr_ref);
|
||||
row_fmtr.Bld_bfr_many(bfr, Wbase_claim_rank_.Reg.Get_str_or_fail(itm.Rank_tid()), val, fmtr_qual, fmtr_ref);
|
||||
}
|
||||
}
|
||||
private Bry_fmtr row_fmtr = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last
|
||||
|
||||
@@ -39,14 +39,14 @@ class Wdata_slink_grp {
|
||||
}
|
||||
public static int Idx_by_tid(int tid) {
|
||||
switch (tid) {
|
||||
case Xow_domain_tid_.Int__wikipedia: return Idx_w;
|
||||
case Xow_domain_tid_.Int__wiktionary: return Idx_d;
|
||||
case Xow_domain_tid_.Int__wikisource: return Idx_s;
|
||||
case Xow_domain_tid_.Int__wikivoyage: return Idx_v;
|
||||
case Xow_domain_tid_.Int__wikiquote: return Idx_q;
|
||||
case Xow_domain_tid_.Int__wikibooks: return Idx_b;
|
||||
case Xow_domain_tid_.Int__wikiversity: return Idx_u;
|
||||
case Xow_domain_tid_.Int__wikinews: return Idx_n;
|
||||
case Xow_domain_tid_.Tid__wikipedia: return Idx_w;
|
||||
case Xow_domain_tid_.Tid__wiktionary: return Idx_d;
|
||||
case Xow_domain_tid_.Tid__wikisource: return Idx_s;
|
||||
case Xow_domain_tid_.Tid__wikivoyage: return Idx_v;
|
||||
case Xow_domain_tid_.Tid__wikiquote: return Idx_q;
|
||||
case Xow_domain_tid_.Tid__wikibooks: return Idx_b;
|
||||
case Xow_domain_tid_.Tid__wikiversity: return Idx_u;
|
||||
case Xow_domain_tid_.Tid__wikinews: return Idx_n;
|
||||
default: return Idx_x;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,10 +36,11 @@ public class Wbase_claim_factory {
|
||||
byte[] entity_id_bry = null;
|
||||
for (int i = 0; i < len; ++i) {
|
||||
Json_kv sub = Json_kv.cast(nde.Get_at(i));
|
||||
byte tid = Wbase_claim_entity_.To_tid_or_invalid(qid, sub.Key().Data_bry()); if (tid == Wbase_claim_enum_.Tid__invalid) continue;
|
||||
byte tid = Wbase_claim_entity_.Reg.Get_tid_or_max_and_log(qid, sub.Key().Data_bry()); if (tid == Byte_.Max_value_127) continue;
|
||||
switch (tid) {
|
||||
case Wbase_claim_entity_.Tid__entity_type: entity_tid = Wbase_claim_entity_type_.To_tid_or_fail(sub.Val().Data_bry()); break;
|
||||
case Wbase_claim_entity_.Tid__entity_type: entity_tid = Wbase_claim_entity_type_.Reg.Get_tid_or_fail(sub.Val().Data_bry()); break;
|
||||
case Wbase_claim_entity_.Tid__numeric_id: entity_id_bry = sub.Val().Data_bry(); break;
|
||||
case Wbase_claim_entity_.Tid__id: break; // ignore
|
||||
}
|
||||
}
|
||||
if (entity_id_bry == null) throw Err_.new_wo_type("pid is invalid entity", "pid", pid);
|
||||
@@ -50,7 +51,7 @@ public class Wbase_claim_factory {
|
||||
byte[] lang = null, text = null;
|
||||
for (int i = 0; i < len; ++i) {
|
||||
Json_kv sub = Json_kv.cast(nde.Get_at(i));
|
||||
byte tid = Wbase_claim_monolingualtext_.To_tid_or_invalid(qid, sub.Key().Data_bry()); if (tid == Wbase_claim_enum_.Tid__invalid) continue;
|
||||
byte tid = Wbase_claim_monolingualtext_.Reg.Get_tid_or_max_and_log(qid, sub.Key().Data_bry()); if (tid == Byte_.Max_value_127) continue;
|
||||
byte[] sub_val_bry = sub.Val().Data_bry();
|
||||
switch (tid) {
|
||||
case Wbase_claim_monolingualtext_.Tid__text: text = sub_val_bry; break;
|
||||
@@ -65,7 +66,7 @@ public class Wbase_claim_factory {
|
||||
byte[] lat = null, lng = null, alt = null, prc = null, glb = null;
|
||||
for (int i = 0; i < len; ++i) {
|
||||
Json_kv sub = Json_kv.cast(nde.Get_at(i));
|
||||
byte tid = Wbase_claim_globecoordinate_.To_tid_or_invalid(qid, sub.Key().Data_bry()); if (tid == Wbase_claim_enum_.Tid__invalid) continue;
|
||||
byte tid = Wbase_claim_globecoordinate_.Reg.Get_tid_or_max_and_log(qid, sub.Key().Data_bry()); if (tid == Byte_.Max_value_127) continue;
|
||||
byte[] sub_val_bry = sub.Val().Data_bry();
|
||||
switch (tid) {
|
||||
case Wbase_claim_globecoordinate_.Tid__latitude: lat = sub_val_bry; break;
|
||||
@@ -83,7 +84,7 @@ public class Wbase_claim_factory {
|
||||
byte[] amount = null, unit = null, ubound = null, lbound = null;
|
||||
for (int i = 0; i < len; ++i) {
|
||||
Json_kv sub = Json_kv.cast(nde.Get_at(i));
|
||||
byte tid = Wbase_claim_quantity_.To_tid_or_invalid(qid, sub.Key().Data_bry()); if (tid == Wbase_claim_enum_.Tid__invalid) continue;
|
||||
byte tid = Wbase_claim_quantity_.Reg.Get_tid_or_max_and_log(qid, sub.Key().Data_bry()); if (tid == Byte_.Max_value_127) continue;
|
||||
byte[] sub_val_bry = sub.Val().Data_bry();
|
||||
switch (tid) {
|
||||
case Wbase_claim_quantity_.Tid__amount: amount = sub_val_bry; break;
|
||||
@@ -100,7 +101,7 @@ public class Wbase_claim_factory {
|
||||
byte[] time = null, timezone = null, before = null, after = null, precision = null, calendarmodel = null;
|
||||
for (int i = 0; i < len; ++i) {
|
||||
Json_kv sub = Json_kv.cast(nde.Get_at(i));
|
||||
byte tid = Wbase_claim_time_.To_tid_or_invalid(qid, sub.Key().Data_bry()); if (tid == Wbase_claim_enum_.Tid__invalid) continue;
|
||||
byte tid = Wbase_claim_time_.Reg.Get_tid_or_max_and_log(qid, sub.Key().Data_bry()); if (tid == Byte_.Max_value_127) continue;
|
||||
byte[] sub_val_bry = sub.Val().Data_bry();
|
||||
switch (tid) {
|
||||
case Wbase_claim_time_.Tid__time: time = sub_val_bry; break;
|
||||
|
||||
@@ -33,20 +33,19 @@ class Wdata_claims_parser_v2 {
|
||||
}
|
||||
private Wbase_claim_base Parse_claim_itm(byte[] qid, Json_nde nde, int pid) {
|
||||
int len = nde.Len();
|
||||
Hash_adp_bry dict = Wdata_dict_claim.Dict;
|
||||
byte rank_tid = Wbase_claim_rank_.Tid__unknown;
|
||||
Wbase_claim_base claim_itm = null; Wbase_claim_grp_list qualifiers = null; int[] qualifiers_order = null; Wbase_references_grp[] snaks_grp = null;
|
||||
for (int i = 0; i < len; ++i) {
|
||||
Json_kv sub = Json_kv.cast(nde.Get_at(i));
|
||||
byte tid = Wdata_dict_utl.Get_tid_or_invalid(qid, dict, sub.Key().Data_bry()); if (tid == Wbase_claim_enum_.Tid__invalid) continue;
|
||||
byte tid = Wdata_dict_claim.Reg.Get_tid_or_max_and_log(qid, sub.Key().Data_bry()); if (tid == Byte_.Max_value_127) continue;
|
||||
switch (tid) {
|
||||
case Wdata_dict_claim.Tid_mainsnak: claim_itm = Parse_mainsnak(qid, Json_nde.cast(sub.Val()), pid); break;
|
||||
case Wdata_dict_claim.Tid_rank: rank_tid = Wbase_claim_rank_.To_tid_or_unknown(sub.Val().Data_bry()); break;
|
||||
case Wdata_dict_claim.Tid_references: snaks_grp = Parse_references(qid, Json_ary.cast_or_null(sub.Val())); break;
|
||||
case Wdata_dict_claim.Tid_qualifiers: qualifiers = Parse_qualifiers(qid, Json_nde.cast(sub.Val())); break;
|
||||
case Wdata_dict_claim.Tid_qualifiers_order: qualifiers_order = Parse_pid_order(Json_ary.cast_or_null(sub.Val())); break;
|
||||
case Wdata_dict_claim.Tid_type: break; // ignore: "statement"
|
||||
case Wdata_dict_claim.Tid_id: break; // ignore: "Q2$F909BD1C-D34D-423F-9ED2-3493663321AF"
|
||||
case Wdata_dict_claim.Tid__mainsnak: claim_itm = Parse_mainsnak(qid, Json_nde.cast(sub.Val()), pid); break;
|
||||
case Wdata_dict_claim.Tid__rank: rank_tid = Wbase_claim_rank_.Reg.Get_tid_or(sub.Val().Data_bry(), Wbase_claim_rank_.Tid__unknown); break;
|
||||
case Wdata_dict_claim.Tid__references: snaks_grp = Parse_references(qid, Json_ary.cast_or_null(sub.Val())); break;
|
||||
case Wdata_dict_claim.Tid__qualifiers: qualifiers = Parse_qualifiers(qid, Json_nde.cast(sub.Val())); break;
|
||||
case Wdata_dict_claim.Tid__qualifiers_order: qualifiers_order = Parse_pid_order(Json_ary.cast_or_null(sub.Val())); break;
|
||||
case Wdata_dict_claim.Tid__type: break; // ignore: "statement"
|
||||
case Wdata_dict_claim.Tid__id: break; // ignore: "Q2$F909BD1C-D34D-423F-9ED2-3493663321AF"
|
||||
}
|
||||
}
|
||||
if (claim_itm != null) {
|
||||
@@ -68,15 +67,14 @@ class Wdata_claims_parser_v2 {
|
||||
}
|
||||
private Wbase_references_grp Parse_references_grp(byte[] qid, Json_nde owner) {
|
||||
int len = owner.Len();
|
||||
Hash_adp_bry dict = Wdata_dict_reference.Dict;
|
||||
Wbase_claim_grp_list snaks = null; int[] snaks_order = null;
|
||||
for (int i = 0; i < len; ++i) {
|
||||
Json_kv sub = Json_kv.cast(owner.Get_at(i));
|
||||
byte tid = Wdata_dict_utl.Get_tid_or_invalid(qid, dict, sub.Key().Data_bry()); if (tid == Wbase_claim_enum_.Tid__invalid) continue;
|
||||
byte tid = Wdata_dict_reference.Reg.Get_tid_or_max_and_log(qid, sub.Key().Data_bry()); if (tid == Byte_.Max_value_127) continue;
|
||||
switch (tid) {
|
||||
case Wdata_dict_reference.Tid_hash: break; // ignore: "b923b0d68beb300866b87ead39f61e63ec30d8af"
|
||||
case Wdata_dict_reference.Tid_snaks: snaks = Parse_qualifiers(qid, Json_nde.cast(sub.Val())); break;
|
||||
case Wdata_dict_reference.Tid_snaks_order: snaks_order = Parse_pid_order(Json_ary.cast_or_null(sub.Val())); break;
|
||||
case Wdata_dict_reference.Tid__hash: break; // ignore: "b923b0d68beb300866b87ead39f61e63ec30d8af"
|
||||
case Wdata_dict_reference.Tid__snaks: snaks = Parse_qualifiers(qid, Json_nde.cast(sub.Val())); break;
|
||||
case Wdata_dict_reference.Tid__snaks_order: snaks_order = Parse_pid_order(Json_ary.cast_or_null(sub.Val())); break;
|
||||
}
|
||||
}
|
||||
return new Wbase_references_grp(snaks, snaks_order);
|
||||
@@ -114,32 +112,30 @@ class Wdata_claims_parser_v2 {
|
||||
}
|
||||
public Wbase_claim_base Parse_mainsnak(byte[] qid, Json_nde nde, int pid) {
|
||||
int len = nde.Len();
|
||||
Hash_adp_bry dict = Wdata_dict_mainsnak.Dict;
|
||||
byte snak_tid = Byte_.Max_value_127;
|
||||
for (int i = 0; i < len; ++i) {
|
||||
Json_kv sub = Json_kv.cast(nde.Get_at(i));
|
||||
byte tid = Wdata_dict_utl.Get_tid_or_invalid(qid, dict, sub.Key().Data_bry()); if (tid == Wbase_claim_enum_.Tid__invalid) continue;
|
||||
byte tid = Wdata_dict_mainsnak.Reg.Get_tid_or_max_and_log(qid, sub.Key().Data_bry()); if (tid == Byte_.Max_value_127) continue;
|
||||
switch (tid) {
|
||||
case Wdata_dict_mainsnak.Tid_snaktype: snak_tid = Wbase_claim_value_type_.To_tid_or_fail(sub.Val().Data_bry()); break;
|
||||
case Wdata_dict_mainsnak.Tid_datavalue: return Parse_datavalue(qid, pid, snak_tid, Json_nde.cast(sub.Val()));
|
||||
case Wdata_dict_mainsnak.Tid_datatype: break; // ignore: has values like "wikibase-property"; EX: www.wikidata.org/wiki/Property:P397; DATE:2015-06-12
|
||||
case Wdata_dict_mainsnak.Tid_property: break; // ignore: pid already available above
|
||||
case Wdata_dict_mainsnak.Tid_hash: break; // ignore: "84487fc3f93b4f74ab1cc5a47d78f596f0b49390"
|
||||
case Wdata_dict_mainsnak.Tid__snaktype: snak_tid = Wbase_claim_value_type_.Reg.Get_tid_or_fail(sub.Val().Data_bry()); break;
|
||||
case Wdata_dict_mainsnak.Tid__datavalue: return Parse_datavalue(qid, pid, snak_tid, Json_nde.cast(sub.Val()));
|
||||
case Wdata_dict_mainsnak.Tid__datatype: break; // ignore: has values like "wikibase-property"; EX: www.wikidata.org/wiki/Property:P397; DATE:2015-06-12
|
||||
case Wdata_dict_mainsnak.Tid__property: break; // ignore: pid already available above
|
||||
case Wdata_dict_mainsnak.Tid__hash: break; // ignore: "84487fc3f93b4f74ab1cc5a47d78f596f0b49390"
|
||||
}
|
||||
}
|
||||
return new Wbase_claim_value(pid, Wbase_claim_type_.Tid__unknown, snak_tid); // NOTE: mainsnak can be null, especially for qualifiers; PAGE:Q2!P576; DATE:2014-09-20
|
||||
}
|
||||
public Wbase_claim_base Parse_datavalue(byte[] qid, int pid, byte snak_tid, Json_nde nde) {
|
||||
int len = nde.Len();
|
||||
Hash_adp_bry dict = Wdata_dict_datavalue.Dict;
|
||||
Json_itm value_itm = null; byte value_tid = Wbase_claim_type_.Tid__unknown;
|
||||
for (int i = 0; i < len; ++i) {
|
||||
Json_kv sub = Json_kv.cast(nde.Get_at(i));
|
||||
byte tid = Wdata_dict_utl.Get_tid_or_invalid(qid, dict, sub.Key().Data_bry()); if (tid == Wbase_claim_enum_.Tid__invalid) continue;
|
||||
byte tid = Wdata_dict_datavalue.Reg.Get_tid_or_max_and_log(qid, sub.Key().Data_bry()); if (tid == Byte_.Max_value_127) continue;
|
||||
switch (tid) {
|
||||
case Wdata_dict_datavalue.Tid_type: value_tid = Wbase_claim_type_.To_tid_or_unknown(sub.Val().Data_bry()); break;
|
||||
case Wdata_dict_datavalue.Tid_value: value_itm = sub.Val(); break;
|
||||
case Wdata_dict_datavalue.Tid_error: break; // ignore: "Can only construct GlobeCoordinateValue with a String globe parameter"
|
||||
case Wdata_dict_datavalue.Tid__type: value_tid = Wbase_claim_type_.Get_tid_or_unknown(sub.Val().Data_bry()); break;
|
||||
case Wdata_dict_datavalue.Tid__value: value_itm = sub.Val(); break;
|
||||
case Wdata_dict_datavalue.Tid__error: break; // ignore: "Can only construct GlobeCoordinateValue with a String globe parameter"
|
||||
}
|
||||
}
|
||||
return factory.Parse(qid, pid, snak_tid, nde, value_tid, value_itm);
|
||||
|
||||
@@ -177,14 +177,14 @@ public class Wdata_doc_parser_v1 implements Wdata_doc_parser {
|
||||
return rv;
|
||||
}
|
||||
private Wbase_claim_base New_prop_by_m(byte[] src, Json_ary ary) {
|
||||
byte snak_tid = Wbase_claim_value_type_.To_tid_or_fail(ary.Get_at(0).Data_bry());
|
||||
byte snak_tid = Wbase_claim_value_type_.Reg.Get_tid_or_fail(ary.Get_at(0).Data_bry());
|
||||
int pid = Json_itm_int.cast(ary.Get_at(1)).Data_as_int();
|
||||
switch (snak_tid) {
|
||||
case Wbase_claim_value_type_.Tid__novalue : return Wbase_claim_value.New_novalue(pid);
|
||||
case Wbase_claim_value_type_.Tid__somevalue : return Wbase_claim_value.New_somevalue(pid);
|
||||
}
|
||||
Json_itm val_tid_itm = ary.Get_at(2);
|
||||
byte val_tid = Wbase_claim_type_.To_tid_or_unknown(src, val_tid_itm.Src_bgn(), val_tid_itm.Src_end());
|
||||
byte val_tid = Wbase_claim_type_.Get_tid_or_unknown(src, val_tid_itm.Src_bgn(), val_tid_itm.Src_end());
|
||||
return Make_itm(pid, snak_tid, val_tid, ary);
|
||||
}
|
||||
private Wbase_claim_base Make_itm(int pid, byte snak_tid, byte val_tid, Json_ary ary) {
|
||||
|
||||
@@ -31,7 +31,6 @@ public class Wdata_doc_parser_v2 implements Wdata_doc_parser {
|
||||
Json_nde list_nde = Json_nde.cast(doc.Get_grp(Bry_sitelinks)); if (list_nde == null) return Wdata_doc_parser_v1.Empty_ordered_hash_bry;
|
||||
Ordered_hash rv = Ordered_hash_.New_bry();
|
||||
int list_len = list_nde.Len();
|
||||
Hash_adp_bry dict = Wdata_dict_sitelink.Dict;
|
||||
for (int i = 0; i < list_len; ++i) {
|
||||
Json_kv data_kv = Json_kv.cast(list_nde.Get_at(i));
|
||||
Json_nde data_nde = Json_nde.cast(data_kv.Val());
|
||||
@@ -39,11 +38,11 @@ public class Wdata_doc_parser_v2 implements Wdata_doc_parser {
|
||||
Json_kv site_kv = null, name_kv = null; Json_ary badges_ary = null;
|
||||
for (int j = 0; j < data_nde_len; ++j) {
|
||||
Json_kv sub = Json_kv.cast(data_nde.Get_at(j));
|
||||
byte tid = Wdata_dict_utl.Get_tid_or_invalid(qid, dict, sub.Key().Data_bry()); if (tid == Wbase_claim_enum_.Tid__invalid) continue;
|
||||
byte tid = Wdata_dict_sitelink.Reg.Get_tid_or_max_and_log(qid, sub.Key().Data_bry()); if (tid == Byte_.Max_value_127) continue;
|
||||
switch (tid) {
|
||||
case Wdata_dict_sitelink.Tid_site: site_kv = Json_kv.cast(sub); break;
|
||||
case Wdata_dict_sitelink.Tid_title: name_kv = Json_kv.cast(sub); break;
|
||||
case Wdata_dict_sitelink.Tid_badges: badges_ary = Json_ary.cast_or_null(Json_kv.cast(sub).Val()); break;
|
||||
case Wdata_dict_sitelink.Tid__site: site_kv = Json_kv.cast(sub); break;
|
||||
case Wdata_dict_sitelink.Tid__title: name_kv = Json_kv.cast(sub); break;
|
||||
case Wdata_dict_sitelink.Tid__badges: badges_ary = Json_ary.cast_or_null(Json_kv.cast(sub).Val()); break;
|
||||
}
|
||||
}
|
||||
byte[] site_bry = site_kv.Val().Data_bry();
|
||||
@@ -59,7 +58,6 @@ public class Wdata_doc_parser_v2 implements Wdata_doc_parser {
|
||||
Json_nde list_nde = Json_nde.cast(doc.Get_grp(langval_key)); if (list_nde == null) return Wdata_doc_parser_v1.Empty_ordered_hash_bry;
|
||||
Ordered_hash rv = Ordered_hash_.New_bry();
|
||||
int list_len = list_nde.Len();
|
||||
Hash_adp_bry dict = Wdata_dict_langtext.Dict;
|
||||
for (int i = 0; i < list_len; ++i) {
|
||||
Json_kv data_kv = Json_kv.cast(list_nde.Get_at(i));
|
||||
Json_nde data_nde = Json_nde.cast(data_kv.Val());
|
||||
@@ -67,10 +65,10 @@ public class Wdata_doc_parser_v2 implements Wdata_doc_parser {
|
||||
int data_nde_len = data_nde.Len();
|
||||
for (int j = 0; j < data_nde_len; ++j) {
|
||||
Json_kv sub = Json_kv.cast(data_nde.Get_at(j));
|
||||
byte tid = Wdata_dict_utl.Get_tid_or_invalid(qid, dict, sub.Key().Data_bry()); if (tid == Wbase_claim_enum_.Tid__invalid) continue;
|
||||
byte tid = Wdata_dict_langtext.Reg.Get_tid_or_max_and_log(qid, sub.Key().Data_bry()); if (tid == Byte_.Max_value_127) continue;
|
||||
switch (tid) {
|
||||
case Wdata_dict_langtext.Tid_language: break;
|
||||
case Wdata_dict_langtext.Tid_value: text_kv = Json_kv.cast(sub); break;
|
||||
case Wdata_dict_langtext.Tid__language: break;
|
||||
case Wdata_dict_langtext.Tid__value: text_kv = Json_kv.cast(sub); break;
|
||||
}
|
||||
}
|
||||
byte[] lang_bry = data_kv.Key().Data_bry();
|
||||
@@ -85,7 +83,6 @@ public class Wdata_doc_parser_v2 implements Wdata_doc_parser {
|
||||
Json_nde list_nde = Json_nde.cast(doc.Get_grp(Bry_aliases)); if (list_nde == null) return Wdata_doc_parser_v1.Empty_ordered_hash_bry;
|
||||
Ordered_hash rv = Ordered_hash_.New_bry();
|
||||
int list_len = list_nde.Len();
|
||||
Hash_adp_bry dict = Wdata_dict_langtext.Dict;
|
||||
for (int i = 0; i < list_len; ++i) {
|
||||
Json_kv data_kv = Json_kv.cast(list_nde.Get_at(i));
|
||||
Json_ary vals_ary = Json_ary.cast_or_null(data_kv.Val());
|
||||
@@ -96,10 +93,10 @@ public class Wdata_doc_parser_v2 implements Wdata_doc_parser {
|
||||
int k_len = lang_nde.Len();
|
||||
for (int k = 0; k < k_len; ++k) {
|
||||
Json_kv sub = Json_kv.cast(lang_nde.Get_at(k));
|
||||
byte tid = Wdata_dict_utl.Get_tid_or_invalid(qid, dict, sub.Key().Data_bry()); if (tid == Wbase_claim_enum_.Tid__invalid) continue;
|
||||
byte tid = Wdata_dict_langtext.Reg.Get_tid_or_max_and_log(qid, sub.Key().Data_bry()); if (tid == Byte_.Max_value_127) continue;
|
||||
switch (tid) {
|
||||
case Wdata_dict_langtext.Tid_language: break;
|
||||
case Wdata_dict_langtext.Tid_value: vals[j] = sub.Val().Data_bry(); break;
|
||||
case Wdata_dict_langtext.Tid__language: break;
|
||||
case Wdata_dict_langtext.Tid__value: vals[j] = sub.Val().Data_bry(); break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -57,7 +57,7 @@ class Wdata_itemByTitle_page_fxt {
|
||||
parser_fxt.Init_page_create(app.Wiki_mgr().Wdata_mgr().Wdata_wiki(), qid_ttl, text);
|
||||
}
|
||||
public void Init_wdata_label(String wmf_key_str, String wdata_label, String qid) {
|
||||
wdata_fxt.Init_qids_add("en", Xow_domain_tid_.Int__wikipedia, wdata_label, qid);
|
||||
wdata_fxt.Init_qids_add("en", Xow_domain_tid_.Tid__wikipedia, wdata_label, qid);
|
||||
}
|
||||
public void Test_open(String link, String expd) {
|
||||
Xoae_page page = wiki.Parser_mgr().Ctx().Page();
|
||||
|
||||
Reference in New Issue
Block a user