1
0
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:
gnosygnu
2016-09-11 21:49:20 -04:00
parent 232838c732
commit 35d78f6106
310 changed files with 4358 additions and 5116 deletions

View File

@@ -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");

View File

@@ -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()) {

View File

@@ -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);

View File

@@ -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;

View File

@@ -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();

View File

@@ -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");

View File

@@ -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();}
}

View File

@@ -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;
}

View File

@@ -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();}
}

View File

@@ -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;
}

View File

@@ -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);}
}

View File

@@ -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();}
}

View File

@@ -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();
}
}

View File

@@ -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);

View File

@@ -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));
}
}

View File

@@ -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);}
}

View File

@@ -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));
}
}

View File

@@ -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"

View File

@@ -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));
}
}

View File

@@ -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);}
}

View File

@@ -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");
}

View File

@@ -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);}
}

View File

@@ -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));
}
}

View File

@@ -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");
}

View File

@@ -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)

View File

@@ -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);}

View File

@@ -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")
;
}

View File

@@ -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")
;
}

View File

@@ -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")
;
}

View File

@@ -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")
;
}

View File

@@ -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);
}
}
}

View File

@@ -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")
;
}

View File

@@ -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

View File

@@ -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;
}
}

View File

@@ -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;

View File

@@ -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);

View File

@@ -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) {

View File

@@ -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;
}
}
}

View File

@@ -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();