"
, ""
), "elem_id", "lnki_href", "lnki_class", "xowa_title", "lnki_src", "lnki_width", "lnki_height", "lnki_alt", "lnki_url", "play_width", "play_max_width", "play_icon");
- public Bry_fmtr Html_alts() {return html_alts;} private final Bry_fmtr html_alts = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last
+ public Bry_fmtr Html_alts() {return html_alts;} private final Bry_fmtr html_alts = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last
( " "
, " ~{thumb_width} × ~{thumb_height}"
, " "
diff --git a/400_xowa/src/gplx/xowa/htmls/portal/Xoh_page_body_cls.java b/400_xowa/src/gplx/xowa/htmls/portal/Xoh_page_body_cls.java
index 3295ddf3a..f3ff378a7 100644
--- a/400_xowa/src/gplx/xowa/htmls/portal/Xoh_page_body_cls.java
+++ b/400_xowa/src/gplx/xowa/htmls/portal/Xoh_page_body_cls.java
@@ -16,7 +16,7 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
package gplx.xowa.htmls.portal; import gplx.*; import gplx.xowa.*; import gplx.xowa.htmls.*;
-import gplx.xowa.wikis.*; import gplx.xowa.xtns.wdatas.*;
+import gplx.xowa.wikis.*; import gplx.xowa.xtns.wbases.*;
import gplx.xowa.wikis.nss.*;
public class Xoh_page_body_cls { // REF.MW:Skin.php|getPageClasses
public static byte[] Calc(Bry_bfr tmp_bfr, Xoa_ttl ttl, int page_tid) {
diff --git a/400_xowa/src/gplx/xowa/htmls/portal/Xoh_page_body_cls_tst.java b/400_xowa/src/gplx/xowa/htmls/portal/Xoh_page_body_cls_tst.java
index df9e7169b..717a5bc74 100644
--- a/400_xowa/src/gplx/xowa/htmls/portal/Xoh_page_body_cls_tst.java
+++ b/400_xowa/src/gplx/xowa/htmls/portal/Xoh_page_body_cls_tst.java
@@ -16,7 +16,7 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
package gplx.xowa.htmls.portal; import gplx.*; import gplx.xowa.*; import gplx.xowa.htmls.*;
-import org.junit.*; import gplx.xowa.wikis.*; import gplx.xowa.xtns.wdatas.*;
+import org.junit.*; import gplx.xowa.wikis.*; import gplx.xowa.xtns.wbases.*;
public class Xoh_page_body_cls_tst {
@Before public void init() {} private Xoh_page_body_cls_fxt fxt = new Xoh_page_body_cls_fxt();
@Test public void Escape_cls() {
diff --git a/400_xowa/src/gplx/xowa/htmls/portal/vnts/Vnt_mnu_grp_fmtr.java b/400_xowa/src/gplx/xowa/htmls/portal/vnts/Vnt_mnu_grp_fmtr.java
index 1e8000c14..5d015627d 100644
--- a/400_xowa/src/gplx/xowa/htmls/portal/vnts/Vnt_mnu_grp_fmtr.java
+++ b/400_xowa/src/gplx/xowa/htmls/portal/vnts/Vnt_mnu_grp_fmtr.java
@@ -19,7 +19,7 @@ package gplx.xowa.htmls.portal.vnts; import gplx.*; import gplx.xowa.*; import g
import gplx.core.brys.fmtrs.*;
import gplx.xowa.langs.vnts.*;
public class Vnt_mnu_grp_fmtr implements gplx.core.brys.Bfr_arg {
- private final Xolg_vnt_itm_fmtr itm_fmtr = new Xolg_vnt_itm_fmtr();
+ private final Xolg_vnt_itm_fmtr itm_fmtr = new Xolg_vnt_itm_fmtr();
private Xol_vnt_regy mgr; private byte[] page_vnt;
public void Init(Xol_vnt_regy mgr, byte[] wiki_domain, byte[] page_href, byte[] page_vnt) {
this.mgr = mgr; this.page_vnt = page_vnt;
@@ -29,7 +29,7 @@ public class Vnt_mnu_grp_fmtr implements gplx.core.brys.Bfr_arg {
Xol_vnt_itm mnu_itm = mgr.Get_by(page_vnt);
fmtr.Bld_bfr_many(bfr, mnu_itm == null ? Bry_.Empty : mnu_itm.Name(), itm_fmtr);
}
- private static final Bry_fmtr fmtr = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last
+ private static final Bry_fmtr fmtr = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last
( ""
, "
"
, "
~{grp_text}
"
@@ -53,8 +53,8 @@ class Xolg_vnt_itm_fmtr implements gplx.core.brys.Bfr_arg {
fmtr.Bld_bfr_many(bfr, i, itm_cls_selected, wiki_domain, itm.Key(), itm.Name(), page_href);
}
}
- private static final byte[] Itm_cls_selected_y = Bry_.new_a7(" class='selected'");
- private static final Bry_fmtr fmtr = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last // NOTE: using "/site/zh.w/zh-hans/A" instead of "/zh-hans/A" b/c it is easier for href_parser; if /site/ ever needs to truly mean "not-this-site", then change this to "/lang/"; DATE:2015-07-30
+ private static final byte[] Itm_cls_selected_y = Bry_.new_a7(" class='selected'");
+ private static final Bry_fmtr fmtr = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last // NOTE: using "/site/zh.w/zh-hans/A" instead of "/zh-hans/A" b/c it is easier for href_parser; if /site/ ever needs to truly mean "not-this-site", then change this to "/lang/"; DATE:2015-07-30
( ""
, "
"
), "itm_idx", "itm_cls_selected", "wiki_domain", "itm_lang", "itm_text", "itm_href"
diff --git a/400_xowa/src/gplx/xowa/langs/Xoa_lang_mgr.java b/400_xowa/src/gplx/xowa/langs/Xoa_lang_mgr.java
index 56e3b8dc9..d43e1a422 100644
--- a/400_xowa/src/gplx/xowa/langs/Xoa_lang_mgr.java
+++ b/400_xowa/src/gplx/xowa/langs/Xoa_lang_mgr.java
@@ -16,15 +16,17 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
package gplx.xowa.langs; import gplx.*; import gplx.xowa.*;
-import gplx.xowa.apps.fsys.*;
-import gplx.xowa.langs.bldrs.*;
+import gplx.xowa.apps.fsys.*; import gplx.xowa.apps.gfs.*;
+import gplx.xowa.langs.bldrs.*;
public class Xoa_lang_mgr implements Gfo_invk {
private final Ordered_hash hash = Ordered_hash_.New_bry();
private final Xobc_utl_make_lang mw_converter;
- public Xoa_lang_mgr(Xoa_app app) {
+ public Xoa_lang_mgr(Xoa_app app, Xoa_gfs_mgr gfs_mgr) {
this.mw_converter = new Xobc_utl_make_lang(this, app.Fsys_mgr(), app.Tid_is_edit() ? ((Xoae_app)app).Msg_log() : null);
this.lang_en = Xol_lang_itm_.Lang_en_make(this); this.Add(lang_en);
+ this.gfs_mgr = gfs_mgr;
}
+ public Xoa_gfs_mgr Gfs_mgr() {return gfs_mgr;} private final Xoa_gfs_mgr gfs_mgr;
public Xol_lang_itm Lang_en() {return lang_en;} private final Xol_lang_itm lang_en;
public void Clear() {hash.Clear();}
public int Len() {return hash.Count();}
diff --git a/400_xowa/src/gplx/xowa/langs/Xol_lang_itm.java b/400_xowa/src/gplx/xowa/langs/Xol_lang_itm.java
index 084281178..3e644979a 100644
--- a/400_xowa/src/gplx/xowa/langs/Xol_lang_itm.java
+++ b/400_xowa/src/gplx/xowa/langs/Xol_lang_itm.java
@@ -18,7 +18,7 @@ along with this program. If not, see .
package gplx.xowa.langs; import gplx.*; import gplx.xowa.*;
import gplx.core.envs.*;
import gplx.gfui.draws.*;
-import gplx.xowa.langs.cases.*; import gplx.xowa.langs.msgs.*; import gplx.xowa.langs.kwds.*; import gplx.xowa.langs.grammars.*; import gplx.xowa.langs.genders.*; import gplx.xowa.langs.plurals.*; import gplx.xowa.langs.vnts.*; import gplx.xowa.langs.vnts.converts.*; import gplx.xowa.langs.numbers.*; import gplx.xowa.langs.durations.*; import gplx.xowa.langs.lnki_trails.*; import gplx.xowa.langs.funcs.*; import gplx.xowa.langs.specials.*; import gplx.xowa.langs.bldrs.*;
+import gplx.xowa.langs.cases.*; import gplx.xowa.langs.msgs.*; import gplx.xowa.langs.kwds.*; import gplx.xowa.langs.grammars.*; import gplx.xowa.langs.genders.*; import gplx.xowa.langs.plurals.*; import gplx.xowa.langs.vnts.*; import gplx.xowa.langs.vnts.converts.*; import gplx.xowa.langs.numbers.*; import gplx.xowa.langs.durations.*; import gplx.xowa.langs.lnki_trails.*; import gplx.xowa.langs.funcs.*; import gplx.xowa.langs.specials.*; import gplx.xowa.langs.bldrs.*; import gplx.xowa.langs.commas.*;
import gplx.xowa.apps.gfs.*; import gplx.xowa.apps.fsys.*; import gplx.core.intls.*; import gplx.xowa.wikis.nss.*; import gplx.xowa.xtns.lst.*; import gplx.xowa.wikis.caches.*; import gplx.xowa.parsers.lnkis.*;
import gplx.xowa.guis.langs.*;
public class Xol_lang_itm implements Gfo_invk {
@@ -55,6 +55,7 @@ public class Xol_lang_itm implements Gfo_invk {
public Xol_case_mgr Case_mgr() {return case_mgr;} private Xol_case_mgr case_mgr;
public void Case_mgr_u8_() {case_mgr = Xol_case_mgr_.U8();} // TEST:
public Xol_lang_itm Case_mgr_(Xol_case_mgr v) {this.case_mgr = v; return this;} // TEST:
+ public Xol_comma_wkr Comma_wkr() {return comma_wkr;} private final Xol_comma_wkr comma_wkr = new Xol_comma_wkr__add();
public Xol_font_info Gui_font() {return gui_font;} private final Xol_font_info gui_font = new Xol_font_info(null, 0, FontStyleAdp_.Plain);
public byte[] Fallback_bry() {return fallback_bry;}
public Xol_lang_itm Fallback_bry_(byte[] v) {
@@ -83,6 +84,7 @@ public class Xol_lang_itm implements Gfo_invk {
public void Evt_lang_changed() {
lnki_arg_parser.Evt_lang_changed(this);
func_regy.Evt_lang_changed(this);
+ comma_wkr.Evt_lang_changed(this);
}
private byte[] X_axis_end() {return dir_ltr ? X_axis_end_right : X_axis_end_left;}
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
@@ -102,7 +104,7 @@ public class Xol_lang_itm implements Gfo_invk {
else if (ctx.Match(k, Invk_link_trail)) return lnki_trail_mgr;
else if (ctx.Match(k, Invk_x_axis_end)) return String_.new_u8(X_axis_end());
else if (ctx.Match(k, Invk_this)) return this;
- else if (ctx.Match(k, Xoae_app.Invk_app)) return Xoa_app_.Gfs_mgr().Root_invk();
+ else if (ctx.Match(k, Xoae_app.Invk_app)) return lang_mgr.Gfs_mgr().Root_invk();
else return Gfo_invk_.Rv_unhandled;
return this;
}
@@ -137,7 +139,7 @@ public class Xol_lang_itm implements Gfo_invk {
fallback_dupes_regy.Del(fallback_lang);
}
private void Load_lang(byte[] v) {
- Xoa_gfs_mgr gfs_mgr = Xoa_app_.Gfs_mgr(); Xoa_fsys_mgr app_fsys_mgr = gfs_mgr.App_fsys_mgr();
+ Xoa_gfs_mgr gfs_mgr = lang_mgr.Gfs_mgr(); Xoa_fsys_mgr app_fsys_mgr = gfs_mgr.App_fsys_mgr();
gfs_mgr.Run_url_for(this, Xol_lang_itm_.xo_lang_fil_(app_fsys_mgr, String_.new_a7(v)));
gfs_mgr.Run_url_for(gfs_mgr.Root_invk(), Xol_convert_regy.Bld_url(app_fsys_mgr, key_str));
}
diff --git a/400_xowa/src/gplx/xowa/langs/bldrs/Xol_mw_lang_parser.java b/400_xowa/src/gplx/xowa/langs/bldrs/Xol_mw_lang_parser.java
index c1016405e..21ce8f173 100644
--- a/400_xowa/src/gplx/xowa/langs/bldrs/Xol_mw_lang_parser.java
+++ b/400_xowa/src/gplx/xowa/langs/bldrs/Xol_mw_lang_parser.java
@@ -344,24 +344,24 @@ public class Xol_mw_lang_parser {
public static int Id_by_mw_name(byte[] src) {
if (mw_names == null) {
mw_names = Btrie_slim_mgr.cs();
- mw_names.Add_obj("NS_MEDIA", Int_obj_val.new_(Xow_ns_.Tid__media));
- mw_names.Add_obj("NS_SPECIAL", Int_obj_val.new_(Xow_ns_.Tid__special));
- mw_names.Add_obj("NS_MAIN", Int_obj_val.new_(Xow_ns_.Tid__main));
- mw_names.Add_obj("NS_TALK", Int_obj_val.new_(Xow_ns_.Tid__talk));
- mw_names.Add_obj("NS_USER", Int_obj_val.new_(Xow_ns_.Tid__user));
- mw_names.Add_obj("NS_USER_TALK", Int_obj_val.new_(Xow_ns_.Tid__user_talk));
- mw_names.Add_obj("NS_PROJECT", Int_obj_val.new_(Xow_ns_.Tid__project));
- mw_names.Add_obj("NS_PROJECT_TALK", Int_obj_val.new_(Xow_ns_.Tid__project_talk));
- mw_names.Add_obj("NS_FILE", Int_obj_val.new_(Xow_ns_.Tid__file));
- mw_names.Add_obj("NS_FILE_TALK", Int_obj_val.new_(Xow_ns_.Tid__file_talk));
- mw_names.Add_obj("NS_MEDIAWIKI", Int_obj_val.new_(Xow_ns_.Tid__mediawiki));
- mw_names.Add_obj("NS_MEDIAWIKI_TALK", Int_obj_val.new_(Xow_ns_.Tid__mediawiki_talk));
- mw_names.Add_obj("NS_TEMPLATE", Int_obj_val.new_(Xow_ns_.Tid__template));
- mw_names.Add_obj("NS_TEMPLATE_TALK", Int_obj_val.new_(Xow_ns_.Tid__template_talk));
- mw_names.Add_obj("NS_HELP", Int_obj_val.new_(Xow_ns_.Tid__help));
- mw_names.Add_obj("NS_HELP_TALK", Int_obj_val.new_(Xow_ns_.Tid__help_talk));
- mw_names.Add_obj("NS_CATEGORY", Int_obj_val.new_(Xow_ns_.Tid__category));
- mw_names.Add_obj("NS_CATEGORY_TALK", Int_obj_val.new_(Xow_ns_.Tid__category_talk));
+ mw_names.Add_obj("NS_MEDIA", new Int_obj_val(Xow_ns_.Tid__media));
+ mw_names.Add_obj("NS_SPECIAL", new Int_obj_val(Xow_ns_.Tid__special));
+ mw_names.Add_obj("NS_MAIN", new Int_obj_val(Xow_ns_.Tid__main));
+ mw_names.Add_obj("NS_TALK", new Int_obj_val(Xow_ns_.Tid__talk));
+ mw_names.Add_obj("NS_USER", new Int_obj_val(Xow_ns_.Tid__user));
+ mw_names.Add_obj("NS_USER_TALK", new Int_obj_val(Xow_ns_.Tid__user_talk));
+ mw_names.Add_obj("NS_PROJECT", new Int_obj_val(Xow_ns_.Tid__project));
+ mw_names.Add_obj("NS_PROJECT_TALK", new Int_obj_val(Xow_ns_.Tid__project_talk));
+ mw_names.Add_obj("NS_FILE", new Int_obj_val(Xow_ns_.Tid__file));
+ mw_names.Add_obj("NS_FILE_TALK", new Int_obj_val(Xow_ns_.Tid__file_talk));
+ mw_names.Add_obj("NS_MEDIAWIKI", new Int_obj_val(Xow_ns_.Tid__mediawiki));
+ mw_names.Add_obj("NS_MEDIAWIKI_TALK", new Int_obj_val(Xow_ns_.Tid__mediawiki_talk));
+ mw_names.Add_obj("NS_TEMPLATE", new Int_obj_val(Xow_ns_.Tid__template));
+ mw_names.Add_obj("NS_TEMPLATE_TALK", new Int_obj_val(Xow_ns_.Tid__template_talk));
+ mw_names.Add_obj("NS_HELP", new Int_obj_val(Xow_ns_.Tid__help));
+ mw_names.Add_obj("NS_HELP_TALK", new Int_obj_val(Xow_ns_.Tid__help_talk));
+ mw_names.Add_obj("NS_CATEGORY", new Int_obj_val(Xow_ns_.Tid__category));
+ mw_names.Add_obj("NS_CATEGORY_TALK", new Int_obj_val(Xow_ns_.Tid__category_talk));
}
Object o = mw_names.Match_exact(src, 0, src.length);
return o == null ? Xow_ns_.Tid__null : ((Int_obj_val)o).Val();
diff --git a/400_xowa/src/gplx/xowa/langs/bldrs/Xol_mw_lang_parser_tst.java b/400_xowa/src/gplx/xowa/langs/bldrs/Xol_mw_lang_parser_tst.java
index 353b67ef2..df57b044e 100644
--- a/400_xowa/src/gplx/xowa/langs/bldrs/Xol_mw_lang_parser_tst.java
+++ b/400_xowa/src/gplx/xowa/langs/bldrs/Xol_mw_lang_parser_tst.java
@@ -42,11 +42,11 @@ public class Xol_mw_lang_parser_tst {
;
}
@Test public void Core_keywords_func_currentmonth() {
- Tfds.Now_enabled_y_();
+ Datetime_now.Manual_y_();
fxt.Parse_core("$magicWords = array('currentmonth' => array(0, 'MOISACTUEL'));")
.Tst_parse("{{MOISACTUEL}}", "01")
;
- Tfds.Now_enabled_n_();
+ Datetime_now.Manual_n_();
}
@Test public void Core_keywords_func_ns() {
fxt.Parse_core("$magicWords = array('ns' => array(0, 'ESPACEN'));")
diff --git a/400_xowa/src/gplx/xowa/wikis/ctgs/Xoctg_data_ctg_tst.java b/400_xowa/src/gplx/xowa/langs/commas/Xol_comma_wkr.java
similarity index 71%
rename from 400_xowa/src/gplx/xowa/wikis/ctgs/Xoctg_data_ctg_tst.java
rename to 400_xowa/src/gplx/xowa/langs/commas/Xol_comma_wkr.java
index 36efc3562..57079b90e 100644
--- a/400_xowa/src/gplx/xowa/wikis/ctgs/Xoctg_data_ctg_tst.java
+++ b/400_xowa/src/gplx/xowa/langs/commas/Xol_comma_wkr.java
@@ -15,10 +15,9 @@ 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 .
*/
-package gplx.xowa.wikis.ctgs; import gplx.*; import gplx.xowa.*; import gplx.xowa.wikis.*;
-import org.junit.*;
-public class Xoctg_data_ctg_tst {
-// @Before public void init() {fxt.Clear();} private Xoctg_idx_mgr_fxt fxt = new Xoctg_idx_mgr_fxt();
- @Test public void Basic() {
- }
+package gplx.xowa.langs.commas; import gplx.*; import gplx.xowa.*; import gplx.xowa.langs.*;
+public interface Xol_comma_wkr {
+ void Evt_lang_changed(Xol_lang_itm lang_itm);
+ void Comma__itm(Bry_bfr bfr, int itm_idx, int itms_len);
+ void Comma__end(Bry_bfr bfr);
}
diff --git a/400_xowa/src/gplx/xowa/langs/commas/Xol_comma_wkr__add.java b/400_xowa/src/gplx/xowa/langs/commas/Xol_comma_wkr__add.java
new file mode 100644
index 000000000..efc4b9f15
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/langs/commas/Xol_comma_wkr__add.java
@@ -0,0 +1,30 @@
+/*
+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 .
+*/
+package gplx.xowa.langs.commas; import gplx.*; import gplx.xowa.*; import gplx.xowa.langs.*;
+import gplx.xowa.langs.msgs.*;
+public class Xol_comma_wkr__add implements Xol_comma_wkr {
+ private byte[] comma_bry = Bry_.new_a7(", "); // needed for TEST
+ public void Evt_lang_changed(Xol_lang_itm lang_itm) {
+ this.comma_bry = lang_itm.Msg_mgr().Val_by_bry_or(Bry_.new_a7("comma-separator"), Byte_ascii.Comma_bry);
+ }
+ public void Comma__itm(Bry_bfr bfr, int itm_idx, int itms_len) {
+ if (itm_idx != itms_len - 1)
+ bfr.Add(comma_bry);
+ }
+ public void Comma__end(Bry_bfr bfr) {}
+}
diff --git a/400_xowa/src/gplx/xowa/langs/durations/Xol_duration_itm_.java b/400_xowa/src/gplx/xowa/langs/durations/Xol_duration_itm_.java
index 7716158d2..d80d3127f 100644
--- a/400_xowa/src/gplx/xowa/langs/durations/Xol_duration_itm_.java
+++ b/400_xowa/src/gplx/xowa/langs/durations/Xol_duration_itm_.java
@@ -76,5 +76,5 @@ class Xol_duration_itm_sorter implements gplx.core.lists.ComparerAble {
Xol_duration_itm rhs = (Xol_duration_itm)rhsObj;
return -Long_.Compare(lhs.Seconds(), rhs.Seconds()); // - to sort from largest to smallest
}
- public static final Xol_duration_itm_sorter Instance = new Xol_duration_itm_sorter(); Xol_duration_itm_sorter() {}
+ public static final Xol_duration_itm_sorter Instance = new Xol_duration_itm_sorter(); Xol_duration_itm_sorter() {}// TS.static
}
diff --git a/400_xowa/src/gplx/xowa/langs/durations/Xol_duration_mgr.java b/400_xowa/src/gplx/xowa/langs/durations/Xol_duration_mgr.java
index 2c0550e37..a617285f7 100644
--- a/400_xowa/src/gplx/xowa/langs/durations/Xol_duration_mgr.java
+++ b/400_xowa/src/gplx/xowa/langs/durations/Xol_duration_mgr.java
@@ -16,12 +16,14 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
package gplx.xowa.langs.durations; import gplx.*; import gplx.xowa.*; import gplx.xowa.langs.*;
+import gplx.core.brys.fmtrs.*;
import gplx.xowa.parsers.*;
import gplx.xowa.langs.msgs.*;
public class Xol_duration_mgr {
private Xol_msg_itm[] interval_msgs = null;
+ private final Bry_bfr tmp_bfr = Bry_bfr_.Reset(255);
+ private final Bry_fmtr tmp_fmtr = Bry_fmtr.New__tmp();
public Xol_duration_mgr(Xol_lang_itm lang) {this.lang = lang;} private Xol_lang_itm lang;
- private Bry_bfr tmp_bfr = Bry_bfr_.Reset(255);
public Xol_interval_itm[] Get_duration_intervals(long seconds, Xol_duration_itm[] intervals) {
if (intervals == null) intervals = Xol_duration_itm_.Ary_default;
Array_.Sort(intervals, Xol_duration_itm_sorter.Instance);
@@ -49,7 +51,7 @@ public class Xol_duration_mgr {
for (int i = 0; i < intervals_len; i++) {
Xol_interval_itm interval = intervals[i];
Xol_msg_itm msg_itm = interval_msgs[interval.Duration_itm().Tid()];
- byte[] msg_bry = msg_itm.Fmt(tmp_bfr, interval.Val());
+ byte[] msg_bry = msg_itm.Fmt(tmp_bfr, tmp_fmtr, interval.Val());
msg_bry = ctx.Wiki().Parser_mgr().Main().Parse_text_to_html(ctx, msg_bry);
msgs_ary[i] = msg_bry;
}
diff --git a/400_xowa/src/gplx/xowa/langs/kwds/Xol_kwd_grp_.java b/400_xowa/src/gplx/xowa/langs/kwds/Xol_kwd_grp_.java
index 67b4ce929..090780459 100644
--- a/400_xowa/src/gplx/xowa/langs/kwds/Xol_kwd_grp_.java
+++ b/400_xowa/src/gplx/xowa/langs/kwds/Xol_kwd_grp_.java
@@ -466,7 +466,7 @@ default: throw Err_.new_unhandled(id);
int len = Bry__.length;
for (int i = 0; i < len; i++) {
byte[] bry = Bry__[i];
- hash.Add(bry, Int_obj_val.new_(i));
+ hash.Add(bry, new Int_obj_val(i));
}
}
Object o = hash.Get_by_bry(find);
diff --git a/400_xowa/src/gplx/xowa/langs/msgs/Xol_msg_itm.java b/400_xowa/src/gplx/xowa/langs/msgs/Xol_msg_itm.java
index 1b9484322..a3df18ee3 100644
--- a/400_xowa/src/gplx/xowa/langs/msgs/Xol_msg_itm.java
+++ b/400_xowa/src/gplx/xowa/langs/msgs/Xol_msg_itm.java
@@ -19,31 +19,30 @@ package gplx.xowa.langs.msgs; import gplx.*; import gplx.xowa.*; import gplx.xow
import gplx.core.brys.fmtrs.*;
public class Xol_msg_itm {
public Xol_msg_itm(int id, byte[] key) {this.id = id; this.key = key;}
- public int Id() {return id;} private final int id;
- public byte[] Key() {return key;} private final byte[] key;
- public byte[] Val() {return val;} private byte[] val;
- public int Src() {return src;} public Xol_msg_itm Src_(int v) {src = v; return this;} private int src;
- public boolean Src_is_missing() {return src == Src_missing;}
- public boolean Has_fmt_arg() {return has_fmt_arg;} private boolean has_fmt_arg;
- public boolean Has_tmpl_txt() {return has_tmpl_txt;} private boolean has_tmpl_txt;
- public boolean Dirty() {return dirty;} public Xol_msg_itm Dirty_(boolean v) {dirty = v; return this;} private boolean dirty; // BLDR:
+ public int Id() {return id;} private final int id;
+ public byte[] Key() {return key;} private final byte[] key;
+ public byte[] Val() {return val;} private byte[] val;
+ public int Src() {return src;} private int src;
+ public boolean Src_is_missing() {return src == Src_missing;}
+ public boolean Has_fmt_arg() {return has_fmt_arg;} private boolean has_fmt_arg;
+ public boolean Has_tmpl_txt() {return has_tmpl_txt;} private boolean has_tmpl_txt;
+ public boolean Dirty() {return dirty;} private boolean dirty; // BLDR:
+
+ public Xol_msg_itm Src_(int v) {src = v; return this;}
+ public Xol_msg_itm Dirty_(boolean v) {dirty = v; return this;}
+
public void Atrs_set(byte[] val, boolean has_fmt_arg, boolean has_tmpl_txt) {
this.val = val; this.has_fmt_arg = has_fmt_arg; this.has_tmpl_txt = has_tmpl_txt;
}
- public byte[] Fmt(Bry_bfr bfr, Object... args) {
- synchronized (tmp_fmtr) {
- tmp_fmtr.Fmt_(val);
- tmp_fmtr.Bld_bfr_many(bfr, args);
- return bfr.To_bry_and_clear();
- }
+ public byte[] Fmt(Bry_bfr bfr, Bry_fmtr fmtr, Object... args) {
+ fmtr.Fmt_(val);
+ fmtr.Bld_bfr_many(bfr, args);
+ return bfr.To_bry_and_clear();
}
- public byte[] Fmt_tmp(Bry_bfr bfr, byte[] tmp_val, Object... args) {
- synchronized (tmp_fmtr) {
- tmp_fmtr.Fmt_(tmp_val);
- tmp_fmtr.Bld_bfr_many(bfr, args);
- return bfr.To_bry_and_clear();
- }
+ public byte[] Fmt_tmp(Bry_bfr bfr, Bry_fmtr fmtr, byte[] tmp_val, Object... args) {
+ fmtr.Fmt_(tmp_val);
+ fmtr.Bld_bfr_many(bfr, args);
+ return bfr.To_bry_and_clear();
}
- public static final int Src_null = 0, Src_lang = 1, Src_wiki = 2, Src_missing = 3;
- private static Bry_fmtr tmp_fmtr = Bry_fmtr.tmp_();
+ public static final int Src_null = 0, Src_lang = 1, Src_wiki = 2, Src_missing = 3;
}
diff --git a/400_xowa/src/gplx/xowa/langs/msgs/Xol_msg_itm_.java b/400_xowa/src/gplx/xowa/langs/msgs/Xol_msg_itm_.java
index 4538ab513..afebabe61 100644
--- a/400_xowa/src/gplx/xowa/langs/msgs/Xol_msg_itm_.java
+++ b/400_xowa/src/gplx/xowa/langs/msgs/Xol_msg_itm_.java
@@ -259,7 +259,7 @@ public static final int
update_val_(rv, val);
return rv;
}
- private static final Bry_fmtr tmp_fmtr = Bry_fmtr.tmp_().Fail_when_invalid_escapes_(false);
+ private static final Bry_fmtr tmp_fmtr = Bry_fmtr.New__tmp().Fail_when_invalid_escapes_(false);
private static final Bry_bfr tmp_bfr = Bry_bfr_.Reset(255);
public static void update_val_(Xol_msg_itm itm, byte[] val) {
synchronized (tmp_fmtr) { // LOCK:static-objs; DATE:2016-07-07
diff --git a/400_xowa/src/gplx/xowa/langs/msgs/Xol_msg_mgr_.java b/400_xowa/src/gplx/xowa/langs/msgs/Xol_msg_mgr_.java
index 5f11d45ac..370fa1cf6 100644
--- a/400_xowa/src/gplx/xowa/langs/msgs/Xol_msg_mgr_.java
+++ b/400_xowa/src/gplx/xowa/langs/msgs/Xol_msg_mgr_.java
@@ -40,7 +40,7 @@ public class Xol_msg_mgr_ {
return msg_itm == null ? null : String_.new_u8(msg_itm.Val());
}
public static byte[] Get_msg_val(Xowe_wiki wiki, Xol_lang_itm lang, byte[] msg_key, byte[][] fmt_args) {
- Bry_bfr tmp_bfr = Xoa_app_.Utl__bfr_mkr().Get_b512();
+ Bry_bfr tmp_bfr = wiki.Utl__bfr_mkr().Get_b512();
Xol_msg_itm msg_itm = Get_msg_itm(tmp_bfr, wiki, lang, msg_key);
byte[] rv = Get_msg_val(tmp_bfr, wiki, msg_itm, fmt_args);
tmp_bfr.Mkr_rls();
@@ -52,7 +52,7 @@ public class Xol_msg_mgr_ {
if (!has_fmt && !has_tmpl) // no fmt or tmpl; just add val
return msg_val;
if (has_fmt) { // fmt exists; fmt first (before tmpl text); EX: Expression error: Unrecognised word "~{0}"
- Bry_fmtr tmp_fmtr = Bry_fmtr.tmp_().Missing_bgn_(Missing_bry).Missing_end_(Bry_.Empty).Missing_adj_(1);
+ Bry_fmtr tmp_fmtr = Bry_fmtr.New__tmp().Missing_bgn_(Missing_bry).Missing_end_(Bry_.Empty).Missing_adj_(1);
tmp_fmtr.Fmt_(msg_val);
tmp_fmtr.Bld_bfr(tmp_bfr, fmt_args);
msg_val = tmp_bfr.To_bry_and_clear();
diff --git a/400_xowa/src/gplx/xowa/langs/msgs/Xow_msg_mgr.java b/400_xowa/src/gplx/xowa/langs/msgs/Xow_msg_mgr.java
index 859ed4bfc..570cf98a7 100644
--- a/400_xowa/src/gplx/xowa/langs/msgs/Xow_msg_mgr.java
+++ b/400_xowa/src/gplx/xowa/langs/msgs/Xow_msg_mgr.java
@@ -16,9 +16,11 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
package gplx.xowa.langs.msgs; import gplx.*; import gplx.xowa.*; import gplx.xowa.langs.*;
+import gplx.core.brys.fmtrs.*;
import gplx.xowa.htmls.sidebar.*;
public class Xow_msg_mgr implements Gfo_invk {
private final Xowe_wiki wiki; private Xol_lang_itm lang; private final Xol_msg_mgr msg_mgr;
+ private final Bry_fmtr tmp_fmtr = Bry_fmtr.New__tmp();
public Xow_msg_mgr(Xowe_wiki wiki, Xol_lang_itm lang) {
this.wiki = wiki;
this.lang = lang;
@@ -35,7 +37,7 @@ public class Xow_msg_mgr implements Gfo_invk {
Xol_msg_itm itm = msg_mgr.Itm_by_id_or_null(id);
if (itm == null)
itm = lang.Msg_mgr().Itm_by_id_or_null(id);
- Bry_bfr tmp_bfr = Xoa_app_.Utl__bfr_mkr().Get_b512();
+ Bry_bfr tmp_bfr = wiki.Utl__bfr_mkr().Get_b512();
byte[] rv = Val_by_itm(tmp_bfr, itm, args);
tmp_bfr.Mkr_rls();
return rv;
@@ -45,7 +47,7 @@ public class Xow_msg_mgr implements Gfo_invk {
public Xol_msg_itm Find_or_null(byte[] key) {
Xol_msg_itm itm = msg_mgr.Itm_by_key_or_null(key);
if (itm == null) {
- Bry_bfr tmp_bfr = Xoa_app_.Utl__bfr_mkr().Get_b512();
+ Bry_bfr tmp_bfr = wiki.Utl__bfr_mkr().Get_b512();
itm = Xol_msg_mgr_.Get_msg_itm(tmp_bfr, wiki, lang, key);
if (itm.Src_is_missing()) itm = null;
tmp_bfr.Mkr_rls();
@@ -57,7 +59,7 @@ public class Xow_msg_mgr implements Gfo_invk {
public byte[] Val_by_key_obj(byte[] key) {return Val_by_key(key, null);}
private byte[] Val_by_key(byte[] key, Object[] args) {
Xol_msg_itm itm = msg_mgr.Itm_by_key_or_null(key);
- Bry_bfr tmp_bfr = Xoa_app_.Utl__bfr_mkr().Get_b512();
+ Bry_bfr tmp_bfr = wiki.Utl__bfr_mkr().Get_b512();
if (itm == null)
itm = Xol_msg_mgr_.Get_msg_itm(tmp_bfr, wiki, lang, key);
if (itm.Src_is_missing()) {
@@ -70,12 +72,12 @@ public class Xow_msg_mgr implements Gfo_invk {
}
public byte[] Val_by_itm(Bry_bfr tmp_bfr, Xol_msg_itm itm, Object[] args) {
byte[] rv = itm.Val();
- if (args != null) rv = itm.Fmt_tmp(tmp_bfr, rv, args);
+ if (args != null) rv = itm.Fmt_tmp(tmp_bfr, tmp_fmtr, rv, args);
if (itm.Has_tmpl_txt()) rv = wiki.Parser_mgr().Main().Expand_tmpl(rv);
return rv;
}
public byte[] Val_html_accesskey_and_title(byte[] id) {
- Bry_bfr bfr = Xoa_app_.Utl__bfr_mkr().Get_b512();
+ Bry_bfr bfr = wiki.Utl__bfr_mkr().Get_b512();
byte[] rv = Val_html_accesskey_and_title(id, bfr, null);
bfr.Mkr_rls();
return rv;
diff --git a/400_xowa/src/gplx/xowa/langs/vnts/converts/Xol_convert_mgr.java b/400_xowa/src/gplx/xowa/langs/vnts/converts/Xol_convert_mgr.java
index fa6fb0de7..175a4ccb7 100644
--- a/400_xowa/src/gplx/xowa/langs/vnts/converts/Xol_convert_mgr.java
+++ b/400_xowa/src/gplx/xowa/langs/vnts/converts/Xol_convert_mgr.java
@@ -18,7 +18,8 @@ along with this program. If not, see .
package gplx.xowa.langs.vnts.converts; import gplx.*; import gplx.xowa.*; import gplx.xowa.langs.*; import gplx.xowa.langs.vnts.*;
import gplx.xowa.wikis.nss.*; import gplx.xowa.wikis.data.tbls.*;
public class Xol_convert_mgr {
- private final Ordered_hash tmp_page_list = Ordered_hash_.New_bry();
+ private final Ordered_hash tmp_page_list = Ordered_hash_.New_bry();
+ private final Bry_bfr tmp_bfr = Bry_bfr_.New();
public Xol_convert_regy Converter_regy() {return converter_regy;} private final Xol_convert_regy converter_regy = new Xol_convert_regy();
public Xol_convert_wkr[] Converter_ary() {return wkr_ary;} private Xol_convert_wkr[] wkr_ary; private int wkr_ary_len;
public void Init(Xol_vnt_regy regy) {
@@ -32,18 +33,12 @@ public class Xol_convert_mgr {
}
}
public byte[] Convert_text(int vnt_idx, byte[] src, int bgn, int end) {
- Bry_bfr tmp_bfr = Xoa_app_.Utl__bfr_mkr().Get_m001();
Xol_convert_wkr converter = wkr_ary[vnt_idx];
converter.Convert_text(tmp_bfr, src, bgn, end);
- return tmp_bfr.To_bry_and_rls();
- }
- public Xowd_page_itm Convert_ttl(Xow_wiki wiki, Xoa_ttl ttl) {return Convert_ttl(wiki, ttl.Ns(), ttl.Page_db());} // NOTE: not Full_db as ttl.Ns is passed; EX:Шаблон:Šablon:Jez-eng; PAGE:sr.w:ДНК DATE:2014-07-06
- public Xowd_page_itm Convert_ttl(Xow_wiki wiki, Xow_ns ns, byte[] ttl_bry) {
- Bry_bfr tmp_bfr = Xoa_app_.Utl__bfr_mkr().Get_b512();
- Xowd_page_itm rv = Convert_ttl(wiki, tmp_bfr, ns, ttl_bry);
- tmp_bfr.Mkr_rls();
- return rv;
+ return tmp_bfr.To_bry_and_clear();
}
+ public Xowd_page_itm Convert_ttl(Xow_wiki wiki, Xoa_ttl ttl) {return Convert_ttl(wiki, ttl.Ns(), ttl.Page_db());} // NOTE: not Full_db as ttl.Ns is passed; EX:Шаблон:Šablon:Jez-eng; PAGE:sr.w:ДНК DATE:2014-07-06
+ public Xowd_page_itm Convert_ttl(Xow_wiki wiki, Xow_ns ns, byte[] ttl_bry) {return Convert_ttl(wiki, tmp_bfr, ns, ttl_bry);}
private Xowd_page_itm Convert_ttl(Xow_wiki wiki, Bry_bfr tmp_bfr, Xow_ns ns, byte[] ttl_bry) { // REF.MW:LanguageConverter.php|findVariantLink
synchronized (tmp_page_list) { // THREAD:
int converted = Convert_ttl__convert_each_vnt(wiki, tmp_bfr, ns, ttl_bry); // convert ttl for each vnt
diff --git a/400_xowa/src/gplx/xowa/parsers/Xop_ctx.java b/400_xowa/src/gplx/xowa/parsers/Xop_ctx.java
index 714ab2bb1..31a8ad9a1 100644
--- a/400_xowa/src/gplx/xowa/parsers/Xop_ctx.java
+++ b/400_xowa/src/gplx/xowa/parsers/Xop_ctx.java
@@ -19,7 +19,7 @@ package gplx.xowa.parsers; import gplx.*; import gplx.xowa.*;
import gplx.core.btries.*; import gplx.core.log_msgs.*;
import gplx.xowa.langs.*;
import gplx.xowa.guis.*;
-import gplx.xowa.xtns.scribunto.*; import gplx.xowa.xtns.wdatas.*; import gplx.xowa.xtns.lst.*;
+import gplx.xowa.xtns.scribunto.*; import gplx.xowa.xtns.wbases.*; import gplx.xowa.xtns.lst.*;
import gplx.xowa.parsers.apos.*; import gplx.xowa.parsers.amps.*; import gplx.xowa.parsers.lnkes.*; import gplx.xowa.parsers.hdrs.*; import gplx.xowa.parsers.lists.*; import gplx.xowa.parsers.tblws.*; import gplx.xowa.parsers.paras.*; import gplx.xowa.parsers.xndes.*; import gplx.xowa.parsers.lnkis.*; import gplx.xowa.parsers.tmpls.*;
import gplx.xowa.parsers.logs.*; import gplx.xowa.htmls.modules.popups.keeplists.*;
public class Xop_ctx {
diff --git a/400_xowa/src/gplx/xowa/parsers/Xop_parser.java b/400_xowa/src/gplx/xowa/parsers/Xop_parser.java
index 0fad2211a..ca54a91d0 100644
--- a/400_xowa/src/gplx/xowa/parsers/Xop_parser.java
+++ b/400_xowa/src/gplx/xowa/parsers/Xop_parser.java
@@ -51,7 +51,7 @@ public class Xop_parser { // NOTE: parsers are reused; do not keep any read-writ
}
public byte[] Parse_text_to_html(Xop_ctx ctx, byte[] src) {
- Bry_bfr bfr = Xoa_app_.Utl__bfr_mkr().Get_b512();
+ Bry_bfr bfr = wiki.Utl__bfr_mkr().Get_b512();
Parse_text_to_html(bfr, ctx, ctx.Page(), false, src);
return bfr.To_bry_and_rls();
}
diff --git a/400_xowa/src/gplx/xowa/parsers/Xop_tmp_mgr.java b/400_xowa/src/gplx/xowa/parsers/Xop_tmp_mgr.java
index dedde0de1..3d22c03a3 100644
--- a/400_xowa/src/gplx/xowa/parsers/Xop_tmp_mgr.java
+++ b/400_xowa/src/gplx/xowa/parsers/Xop_tmp_mgr.java
@@ -16,13 +16,15 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
package gplx.xowa.parsers; import gplx.*; import gplx.xowa.*;
-import gplx.core.primitives.*;
+import gplx.core.primitives.*; import gplx.core.btries.*;
import gplx.xowa.files.*;
import gplx.xowa.xtns.pfuncs.exprs.*; import gplx.xowa.xtns.math.*;
public class Xop_tmp_mgr {
public Xof_math_itm Math_itm() {return math_itm;} private final Xof_math_itm math_itm = new Xof_math_itm();
public Xof_xfer_itm Xfer_itm() {return xfer_itm;} private final Xof_xfer_itm xfer_itm = new Xof_xfer_itm();
- public Number_parser Pfunc_num_parser_0() {return num_parser_0;} private final Number_parser num_parser_0 = new Number_parser().Hex_enabled_(true);
- public Number_parser Pfunc_num_parser_1() {return num_parser_1;} private final Number_parser num_parser_1 = new Number_parser().Hex_enabled_(true);
+ public Gfo_number_parser Pfunc_num_parser_0() {return num_parser_0;} private final Gfo_number_parser num_parser_0 = new Gfo_number_parser().Hex_enabled_(true);
+ public Gfo_number_parser Pfunc_num_parser_1() {return num_parser_1;} private final Gfo_number_parser num_parser_1 = new Gfo_number_parser().Hex_enabled_(true);
public Pfunc_expr_shunter Expr_shunter() {return expr_shunter;} private final Pfunc_expr_shunter expr_shunter = new Pfunc_expr_shunter();
+ public Btrie_slim_mgr Xnde__xtn_end() {return xnde__xtn_end;} private final Btrie_slim_mgr xnde__xtn_end = Btrie_slim_mgr.ci_a7(); // NOTE:ci.ascii:MW_const.en; listed XML node names are en
+ public Btrie_rv Xnde__trv() {return xnde__trv;} private final Btrie_rv xnde__trv = new Btrie_rv();
}
diff --git a/400_xowa/src/gplx/xowa/parsers/Xow_parser_mgr.java b/400_xowa/src/gplx/xowa/parsers/Xow_parser_mgr.java
index 820793edc..57b93696d 100644
--- a/400_xowa/src/gplx/xowa/parsers/Xow_parser_mgr.java
+++ b/400_xowa/src/gplx/xowa/parsers/Xow_parser_mgr.java
@@ -16,10 +16,10 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
package gplx.xowa.parsers; import gplx.*; import gplx.xowa.*;
-// using gplx.langs.jsons;
+import gplx.core.primitives.*; import gplx.core.brys.fmtrs.*;
import gplx.xowa.wikis.*; import gplx.core.envs.*;
import gplx.xowa.files.*;
-import gplx.xowa.xtns.pfuncs.ifs.*; import gplx.xowa.xtns.scribunto.*; import gplx.xowa.xtns.pfuncs.times.*;
+import gplx.xowa.xtns.pfuncs.ifs.*; import gplx.xowa.xtns.scribunto.*; import gplx.xowa.xtns.pfuncs.times.*; import gplx.xowa.xtns.wbases.hwtrs.*;
public class Xow_parser_mgr {
private final Xowe_wiki wiki; private final Xop_tkn_mkr tkn_mkr;
private Xop_parser anchor_encode_parser;
@@ -35,7 +35,14 @@ public class Xow_parser_mgr {
public Xof_url_bldr Url_bldr() {return url_bldr;} private final Xof_url_bldr url_bldr = Xof_url_bldr.new_v2();
public List_adp Time_parser_itms() {return time_parser_itms;} private final List_adp time_parser_itms = List_adp_.New();
public Pft_func_formatdate_bldr Date_fmt_bldr() {return date_fmt_bldr;} private final Pft_func_formatdate_bldr date_fmt_bldr = new Pft_func_formatdate_bldr();
- // public Json_parser Wbase_jdoc_parser() {return wbase_jdoc_parser;} private final Json_parser wbase_jdoc_parser = new Json_parser();
+ public Gfo_number_parser Pp_num_parser() {return pp_num_parser;} private final Gfo_number_parser pp_num_parser = new Gfo_number_parser().Ignore_space_at_end_y_();
+ public Bry_bfr Wbase__time__bfr() {return wbase__time__bfr;} private final Bry_bfr wbase__time__bfr = Bry_bfr_.New();
+ public Bry_fmtr Wbase__time__fmtr() {return wbase__time__fmtr;} private final Bry_fmtr wbase__time__fmtr = Bry_fmtr.new_();
+ public Wdata_hwtr_msgs Wbase__time__msgs() {
+ if (wbase__time__msgs == null)
+ wbase__time__msgs = Wdata_hwtr_msgs.new_(wiki.Msg_mgr());
+ return wbase__time__msgs;
+ } private Wdata_hwtr_msgs wbase__time__msgs;
public Xop_parser Anchor_encoder() {
if (anchor_encode_parser == null) {
anchor_encode_parser = Xop_parser.new_(wiki, wiki.Parser_mgr().Main().Tmpl_lxr_mgr(), Xop_lxr_mgr.new_anchor_encoder());
diff --git a/400_xowa/src/gplx/xowa/parsers/lnkis/Xop_lnki_wkr.java b/400_xowa/src/gplx/xowa/parsers/lnkis/Xop_lnki_wkr.java
index 66302cc1c..c7bbb1a67 100644
--- a/400_xowa/src/gplx/xowa/parsers/lnkis/Xop_lnki_wkr.java
+++ b/400_xowa/src/gplx/xowa/parsers/lnkis/Xop_lnki_wkr.java
@@ -22,7 +22,7 @@ import gplx.xowa.wikis.*; import gplx.xowa.parsers.lnkis.files.*; import gplx.xo
import gplx.xowa.parsers.tmpls.*; import gplx.xowa.parsers.miscs.*;
public class Xop_lnki_wkr implements Xop_ctx_wkr, Xop_arg_wkr {
private Arg_bldr arg_bldr = Arg_bldr.Instance;
- private Number_parser number_parser = new Number_parser();
+ private Gfo_number_parser number_parser = new Gfo_number_parser();
private Sites_regy_mgr sites_regy_mgr;
public void Ctor_ctx(Xop_ctx ctx) {}
public void Page_bgn(Xop_ctx ctx, Xop_root_tkn root) {
diff --git a/400_xowa/src/gplx/xowa/parsers/lnkis/Xop_lnki_wkr_.java b/400_xowa/src/gplx/xowa/parsers/lnkis/Xop_lnki_wkr_.java
index 7cc0dbf97..9014335e3 100644
--- a/400_xowa/src/gplx/xowa/parsers/lnkis/Xop_lnki_wkr_.java
+++ b/400_xowa/src/gplx/xowa/parsers/lnkis/Xop_lnki_wkr_.java
@@ -92,7 +92,7 @@ public class Xop_lnki_wkr_ {
else
return bgn_pos;
}
- public static void Page_parse(Xop_ctx ctx, byte[] src, Number_parser number_parser, Xop_lnki_tkn lnki, Arg_nde_tkn arg) {
+ public static void Page_parse(Xop_ctx ctx, byte[] src, Gfo_number_parser number_parser, Xop_lnki_tkn lnki, Arg_nde_tkn arg) {
int val_tkn_bgn = arg.Val_tkn().Src_bgn(), val_tkn_end = arg.Val_tkn().Src_end();
byte[] val_bry = Bry_.Trim(src, val_tkn_bgn, val_tkn_end); // some tkns have trailing space; EX.WWI: [[File:Bombers of WW1.ogg|thumb |thumbtime=3]]
number_parser.Parse(val_bry);
@@ -105,7 +105,7 @@ public class Xop_lnki_wkr_ {
int val_tkn_bgn = arg.Val_tkn().Src_bgn(), val_tkn_end = arg.Val_tkn().Src_end();
return Bry_.Trim(src, val_tkn_bgn, val_tkn_end); // trim trailing space
}
- public static void Thumbtime_parse(Xop_ctx ctx, byte[] src, Number_parser number_parser, Xop_lnki_tkn lnki, Arg_nde_tkn arg) {
+ public static void Thumbtime_parse(Xop_ctx ctx, byte[] src, Gfo_number_parser number_parser, Xop_lnki_tkn lnki, Arg_nde_tkn arg) {
int val_tkn_bgn = arg.Val_tkn().Src_bgn(), val_tkn_end = arg.Val_tkn().Src_end();
long fracs = Time_span_.parse_to_fracs(src, val_tkn_bgn, val_tkn_end, false);
if (fracs == Time_span_.parse_null) {
diff --git a/400_xowa/src/gplx/xowa/parsers/lnkis/Xop_lnki_wkr__basic_tst.java b/400_xowa/src/gplx/xowa/parsers/lnkis/Xop_lnki_wkr__basic_tst.java
index e9f9f5a0a..3ea5909f6 100644
--- a/400_xowa/src/gplx/xowa/parsers/lnkis/Xop_lnki_wkr__basic_tst.java
+++ b/400_xowa/src/gplx/xowa/parsers/lnkis/Xop_lnki_wkr__basic_tst.java
@@ -308,7 +308,7 @@ public class Xop_lnki_wkr__basic_tst {
Xowe_wiki wiki = fxt.Wiki();
Xoa_ttl ttl = Xoa_ttl.Parse(wiki, Bry_.new_a7("Src")); // simulate requrest for "Src" page
Xoae_page previous_page = Xoae_page.New_test(wiki, ttl);
- previous_page.Redirect().Itms__add__article(previous_page.Url(), ttl, null); // simulate redirect from "Src"
+ previous_page.Redirect_trail().Itms__add__article(previous_page.Url(), ttl, null); // simulate redirect from "Src"
fxt.App().Usere().History_mgr().Add(previous_page); // simulate "Src" already being clicked once; this is the key call
fxt.Wtr_cfg().Lnki_visited_y_();
fxt.Test_parse_page_all_str("[[Src]]" , "Src"); // show [[Src]] as visited since it exists in history
diff --git a/400_xowa/src/gplx/xowa/parsers/utils/Xop_redirect_mgr.java b/400_xowa/src/gplx/xowa/parsers/utils/Xop_redirect_mgr.java
index 6da6632c5..6bb68fc0f 100644
--- a/400_xowa/src/gplx/xowa/parsers/utils/Xop_redirect_mgr.java
+++ b/400_xowa/src/gplx/xowa/parsers/utils/Xop_redirect_mgr.java
@@ -71,8 +71,9 @@ public class Xop_redirect_mgr {
);
}
public static byte[] Bld_redirect_msg(Xoae_app app, Xowe_wiki wiki, Xopg_redirect_mgr redirect_mgr) {
+ // NOTE: this assumes that redirect_mgr only has redirect_src, not redirect_trg; note that #REDIRECT [[A]] only adds redirect_src, whereas special redirects add redirect_trg; DATE:2016-07-31
int len = redirect_mgr.Itms__len(); if (len == 0) return Bry_.Empty;
- Bry_bfr redirect_bfr = Xoa_app_.Utl__bfr_mkr().Get_b512();
+ Bry_bfr redirect_bfr = wiki.Utl__bfr_mkr().Get_b512();
boolean dirty = false;
for (int i = 0; i < len; i++) {
Xopg_redirect_itm redirect_itm = redirect_mgr.Itms__get_at(i);
diff --git a/400_xowa/src/gplx/xowa/parsers/xndes/Xop_xnde_wkr_.java b/400_xowa/src/gplx/xowa/parsers/xndes/Xop_xnde_wkr_.java
index 367c8b8b3..d344099d4 100644
--- a/400_xowa/src/gplx/xowa/parsers/xndes/Xop_xnde_wkr_.java
+++ b/400_xowa/src/gplx/xowa/parsers/xndes/Xop_xnde_wkr_.java
@@ -19,9 +19,6 @@ package gplx.xowa.parsers.xndes; import gplx.*; import gplx.xowa.*; import gplx.
import gplx.core.primitives.*; import gplx.core.btries.*;
import gplx.xowa.xtns.pfuncs.strings.*;
class Xop_xnde_wkr_ {
- private static final Btrie_slim_mgr xtn_end_tag_trie = Btrie_slim_mgr.ci_a7(); // NOTE:ci.ascii:MW_const.en; listed XML node names are en
- private static final int Find_xtn_end__tid__bgn = 0, Find_xtn_end__tid__end = 1, Find_xtn_end__tid__xtag = 2;
- private static final Int_obj_ref Find_xtn_end__key__bgn = Int_obj_ref.New(Find_xtn_end__tid__bgn), Find_xtn_end__key__end = Int_obj_ref.New(Find_xtn_end__tid__end), Find_xtn_end__key__xtag = Int_obj_ref.New(Find_xtn_end__tid__xtag);
public static void AutoClose_handle_dangling_nde_in_caption(Xop_root_tkn root, Xop_tkn_itm owner) {
int subs_bgn = -1, subs_len = owner.Subs_len();
for (int i = 0; i < subs_len; i++) {
@@ -35,39 +32,38 @@ class Xop_xnde_wkr_ {
root.Subs_move(owner, subs_bgn, subs_len); // move everything after "|" back to root
}
public static int Find_xtn_end(Xop_ctx ctx, byte[] src, int open_end, int src_end, byte[] open_bry, byte[] close_bry) {
- synchronized (xtn_end_tag_trie) { // LOCK:static-obj; DATE:2016-07-06
- xtn_end_tag_trie.Clear();
- xtn_end_tag_trie.Add_obj(Pfunc_tag.Xtag_bgn_lhs, Find_xtn_end__key__xtag);
- xtn_end_tag_trie.Add_obj(open_bry, Find_xtn_end__key__bgn);
- xtn_end_tag_trie.Add_obj(close_bry, Find_xtn_end__key__end);
- int depth = 0;
- for (int i = open_end; i < src_end; ++i) {
- Object o = xtn_end_tag_trie.Match_bgn(src, i, src_end);
- if (o != null) {
- int tid = ((Int_obj_ref)o).Val();
- switch (tid) {
- case Find_xtn_end__tid__bgn: // handle nested refs; PAGE:en.w:UK; DATE:2015-12-26
- int angle_end_pos = Bry_find_.Find_fwd(src, Byte_ascii.Angle_end, i, src_end); if (angle_end_pos == Bry_find_.Not_found) {Xoa_app_.Usr_dlg().Warn_many("", "", "parser.xtn: could not find angle_end: page=~{0}", ctx.Page().Url().To_str()); return Bry_find_.Not_found;}
- if (src[angle_end_pos -1] == Byte_ascii.Slash) {}
- else
- ++depth;
- break;
- case Find_xtn_end__tid__end: // xtn_end found; use it
- if (depth == 0)
- return i;
- else
- --depth;
- break;
- case Find_xtn_end__tid__xtag: // xtag found; skip over it; PAGE:it.s:La_Secchia_rapita/Canto_primo DATE:2015-12-03
- int xtag_end = Find_xtag_end(ctx, src, i, src_end);
- int angle_end = Bry_find_.Find_fwd(src, Byte_ascii.Angle_end, xtag_end, src_end);
- i = angle_end;
- break;
- }
+ Btrie_slim_mgr xtn_end_tag_trie = ctx.Tmp_mgr().Xnde__xtn_end();
+ xtn_end_tag_trie.Clear();
+ xtn_end_tag_trie.Add_obj(Pfunc_tag.Xtag_bgn_lhs, Find_xtn_end__key__xtag);
+ xtn_end_tag_trie.Add_obj(open_bry, Find_xtn_end__key__bgn);
+ xtn_end_tag_trie.Add_obj(close_bry, Find_xtn_end__key__end);
+ int depth = 0;
+ for (int i = open_end; i < src_end; ++i) {
+ Object o = xtn_end_tag_trie.Match_at(ctx.Tmp_mgr().Xnde__trv(), src, i, src_end);
+ if (o != null) {
+ int tid = ((Int_obj_val)o).Val();
+ switch (tid) {
+ case Find_xtn_end__tid__bgn: // handle nested refs; PAGE:en.w:UK; DATE:2015-12-26
+ int angle_end_pos = Bry_find_.Find_fwd(src, Byte_ascii.Angle_end, i, src_end); if (angle_end_pos == Bry_find_.Not_found) {Xoa_app_.Usr_dlg().Warn_many("", "", "parser.xtn: could not find angle_end: page=~{0}", ctx.Page().Url().To_str()); return Bry_find_.Not_found;}
+ if (src[angle_end_pos -1] == Byte_ascii.Slash) {}
+ else
+ ++depth;
+ break;
+ case Find_xtn_end__tid__end: // xtn_end found; use it
+ if (depth == 0)
+ return i;
+ else
+ --depth;
+ break;
+ case Find_xtn_end__tid__xtag: // xtag found; skip over it; PAGE:it.s:La_Secchia_rapita/Canto_primo DATE:2015-12-03
+ int xtag_end = Find_xtag_end(ctx, src, i, src_end);
+ int angle_end = Bry_find_.Find_fwd(src, Byte_ascii.Angle_end, xtag_end, src_end);
+ i = angle_end;
+ break;
}
}
- return Bry_find_.Not_found;
}
+ return Bry_find_.Not_found;
}
public static int Find_xtag_end(Xop_ctx ctx, byte[] src, int pos, int src_end) {
int xtag_bgn = pos + Pfunc_tag.Xtag_bgn_lhs.length;
@@ -80,4 +76,9 @@ class Xop_xnde_wkr_ {
rv = Bry_find_.Find_bwd(src, Byte_ascii.Lt, rv - 1); if (rv == Bry_find_.Not_found) {ctx.App().Usr_dlg().Warn_many("", "", "parser.xtn: could not find <: page=~{0}", ctx.Page().Url().To_str()); return Bry_find_.Not_found;}
return rv;
}
+ private static final int Find_xtn_end__tid__bgn = 0, Find_xtn_end__tid__end = 1, Find_xtn_end__tid__xtag = 2;
+ private static final Int_obj_val
+ Find_xtn_end__key__bgn = new Int_obj_val(Find_xtn_end__tid__bgn)
+ , Find_xtn_end__key__end = new Int_obj_val(Find_xtn_end__tid__end)
+ , Find_xtn_end__key__xtag = new Int_obj_val(Find_xtn_end__tid__xtag);
}
diff --git a/400_xowa/src/gplx/xowa/specials/Xoa_special_mgr.java b/400_xowa/src/gplx/xowa/specials/Xoa_special_mgr.java
index 5fcbfdcfb..7a914f163 100644
--- a/400_xowa/src/gplx/xowa/specials/Xoa_special_mgr.java
+++ b/400_xowa/src/gplx/xowa/specials/Xoa_special_mgr.java
@@ -19,7 +19,7 @@ package gplx.xowa.specials; import gplx.*; import gplx.xowa.*;
public class Xoa_special_mgr implements Gfo_invk {
private Ordered_hash hash = Ordered_hash_.New();
public Xoa_special_mgr() {
- hash.Add(gplx.xowa.xtns.wdatas.specials.Wdata_itemByTitle_cfg.Key, new gplx.xowa.xtns.wdatas.specials.Wdata_itemByTitle_cfg());
+ hash.Add(gplx.xowa.xtns.wbases.specials.Wdata_itemByTitle_cfg.Key, new gplx.xowa.xtns.wbases.specials.Wdata_itemByTitle_cfg());
}
public void Add(String key, Gfo_invk cfg) {hash.Add(key, cfg);}
public Gfo_invk Get_or_null(String key) {return (Gfo_invk)hash.Get_by(key);}
diff --git a/400_xowa/src/gplx/xowa/specials/Xow_special_mgr.java b/400_xowa/src/gplx/xowa/specials/Xow_special_mgr.java
index 18ad06d68..e961dbe64 100644
--- a/400_xowa/src/gplx/xowa/specials/Xow_special_mgr.java
+++ b/400_xowa/src/gplx/xowa/specials/Xow_special_mgr.java
@@ -21,7 +21,7 @@ import gplx.xowa.langs.*; import gplx.xowa.langs.specials.*;
import gplx.xowa.specials.*;
import gplx.xowa.specials.allPages.*; import gplx.xowa.specials.nearby.*; import gplx.xowa.specials.statistics.*; import gplx.xowa.xtns.translates.*; import gplx.xowa.specials.movePage.*;
import gplx.xowa.specials.xowa.system_data.*; import gplx.xowa.specials.xowa.default_tab.*; import gplx.xowa.specials.xowa.popup_history.*; import gplx.xowa.addons.wikis.imports.*; import gplx.xowa.specials.xowa.diags.*;
-import gplx.xowa.xtns.wdatas.specials.*;
+import gplx.xowa.xtns.wbases.specials.*;
import gplx.xowa.users.data.*; import gplx.xowa.users.bmks.*;
import gplx.xowa.specials.mgrs.*; import gplx.xowa.addons.wikis.searchs.specials.*;
public class Xow_special_mgr {
@@ -98,7 +98,7 @@ public class Xow_special_mgr {
Xow_special_page special = (Xow_special_page)hash.Get_by_bry(special_name);
if (special != null) { // special found; generate it;
special = special.Special__clone();
- page.Db().Page().Modified_on_(DateAdp_.Now());
+ page.Db().Page().Modified_on_(Datetime_now.Get());
try {special.Special__gen(wiki, page, url, ttl);}
catch (Exception e) {Gfo_log_.Instance.Warn("failed to generate special page", "url", url.To_str(), "err", Err_.Message_gplx_log(e));}
}
diff --git a/400_xowa/src/gplx/xowa/specials/allPages/Xows_page_allpages.java b/400_xowa/src/gplx/xowa/specials/allPages/Xows_page_allpages.java
index cedb6f8aa..f341e93d5 100644
--- a/400_xowa/src/gplx/xowa/specials/allPages/Xows_page_allpages.java
+++ b/400_xowa/src/gplx/xowa/specials/allPages/Xows_page_allpages.java
@@ -122,22 +122,26 @@ public class Xows_page_allpages implements gplx.core.brys.Bfr_arg, Gfo_invk, Xow
public Xow_ns Init_ns() {return init_ns;} private Xow_ns init_ns;
public void Build_html(Xoae_page page) {
Bry_bfr tmp_bfr = wiki.Utl__bfr_mkr().Get_m001();
- byte[] anchor_prv = Build_html_end(tmp_bfr, rslt_prv, false);
- byte[] anchor_nxt = Build_html_end(tmp_bfr, rslt_nxt, true);
+ Bry_fmtr fmtr = Bry_fmtr.New__tmp();
+
+ byte[] anchor_prv = Build_html_end(tmp_bfr, fmtr, rslt_prv, false);
+ byte[] anchor_nxt = Build_html_end(tmp_bfr, fmtr, rslt_nxt, true);
html_all.Bld_bfr_many(tmp_bfr, this, anchor_prv, anchor_nxt);
page.Db().Text().Text_bry_(tmp_bfr.To_bry_and_clear());
tmp_bfr.Mkr_rls();
page.Html_data().Html_restricted_n_();
}
- byte[] Build_html_end(Bry_bfr bfr, Xowd_page_itm itm, boolean fwd) {
+ byte[] Build_html_end(Bry_bfr bfr, Bry_fmtr fmtr, Xowd_page_itm itm, boolean fwd) {
Xoa_ttl ttl = Xows_page_allpages.ttl_(wiki, init_ns, itm); if (ttl == null) return Bry_.Empty; // occurs when range is empty; EX: Module:A in simplewikibooks
int msg_id = fwd ? Xol_msg_itm_.Id_sp_allpages_fwd : Xol_msg_itm_.Id_sp_allpages_bwd;
Xol_msg_itm msg_itm = wiki.Lang().Msg_mgr().Itm_by_id_or_null(msg_id);
- Bry_bfr tmp_bfr = wiki.Utl__bfr_mkr().Get_b512().Mkr_rls();
- byte[] lbl_text = msg_itm.Fmt(tmp_bfr, ttl.Full_txt_w_ttl_case());
- byte[] args__rest = arg_hash.Concat(tmp_bfr, Bry_arg_ns, Bry_arg_hideredirects);
- byte[] arg_from = gplx.langs.htmls.encoders.Gfo_url_encoder_.Id.Encode(ttl.Page_txt_wo_qargs());
- return html_list_end.Bld_bry_many(bfr, arg_from, args__rest, lbl_text);
+ Bry_bfr tmp_bfr = wiki.Utl__bfr_mkr().Get_b512();
+ try {
+ byte[] lbl_text = msg_itm.Fmt(tmp_bfr, fmtr, ttl.Full_txt_w_ttl_case());
+ byte[] args__rest = arg_hash.Concat(tmp_bfr, Bry_arg_ns, Bry_arg_hideredirects);
+ byte[] arg_from = gplx.langs.htmls.encoders.Gfo_url_encoder_.Id.Encode(ttl.Page_txt_wo_qargs());
+ return html_list_end.Bld_bry_many(bfr, arg_from, args__rest, lbl_text);
+ } finally {tmp_bfr.Mkr_rls();}
}
public static Xoa_ttl ttl_(Xowe_wiki wiki, Xow_ns ns, Xowd_page_itm itm) {
byte[] ttl_bry = itm.Ttl_page_db();
diff --git a/400_xowa/src/gplx/xowa/specials/mgrs/Xosp_special_mgr.java b/400_xowa/src/gplx/xowa/specials/mgrs/Xosp_special_mgr.java
index 082a7666b..34057455a 100644
--- a/400_xowa/src/gplx/xowa/specials/mgrs/Xosp_special_mgr.java
+++ b/400_xowa/src/gplx/xowa/specials/mgrs/Xosp_special_mgr.java
@@ -47,7 +47,7 @@ public class Xosp_special_mgr {
}
if (o != null) {
// Xow_special_page special = (Xow_special_page)o;
- // page.Revision_data().Modified_on_(DateAdp_.Now());
+ // page.Revision_data().Modified_on_(Datetime_now.Get());
// special.Special__gen(wiki, page, url, ttl);
}
}
diff --git a/400_xowa/src/gplx/xowa/users/Xou_user_.java b/400_xowa/src/gplx/xowa/users/Xou_user_.java
index e64dd2fd9..19272d7d0 100644
--- a/400_xowa/src/gplx/xowa/users/Xou_user_.java
+++ b/400_xowa/src/gplx/xowa/users/Xou_user_.java
@@ -55,7 +55,7 @@ class Xou_user_ {
rv = rv.Add_new(-2, "Media").Add_new(-1, "Special").Add_new(0, "").Add_new(1, "Talk").Add_new(2, "User").Add_new(3, "User talk").Add_new(4, "Wikipedia").Add_new(5, "Wikipedia talk")
.Add_new(6, "File").Add_new(7, "File talk").Add_new(8, "MediaWiki").Add_new(9, "MediaWiki talk").Add_new(10, "Template").Add_new(11, "Template talk")
.Add_new(12, "Help").Add_new(13, "Help talk").Add_new(14, "Category").Add_new(15, "Category talk").Add_new(100, "Portal").Add_new(101, "Portal talk")
- .Add_new(gplx.xowa.xtns.wdatas.Wdata_wiki_mgr.Ns_property, gplx.xowa.xtns.wdatas.Wdata_wiki_mgr.Ns_property_name)
+ .Add_new(gplx.xowa.xtns.wbases.Wdata_wiki_mgr.Ns_property, gplx.xowa.xtns.wbases.Wdata_wiki_mgr.Ns_property_name)
.Add_new(730, "Data").Add_new(731, "Data talk")
.Add_new(Xow_ns_.Tid__module, Xow_ns_.Key__module).Add_new(Xow_ns_.Tid__module_talk, Xow_ns_.Key__module_talk)
.Add_defaults()
diff --git a/400_xowa/src/gplx/xowa/users/data/Xoud_opt_scope_tst.java b/400_xowa/src/gplx/xowa/users/data/Xoud_opt_scope_tst.java
index 6ee2031b3..745eabc25 100644
--- a/400_xowa/src/gplx/xowa/users/data/Xoud_opt_scope_tst.java
+++ b/400_xowa/src/gplx/xowa/users/data/Xoud_opt_scope_tst.java
@@ -32,7 +32,7 @@ public class Xoud_opt_scope_tst {
class Xoud_opt_scope_fxt {
private final Xoud_opt_scope_parser parser = new Xoud_opt_scope_parser();
public void Clear() {
- // Gfo_usr_dlg_.I = Xoa_app_.usr_dlg_console_();
+ // Gfo_usr_dlg_.I = Xoa_app_.New__usr_dlg__console();
}
public Xoud_opt_scope Make(int lang_id, int type_id) {return new Xoud_opt_scope(lang_id, type_id);}
public void Test_parse(String raw, Xoud_opt_scope... expd) {
diff --git a/400_xowa/src/gplx/xowa/users/history/Xou_history_itm.java b/400_xowa/src/gplx/xowa/users/history/Xou_history_itm.java
index 1ee98ee81..bdedfa0f4 100644
--- a/400_xowa/src/gplx/xowa/users/history/Xou_history_itm.java
+++ b/400_xowa/src/gplx/xowa/users/history/Xou_history_itm.java
@@ -23,7 +23,7 @@ public class Xou_history_itm {
this.wiki = wiki;
this.page = page;
this.key = key_(wiki, page);
- this.view_bgn = DateAdp_.Now();
+ this.view_bgn = Datetime_now.Get();
}
public byte[] Key() {return key;} private byte[] key;
public byte[] Wiki() {return wiki;} private byte[] wiki;
@@ -43,7 +43,7 @@ public class Xou_history_itm {
}
}
public void Tally() {
- view_end = view_count == 0 ? view_bgn : DateAdp_.Now();
+ view_end = view_count == 0 ? view_bgn : Datetime_now.Get();
view_count++;
}
public void Merge(Xou_history_itm merge) {
@@ -68,6 +68,6 @@ public class Xou_history_itm {
.Add(wiki) .Add_byte(Bry_.Dlm_fld)
.Add(page) .Add_byte(Bry_.Dlm_row);
}
- public static byte[] key_(byte[] wiki, byte[] page) {return Bry_.Add(wiki, Key_dlm, page);} private static final byte[] Key_dlm = Byte_ascii.Pipe_bry;
+ public static byte[] key_(byte[] wiki, byte[] page) {return Bry_.Add(wiki, Key_dlm, page);} private static final byte[] Key_dlm = Byte_ascii.Pipe_bry;
public static final byte Fld_key = 0, Fld_wiki = 1, Fld_page = 2, Fld_view_count = 3, Fld_view_bgn = 4, Fld_view_end = 5;
}
diff --git a/400_xowa/src/gplx/xowa/users/history/Xou_history_mgr.java b/400_xowa/src/gplx/xowa/users/history/Xou_history_mgr.java
index 874f667b0..57e33b50f 100644
--- a/400_xowa/src/gplx/xowa/users/history/Xou_history_mgr.java
+++ b/400_xowa/src/gplx/xowa/users/history/Xou_history_mgr.java
@@ -47,8 +47,8 @@ public class Xou_history_mgr implements Gfo_invk {
Xoa_url url = page.Url();
Xoa_ttl ttl = page.Ttl();
byte[] page_ttl = null;
- if (page.Redirect().Itms__len() > 0) // page was redirected; add src ttl to history, not trg; EX: UK -> United Kingdom; add "UK"; DATE:2014-02-28
- page_ttl = page.Redirect().Itms__get_at(0).Ttl().Full_db();
+ if (page.Redirect_trail().Itms__len() > 0) // page was redirected; add src ttl to history, not trg; EX: UK -> United Kingdom; add "UK"; DATE:2014-02-28
+ page_ttl = page.Redirect_trail().Itms__get_at_0th_or_null().Ttl().Page_db();
else {
page_ttl = Bry_.Add(ttl.Ns().Name_db_w_colon(), ttl.Page_txt()); // use ttl.Page_txt() b/c it normalizes space/casing (url.Page_txt does not)
if (url.Qargs_ary().length > 0)
@@ -107,7 +107,7 @@ public class Xou_history_mgr implements Gfo_invk {
// save archive
byte[] ary = Xou_history_itm_srl.Save(archive_itms);
- Io_url url = app.Usere().Fsys_mgr().App_data_history_fil().GenNewNameOnly(DateAdp_.Now().XtoStr_fmt_yyyyMMdd_HHmmss_fff());
+ Io_url url = app.Usere().Fsys_mgr().App_data_history_fil().GenNewNameOnly(Datetime_now.Get().XtoStr_fmt_yyyyMMdd_HHmmss_fff());
Io_mgr.Instance.SaveFilBry(url, ary);
return current_itms;
} private int current_itms_max = 512, current_itms_reset = 256;
diff --git a/400_xowa/src/gplx/xowa/users/history/Xou_history_mgr_tst.java b/400_xowa/src/gplx/xowa/users/history/Xou_history_mgr_tst.java
index d31794b82..2dff69cc6 100644
--- a/400_xowa/src/gplx/xowa/users/history/Xou_history_mgr_tst.java
+++ b/400_xowa/src/gplx/xowa/users/history/Xou_history_mgr_tst.java
@@ -21,7 +21,7 @@ public class Xou_history_mgr_tst {
private Xou_history_mgr_fxt fxt = new Xou_history_mgr_fxt();
@Before public void init() {fxt.Clear();}
@Test public void Archive() {
- Tfds.Now_enabled_y_(); // NOTE: each DateTime_.Now() advances clock by 1 min; adding a new DateAdp_.Now() anywhere will throw off times on this test; DATE:2014-04-01
+ Datetime_now.Manual_y_(); // NOTE: each DateTime_.Now() advances clock by 1 min; adding a new Datetime_now.Get() anywhere will throw off times on this test; DATE:2014-04-01
fxt.Invk(Xou_history_mgr.Invk_current_itms_max_, 4).Invk(Xou_history_mgr.Invk_current_itms_reset_, 2);
fxt.Add_many("A", "B", "C", "D", "E");
fxt.Save();
@@ -67,7 +67,7 @@ class Xou_history_mgr_fxt {
byte[] ttl_bry = Bry_.new_u8(ttl_str);
Xoa_ttl ttl = Xoa_ttl.Parse(wiki, ttl_bry);
Xoae_page page = Xoae_page.New_test(wiki, ttl);
- page.Db().Page().Modified_on_(DateAdp_.Now());
+ page.Db().Page().Modified_on_(Datetime_now.Get());
byte[] url_bry = ttl_bry;
if (arg_str != null) url_bry = Bry_.Add(url_bry, Bry_.new_u8(arg_str));
Xoa_url url = wiki.Utl__url_parser().Parse(url_bry);
diff --git a/400_xowa/src/gplx/xowa/users/history/Xoud_history_mgr.java b/400_xowa/src/gplx/xowa/users/history/Xoud_history_mgr.java
index faba42546..50c48b709 100644
--- a/400_xowa/src/gplx/xowa/users/history/Xoud_history_mgr.java
+++ b/400_xowa/src/gplx/xowa/users/history/Xoud_history_mgr.java
@@ -30,7 +30,7 @@ public class Xoud_history_mgr implements Gfo_invk {
}
private void Update(String wiki, String page, String qarg) {
// Xoud_history_row row = history_tbl.Select_by_page(wiki, page, qarg);
-// DateAdp time = DateAdp_.Now();
+// DateAdp time = Datetime_now.Get();
// if (row == null)
// history_tbl.Insert(wiki, page, qarg, time, 1);
// else
diff --git a/400_xowa/src/gplx/xowa/wikis/Xoae_wiki_mgr.java b/400_xowa/src/gplx/xowa/wikis/Xoae_wiki_mgr.java
index f901d3eb1..cd00f60c4 100644
--- a/400_xowa/src/gplx/xowa/wikis/Xoae_wiki_mgr.java
+++ b/400_xowa/src/gplx/xowa/wikis/Xoae_wiki_mgr.java
@@ -16,7 +16,7 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
package gplx.xowa.wikis; import gplx.*; import gplx.xowa.*;
-import gplx.xowa.langs.*; import gplx.xowa.xtns.wdatas.*;
+import gplx.xowa.langs.*; import gplx.xowa.xtns.wbases.*;
import gplx.xowa.wikis.domains.*; import gplx.xowa.wikis.domains.crts.*; import gplx.xowa.wikis.nss.*; import gplx.xowa.wikis.metas.*;
public class Xoae_wiki_mgr implements Xoa_wiki_mgr, Gfo_invk {
private final Xoae_app app;
diff --git a/400_xowa/src/gplx/xowa/wikis/Xow_page_tid.java b/400_xowa/src/gplx/xowa/wikis/Xow_page_tid.java
index 0af366c18..4ec16d440 100644
--- a/400_xowa/src/gplx/xowa/wikis/Xow_page_tid.java
+++ b/400_xowa/src/gplx/xowa/wikis/Xow_page_tid.java
@@ -17,7 +17,7 @@ along with this program. If not, see .
*/
package gplx.xowa.wikis; import gplx.*; import gplx.xowa.*;
import gplx.xowa.wikis.nss.*;
-import gplx.xowa.xtns.wdatas.*;
+import gplx.xowa.xtns.wbases.*;
public class Xow_page_tid {
public static byte Identify(int wiki_tid, int ns_id, byte[] ttl) {
switch (ns_id) {
@@ -37,6 +37,6 @@ public class Xow_page_tid {
else if (Bry_.Has_at_end(ttl, Ext_js)) return Tid_js;
else return Tid_wikitext;
}
- private static final byte[] Ext_js = Bry_.new_a7(".js"), Ext_css = Bry_.new_a7(".css"), Ext_doc= Bry_.new_a7("/doc");
+ private static final byte[] Ext_js = Bry_.new_a7(".js"), Ext_css = Bry_.new_a7(".css"), Ext_doc= Bry_.new_a7("/doc");
public static final byte Tid_wikitext = 1, Tid_json = 2, Tid_js = 3, Tid_css = 4, Tid_lua = 5;
}
diff --git a/400_xowa/src/gplx/xowa/wikis/Xowv_wiki.java b/400_xowa/src/gplx/xowa/wikis/Xowv_wiki.java
index c1863507a..ba614a621 100644
--- a/400_xowa/src/gplx/xowa/wikis/Xowv_wiki.java
+++ b/400_xowa/src/gplx/xowa/wikis/Xowv_wiki.java
@@ -16,7 +16,7 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
package gplx.xowa.wikis; import gplx.*; import gplx.xowa.*;
-import gplx.core.primitives.*; import gplx.core.net.*;
+import gplx.core.primitives.*; import gplx.core.net.*; import gplx.core.brys.*; import gplx.core.ios.*;
import gplx.dbs.*;
import gplx.xowa.apps.*;
import gplx.xowa.guis.*;
@@ -75,7 +75,9 @@ public class Xowv_wiki implements Xow_wiki, Xow_ttl_parser, Gfo_invk {
public Xol_lang_itm Lang() {return lang;} private final Xol_lang_itm lang;
public Xol_case_mgr Case_mgr() {if (case_mgr == null) case_mgr = Xol_case_mgr_.U8(); return case_mgr;} private Xol_case_mgr case_mgr;
public Xow_site_stats_mgr Stats() {return stats;} private final Xow_site_stats_mgr stats;
- public Xow_url_parser Utl__url_parser() {return url__parser;} private final Xow_url_parser url__parser;
+ public Bry_bfr_mkr Utl__bfr_mkr() {return utl__bry_bfr_mkr;} private final Bry_bfr_mkr utl__bry_bfr_mkr = new Bry_bfr_mkr();
+ public Io_stream_zip_mgr Utl__zip_mgr() {return utl__zip_mgr;} private final Io_stream_zip_mgr utl__zip_mgr = new Io_stream_zip_mgr();
+ public Xow_url_parser Utl__url_parser() {return url__parser;} private final Xow_url_parser url__parser;
public Xoax_addon_mgr Addon_mgr() {return addon_mgr;} private final Xoax_addon_mgr addon_mgr = new Xoax_addon_mgr();
public Xosp_special_mgr Special_mgr() {return special_mgr;} private Xosp_special_mgr special_mgr;
public Xow_xwiki_mgr Xwiki_mgr() {return xwiki_mgr;} private final Xow_xwiki_mgr xwiki_mgr;
diff --git a/400_xowa/src/gplx/xowa/wikis/caches/Xow_page_cache.java b/400_xowa/src/gplx/xowa/wikis/caches/Xow_page_cache.java
index 9d51242cd..0609fb20c 100644
--- a/400_xowa/src/gplx/xowa/wikis/caches/Xow_page_cache.java
+++ b/400_xowa/src/gplx/xowa/wikis/caches/Xow_page_cache.java
@@ -34,7 +34,7 @@ public class Xow_page_cache {
else if (rv == null) {
Xoae_page page = wiki.Data_mgr().Load_page_by_ttl(ttl); // NOTE: do not call Db_mgr.Load_page; need to handle redirects
if (page.Db().Page().Exists()) {
- rv = new Xow_page_cache_itm(page.Ttl(), page.Db().Text().Text_bry(), page.Redirect().Itms__get_at_0th_or_null());
+ rv = new Xow_page_cache_itm(page.Ttl(), page.Db().Text().Text_bry(), page.Redirect_trail().Itms__get_wtxt_at_0th_or_null());
synchronized (this) { // LOCK:high-usage;DATE:2016-07-14
cache.Add_bry_obj(ttl_full_db, rv);
}
@@ -55,8 +55,8 @@ public class Xow_page_cache {
else if (rv == null) {
Xoae_page page = wiki.Data_mgr().Load_page_by_ttl(ttl); // NOTE: do not call Db_mgr.Load_page; need to handle redirects
if ( page.Db().Page().Exists() // page exists
- || page.Redirect().Itms__len() > 0 ) { // page redirects to missing page; note that page.Missing == true and page.Redirected_src() != null; PAGE: en.w:Shah_Rukh_Khan; DATE:2016-05-02
- rv = new Xow_page_cache_itm(page.Ttl(), page.Db().Text().Text_bry(), page.Redirect().Itms__get_at_0th_or_null());
+ || page.Redirect_trail().Itms__len() > 0 ) { // page redirects to missing page; note that page.Missing == true and page.Redirected_src() != null; PAGE: en.w:Shah_Rukh_Khan; DATE:2016-05-02
+ rv = new Xow_page_cache_itm(page.Ttl(), page.Db().Text().Text_bry(), page.Redirect_trail().Itms__get_wtxt_at_0th_or_null());
synchronized (this) { // LOCK:high-usage;DATE:2016-07-14
cache.Add_bry_obj(ttl_full_db, rv);
}
diff --git a/400_xowa/src/gplx/xowa/wikis/caches/Xow_page_cache_itm.java b/400_xowa/src/gplx/xowa/wikis/caches/Xow_page_cache_itm.java
index e21db0650..39fb96cdb 100644
--- a/400_xowa/src/gplx/xowa/wikis/caches/Xow_page_cache_itm.java
+++ b/400_xowa/src/gplx/xowa/wikis/caches/Xow_page_cache_itm.java
@@ -33,7 +33,8 @@ public class Xow_page_cache_itm implements Xowd_text_bry_owner {
public int Redirect_id() {return redirect_id;} private int redirect_id;
public void Set_text_bry_by_db(byte[] v) {this.wtxt__direct = v;}
public void Set_page_ids(int page_id, int redirect_id) {this.page_id = page_id; this.redirect_id = redirect_id;}
- public void Set_redirect_bry(byte[] trg_wtxt) {
+ public void Set_redirect(Xoa_ttl ttl, byte[] trg_wtxt) {
+ this.ttl = ttl;
this.wtxt__redirect = wtxt__direct;
this.wtxt__direct = trg_wtxt;
}
diff --git a/400_xowa/src/gplx/xowa/wikis/ctgs/Xoctg_fmtr_itm_base.java b/400_xowa/src/gplx/xowa/wikis/ctgs/Xoctg_fmtr_itm_base.java
index b4134a576..6a4162e7c 100644
--- a/400_xowa/src/gplx/xowa/wikis/ctgs/Xoctg_fmtr_itm_base.java
+++ b/400_xowa/src/gplx/xowa/wikis/ctgs/Xoctg_fmtr_itm_base.java
@@ -22,6 +22,7 @@ import gplx.xowa.langs.*; import gplx.xowa.langs.msgs.*;
import gplx.xowa.users.history.*;
abstract class Xoctg_fmtr_itm_base implements gplx.core.brys.Bfr_arg, Xoctg_fmtr_itm {
private Xou_history_mgr history_mgr; private Xoh_wtr_ctx hctx;
+ private final Bry_bfr tmp_bfr = Bry_bfr_.New();
protected Xowe_wiki wiki; Xol_lang_itm lang; Xoctg_view_ctg ctg; protected int len; protected Xoh_href_parser href_parser; protected Bry_fmtr html_itm, html_itm_missing; protected Xoctg_view_grp list; protected Xow_msg_mgr msg_mgr;
public void Init_from_all(Xowe_wiki wiki, Xol_lang_itm lang, Xoh_wtr_ctx hctx, Xoctg_view_ctg ctg, Xoctg_fmtr_all mgr, Xoctg_view_grp itms_list, int itms_list_len) {
this.wiki = wiki; this.lang = lang; this.hctx = hctx; this.ctg = ctg; this.list = itms_list; this.len = itms_list_len; this.msg_mgr = wiki.Msg_mgr();
@@ -62,7 +63,7 @@ abstract class Xoctg_fmtr_itm_base implements gplx.core.brys.Bfr_arg, Xoctg_fmtr
}
@gplx.Virtual public void Bld_html(Bry_bfr bfr, Xowe_wiki wiki, Xoh_wtr_ctx hctx, Xoctg_view_itm itm, Xoa_ttl ttl, byte[] ttl_page, Xoh_href_parser href_parser, Bry_fmtr html_itm) {
byte[] itm_href = wiki.Html__href_wtr().Build_to_bry(wiki, ttl);
- byte[] itm_full_ttl = gplx.langs.htmls.Gfh_utl.Escape_html_as_bry(ttl.Full_txt_w_ttl_case());// NOTE: ttl.Full_txt() to get full ns; EX: Template:A instead of just "A"
+ byte[] itm_full_ttl = gplx.langs.htmls.Gfh_utl.Escape_html_as_bry(tmp_bfr, ttl.Full_txt_w_ttl_case());// NOTE: ttl.Full_txt() to get full ns; EX: Template:A instead of just "A"
byte[] itm_atr_cls = hctx.Mode_is_hdump() ? Bry_.Empty : Xoh_lnki_wtr.Lnki_cls_visited(history_mgr, wiki.Domain_bry(), ttl.Page_txt()); // NOTE: must be ttl.Page_txt() in order to match Xou_history_mgr.Add
Bry_fmtr fmtr = itm.Missing() ? html_itm_missing : html_itm;
fmtr.Bld_bfr_many(bfr, itm_href, itm_full_ttl, itm_full_ttl, itm.Page_id(), itm_atr_cls);
diff --git a/400_xowa/src/gplx/xowa/wikis/ctgs/Xoctg_idx_mgr_tst.java b/400_xowa/src/gplx/xowa/wikis/ctgs/Xoctg_idx_mgr_tst.java
index f504e6822..d4f2f2228 100644
--- a/400_xowa/src/gplx/xowa/wikis/ctgs/Xoctg_idx_mgr_tst.java
+++ b/400_xowa/src/gplx/xowa/wikis/ctgs/Xoctg_idx_mgr_tst.java
@@ -76,7 +76,7 @@ class Xoctg_idx_mgr_fxt {
return this;
} private Xoae_app app; Xowe_wiki wiki; Xoctg_idx_mgr idx_mgr; static final byte[] Ctg_name = Bry_.new_a7("Ctg_test");
public byte[] Make_src(int len) {
- Bry_bfr bfr = wiki.Utl__bfr_mkr().Get_k004().Mkr_rls();
+ Bry_bfr bfr = Bry_bfr_.New();
bfr.Add_byte_pipe(); // always have leading pipe
for (int i = 0; i < len; i++) {
bfr.Add_base85_len_5(i).Add_byte(Byte_ascii.Semic); // idx.Id() = i
diff --git a/400_xowa/src/gplx/xowa/wikis/data/Xow_data_mgr_tst.java b/400_xowa/src/gplx/xowa/wikis/data/Xow_data_mgr_tst.java
index 0c00c5c99..0cc585b04 100644
--- a/400_xowa/src/gplx/xowa/wikis/data/Xow_data_mgr_tst.java
+++ b/400_xowa/src/gplx/xowa/wikis/data/Xow_data_mgr_tst.java
@@ -20,8 +20,8 @@ import org.junit.*; import gplx.xowa.wikis.tdbs.*;
import gplx.xowa.wikis.nss.*;
public class Xow_data_mgr_tst {
Xow_data_mgr_fxt fxt = new Xow_data_mgr_fxt();
- @Before public void init() {fxt.Clear(); Tfds.Now_enabled_y_();}
- @After public void term() {Tfds.Now_enabled_n_();}
+ @Before public void init() {fxt.Clear(); Datetime_now.Manual_y_();}
+ @After public void term() {Datetime_now.Manual_n_();}
@Test public void Create() {
fxt .Create("A1", "A1 data")
.Create("B12", "B12 data")
diff --git a/400_xowa/src/gplx/xowa/wikis/data/tbls/Xowd_category_itm.java b/400_xowa/src/gplx/xowa/wikis/data/tbls/Xowd_category_itm.java
index 976cb4159..376461899 100644
--- a/400_xowa/src/gplx/xowa/wikis/data/tbls/Xowd_category_itm.java
+++ b/400_xowa/src/gplx/xowa/wikis/data/tbls/Xowd_category_itm.java
@@ -19,7 +19,7 @@ package gplx.xowa.wikis.data.tbls; import gplx.*; import gplx.xowa.*; import gpl
import gplx.core.primitives.*; import gplx.xowa.wikis.ctgs.*;
public class Xowd_category_itm {
public int Id() {return id;} private int id;
- public Int_obj_val Id_val() {if (id_val == null) id_val = Int_obj_val.new_(id); return id_val;} Int_obj_val id_val;
+ public Int_obj_val Id_val() {if (id_val == null) id_val = new Int_obj_val(id); return id_val;} Int_obj_val id_val;
public int File_idx() {return file_idx;} private int file_idx;
public boolean Hidden() {return hidden;} private boolean hidden;
public int Count_all() {return count_subcs + count_files + count_pages;}
@@ -40,5 +40,5 @@ public class Xowd_category_itm {
rv.count_subcs = count_subcs; rv.count_files = count_files; rv.count_pages = count_pages;
return rv;
}
- public static final Xowd_category_itm Null = new Xowd_category_itm(); Xowd_category_itm() {}
+ public static final Xowd_category_itm Null = new Xowd_category_itm(); Xowd_category_itm() {}
}
diff --git a/400_xowa/src/gplx/xowa/wikis/data/tbls/Xowd_page_itm.java b/400_xowa/src/gplx/xowa/wikis/data/tbls/Xowd_page_itm.java
index 855aa04a8..85e8aee05 100644
--- a/400_xowa/src/gplx/xowa/wikis/data/tbls/Xowd_page_itm.java
+++ b/400_xowa/src/gplx/xowa/wikis/data/tbls/Xowd_page_itm.java
@@ -21,7 +21,7 @@ import gplx.xowa.wikis.nss.*;
public class Xowd_page_itm {
public Xowd_page_itm() {this.Clear();}
public int Id() {return id;} public Xowd_page_itm Id_(int v) {id = v; id_val = null; return this;} private int id;
- public Int_obj_val Id_val() {if (id_val == null) id_val = Int_obj_val.new_(id); return id_val;} private Int_obj_val id_val;
+ public Int_obj_val Id_val() {if (id_val == null) id_val = new Int_obj_val(id); return id_val;} private Int_obj_val id_val;
public int Ns_id() {return ns_id;} public Xowd_page_itm Ns_id_(int v) {ns_id = v; return this;} private int ns_id;
public byte[] Ttl_page_db() {return ttl_page_db;} public Xowd_page_itm Ttl_page_db_(byte[] v) {ttl_page_db = v; return this;} private byte[] ttl_page_db; // EX: Category1
public byte[] Ttl_full_db() {return ttl_full_db;} private byte[] ttl_full_db; // EX: Category:Category1
diff --git a/400_xowa/src/gplx/xowa/wikis/data/tbls/Xowd_text_tbl.java b/400_xowa/src/gplx/xowa/wikis/data/tbls/Xowd_text_tbl.java
index e0f488840..edf1eef0c 100644
--- a/400_xowa/src/gplx/xowa/wikis/data/tbls/Xowd_text_tbl.java
+++ b/400_xowa/src/gplx/xowa/wikis/data/tbls/Xowd_text_tbl.java
@@ -22,7 +22,7 @@ public class Xowd_text_tbl implements Rls_able {
private final String tbl_name = "text"; private final Dbmeta_fld_list flds = new Dbmeta_fld_list();
private final String fld_page_id, fld_text_data;
private final Db_conn conn; private Db_stmt stmt_select, stmt_insert;
- private final Io_stream_zip_mgr zip_mgr = Xoa_app_.Utl__zip_mgr(); private final byte zip_tid;
+ private final Io_stream_zip_mgr zip_mgr = new Io_stream_zip_mgr(); private final byte zip_tid;
public String Fld_text_data() {return fld_text_data;}
public Xowd_text_tbl(Db_conn conn, boolean schema_is_1, byte zip_tid) {
this.conn = conn; this.zip_tid = zip_tid;
diff --git a/400_xowa/src/gplx/xowa/wikis/data/tbls/Xowd_wbase_pid_tbl.java b/400_xowa/src/gplx/xowa/wikis/data/tbls/Xowd_wbase_pid_tbl.java
index 6afa00483..45c4facbe 100644
--- a/400_xowa/src/gplx/xowa/wikis/data/tbls/Xowd_wbase_pid_tbl.java
+++ b/400_xowa/src/gplx/xowa/wikis/data/tbls/Xowd_wbase_pid_tbl.java
@@ -16,7 +16,7 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
package gplx.xowa.wikis.data.tbls; import gplx.*; import gplx.xowa.*; import gplx.xowa.wikis.*; import gplx.xowa.wikis.data.*;
-import gplx.dbs.*; import gplx.xowa.xtns.wdatas.*;
+import gplx.dbs.*; import gplx.xowa.xtns.wbases.*;
public class Xowd_wbase_pid_tbl implements Rls_able {
private final String tbl_name; private final Dbmeta_fld_list flds = new Dbmeta_fld_list();
private final String fld_src_lang, fld_src_ttl, fld_trg_ttl;
diff --git a/400_xowa/src/gplx/xowa/wikis/dbs/Xodb_load_mgr_sql_tst.java b/400_xowa/src/gplx/xowa/wikis/dbs/Xodb_load_mgr_sql_tst.java
index 25301ee1d..82b1c923d 100644
--- a/400_xowa/src/gplx/xowa/wikis/dbs/Xodb_load_mgr_sql_tst.java
+++ b/400_xowa/src/gplx/xowa/wikis/dbs/Xodb_load_mgr_sql_tst.java
@@ -62,7 +62,7 @@ class Xodb_load_mgr_sql_fxt {
int len = ary.length;
Xodb_mgr_sql db_mgr = wiki.Db_mgr_as_sql();
Xowd_cat_core_tbl cat_core_tbl = db_mgr.Core_data_mgr().Db__cat_core().Tbl__cat_core().Create_tbl();
- DateAdp modified = DateAdp_.Now();
+ DateAdp modified = Datetime_now.Get();
Xowd_page_tbl tbl_page = wiki.Db_mgr_as_sql().Core_data_mgr().Tbl__page();
tbl_page.Insert_bgn();
cat_core_tbl.Insert_bgn();
diff --git a/400_xowa/src/gplx/xowa/wikis/dbs/Xodb_load_mgr_txt.java b/400_xowa/src/gplx/xowa/wikis/dbs/Xodb_load_mgr_txt.java
index dc7cbc360..34553aac6 100644
--- a/400_xowa/src/gplx/xowa/wikis/dbs/Xodb_load_mgr_txt.java
+++ b/400_xowa/src/gplx/xowa/wikis/dbs/Xodb_load_mgr_txt.java
@@ -500,8 +500,8 @@ public class Xodb_load_mgr_txt implements Xodb_load_mgr {
public int Load_pid(byte[] lang_key, byte[] pid_name) {
if (pids_root == null)
pids_root = wiki.Appe().Wiki_mgr().Wdata_mgr().Wdata_wiki().Tdb_fsys_mgr().Site_dir().GenSubDir_nest("data", "pid");
- Xob_xdat_itm pid_itm = Load_xdat_itm_by_dir(pids_root.GenSubDir(String_.new_u8(lang_key)), pid_name); if (pid_itm == null) return gplx.xowa.xtns.wdatas.Wdata_wiki_mgr.Pid_null;
- return Bry_.To_int_or(pid_itm.Src(), pid_itm.Itm_bgn() + pid_name.length + 1 + 1, pid_itm.Itm_end(), gplx.xowa.xtns.wdatas.Wdata_wiki_mgr.Pid_null); // extract pid; note that all itms have format of "ttl|pid"; +1=skip pipe; +1 skip p
+ Xob_xdat_itm pid_itm = Load_xdat_itm_by_dir(pids_root.GenSubDir(String_.new_u8(lang_key)), pid_name); if (pid_itm == null) return gplx.xowa.xtns.wbases.Wdata_wiki_mgr.Pid_null;
+ return Bry_.To_int_or(pid_itm.Src(), pid_itm.Itm_bgn() + pid_name.length + 1 + 1, pid_itm.Itm_end(), gplx.xowa.xtns.wbases.Wdata_wiki_mgr.Pid_null); // extract pid; note that all itms have format of "ttl|pid"; +1=skip pipe; +1 skip p
} Io_url pids_root;
public int Load_ctg_count(byte[] ttl) {return wiki.Db_mgr().Category_version() == Xoa_ctg_mgr.Version_1 ? Load_ctg_count_v1(ttl) : Load_ctg_count_v2(ttl);}
int Load_ctg_count_v1(byte[] ttl) {
diff --git a/400_xowa/src/gplx/xowa/wikis/dbs/Xodb_save_mgr_sql.java b/400_xowa/src/gplx/xowa/wikis/dbs/Xodb_save_mgr_sql.java
index 78c324666..43b113f00 100644
--- a/400_xowa/src/gplx/xowa/wikis/dbs/Xodb_save_mgr_sql.java
+++ b/400_xowa/src/gplx/xowa/wikis/dbs/Xodb_save_mgr_sql.java
@@ -50,7 +50,7 @@ public class Xodb_save_mgr_sql implements Xodb_save_mgr {
page_core_tbl.Insert_bgn();
page_text_tbl.Insert_bgn();
try {
- db_mgr.Core_data_mgr().Create_page(page_core_tbl, page_text_tbl, page_id, ns_id, ttl.Page_db(), redirect, DateAdp_.Now(), text_zip, text_raw.length, ns_count, page_text_db.Id(), -1);
+ db_mgr.Core_data_mgr().Create_page(page_core_tbl, page_text_tbl, page_id, ns_id, ttl.Page_db(), redirect, Datetime_now.Get(), text_zip, text_raw.length, ns_count, page_text_db.Id(), -1);
db_file.Tbl__ns().Update_ns_count(ns_id, ns_count);
db_file.Tbl__cfg().Update_int("db", "page.id_next", page_id + 1);
} finally {
@@ -61,7 +61,7 @@ public class Xodb_save_mgr_sql implements Xodb_save_mgr {
}
public void Data_update(Xoae_page page, byte[] text_raw) {
boolean redirect = db_mgr.Wiki().Redirect_mgr().Is_redirect(text_raw, text_raw.length);
- DateAdp modified = update_modified_on_enabled ? DateAdp_.Now() : page.Db().Page().Modified_on();
+ DateAdp modified = update_modified_on_enabled ? Datetime_now.Get() : page.Db().Page().Modified_on();
int page_id = page.Db().Page().Id();
db_mgr.Core_data_mgr().Tbl__page().Update__redirect__modified(page_id, redirect, modified);
Xowd_page_itm db_page = new Xowd_page_itm();
diff --git a/400_xowa/src/gplx/xowa/wikis/dbs/Xodb_save_mgr_txt.java b/400_xowa/src/gplx/xowa/wikis/dbs/Xodb_save_mgr_txt.java
index 6b157bea0..26b1a12c9 100644
--- a/400_xowa/src/gplx/xowa/wikis/dbs/Xodb_save_mgr_txt.java
+++ b/400_xowa/src/gplx/xowa/wikis/dbs/Xodb_save_mgr_txt.java
@@ -41,7 +41,7 @@ public class Xodb_save_mgr_txt implements Xodb_save_mgr {
int page_id = page_id_next++;
int fil_idx = 0;
int ns_id = ttl.Ns().Id();
- Xotdb_page_itm_.Txt_page_save(tmp, page_id, DateAdp_.Now(), ttl_bry, text, true);
+ Xotdb_page_itm_.Txt_page_save(tmp, page_id, Datetime_now.Get(), ttl_bry, text, true);
Io_url page_rdr_url = fsys_mgr.Url_ns_fil(Xotdb_dir_info_.Tid_page, ns_id, fil_idx);
byte[] page_rdr_bry = gplx.core.ios.streams.Io_stream_rdr_.Load_all(page_rdr_url);
Xob_xdat_file page_rdr = new Xob_xdat_file();
@@ -87,7 +87,7 @@ public class Xodb_save_mgr_txt implements Xodb_save_mgr {
int text_len = text.length;
DateAdp modified_on = tmp_page.Modified_on();
if (update_modified_on_enabled) {
- modified_on = DateAdp_.Now();
+ modified_on = Datetime_now.Get();
page.Db().Page().Modified_on_(modified_on);
}
Xotdb_page_itm_.Txt_page_save(tmp_bfr, db_page.Id(), modified_on, ttl_bry, text, true);
diff --git a/400_xowa/src/gplx/xowa/wikis/domains/Xow_domain_uid_.java b/400_xowa/src/gplx/xowa/wikis/domains/Xow_domain_uid_.java
index fc9f77d71..ed75bbc4f 100644
--- a/400_xowa/src/gplx/xowa/wikis/domains/Xow_domain_uid_.java
+++ b/400_xowa/src/gplx/xowa/wikis/domains/Xow_domain_uid_.java
@@ -96,10 +96,7 @@ public class Xow_domain_uid_ {
default: throw Err_.new_unhandled(type_id);
}
Xol_lang_stub lang = Xol_lang_stub_.Get_by_id(lang_id);
- Bry_bfr bfr = Xoa_app_.Utl__bfr_mkr().Get_b128();
- bfr.Add(lang.Key()).Add_byte_dot().Add(tid_bry).Add_byte_dot().Add(Xow_domain_itm_.Seg__org);
- byte[] domain_bry = bfr.To_bry_and_clear();
- bfr.Mkr_rls();
+ byte[] domain_bry = Bry_.Add(lang.Key(), Byte_ascii.Dot_bry, tid_bry, Byte_ascii.Dot_bry, Xow_domain_itm_.Seg__org);
return Xow_domain_itm.new_(domain_bry, tid_int, lang, lang.Key());
}
}
diff --git a/400_xowa/src/gplx/xowa/wikis/nss/Xow_ns.java b/400_xowa/src/gplx/xowa/wikis/nss/Xow_ns.java
index 39bdb0ec5..7b65d513e 100644
--- a/400_xowa/src/gplx/xowa/wikis/nss/Xow_ns.java
+++ b/400_xowa/src/gplx/xowa/wikis/nss/Xow_ns.java
@@ -35,7 +35,9 @@ public class Xow_ns implements Gfo_invk {
}
this.num_str = Int_.To_str_pad_bgn_zero(id, 3);
this.num_bry = Bry_.new_a7(num_str);
- this.name_enc = Xoa_url_encoder.Instance.Encode(name_db);
+ synchronized (url_encoder) { // LOCK:static-obj
+ this.name_enc = url_encoder.Encode(name_db);
+ }
this.name_ui = Bry_.Replace(name_enc, Byte_ascii.Underline, Byte_ascii.Space);
this.name_ui_w_colon = Bry_.Replace(name_db_w_colon, Byte_ascii.Underline, Byte_ascii.Space);
}
@@ -102,4 +104,6 @@ public class Xow_ns implements Gfo_invk {
else return Gfo_invk_.Rv_unhandled;
return this;
} private static final String Invk_subpages_enabled_ = "subpages_enabled_", Invk_id = "id", Invk_name_txt = "name_txt", Invk_name_ui = "name_ui";
+
+ private static final Xoa_url_encoder url_encoder = new Xoa_url_encoder();
}
diff --git a/400_xowa/src/gplx/xowa/wikis/nss/Xow_ns_canonical_.java b/400_xowa/src/gplx/xowa/wikis/nss/Xow_ns_canonical_.java
index d3169cbd2..360fda042 100644
--- a/400_xowa/src/gplx/xowa/wikis/nss/Xow_ns_canonical_.java
+++ b/400_xowa/src/gplx/xowa/wikis/nss/Xow_ns_canonical_.java
@@ -18,7 +18,7 @@ along with this program. If not, see .
package gplx.xowa.wikis.nss; import gplx.*; import gplx.xowa.*; import gplx.xowa.wikis.*;
import gplx.core.primitives.*;
public class Xow_ns_canonical_ {
- public static final Xow_ns[] Ary = new Xow_ns[] // REF.MW: Namespace.php|$wgCanonicalNamespaceNames
+ public static final Xow_ns[] Ary = new Xow_ns[] // REF.MW: Namespace.php|$wgCanonicalNamespaceNames
{ New_itm(Xow_ns_.Tid__media , Xow_ns_.Key__media)
, New_itm(Xow_ns_.Tid__special , Xow_ns_.Key__special)
, New_itm(Xow_ns_.Tid__talk , Xow_ns_.Key__talk)
@@ -47,7 +47,7 @@ public class Xow_ns_canonical_ {
int len = Ary.length;
for (int i = 0; i < len; ++i) {
Xow_ns ns = Ary[i];
- id_hash.Add(ns.Name_db(), Int_obj_val.new_(ns.Id()));
+ id_hash.Add(ns.Name_db(), new Int_obj_val(ns.Id()));
}
}
Object rv_obj = id_hash.Get_by(key);
diff --git a/400_xowa/src/gplx/xowa/wikis/nss/Xow_ns_mgr.java b/400_xowa/src/gplx/xowa/wikis/nss/Xow_ns_mgr.java
index 225aa0810..bec50e5cd 100644
--- a/400_xowa/src/gplx/xowa/wikis/nss/Xow_ns_mgr.java
+++ b/400_xowa/src/gplx/xowa/wikis/nss/Xow_ns_mgr.java
@@ -84,7 +84,7 @@ public class Xow_ns_mgr implements Gfo_invk, gplx.core.lists.ComparerAble {
}
public void Aliases_clear() {aliases.Clear();}
public Xow_ns_mgr Aliases_add(int ns_id, String name) {
- Keyval kv = Keyval_.new_(name, Int_obj_val.new_(ns_id));
+ Keyval kv = Keyval_.new_(name, new Int_obj_val(ns_id));
aliases.Add_if_dupe_use_nth(name, kv);
return this;
}
diff --git a/400_xowa/src/gplx/xowa/wikis/pages/Xow_page_mgr.java b/400_xowa/src/gplx/xowa/wikis/pages/Xow_page_mgr.java
index 1be8c419e..c06beb51f 100644
--- a/400_xowa/src/gplx/xowa/wikis/pages/Xow_page_mgr.java
+++ b/400_xowa/src/gplx/xowa/wikis/pages/Xow_page_mgr.java
@@ -36,9 +36,9 @@ public class Xow_page_mgr implements Gfo_invk {
switch (ns.Id()) {
case Xow_ns_.Tid__special: // Special pages are built (not loaded from db)
wiki.Special_mgr().Special__gen(wiki.App(), wiki, rv, url, ttl);
- Xopg_redirect_itm redirect_itm = rv.Redirect().Itms__get_at_nth_or_null();
+ Xopg_redirect_itm redirect_itm = rv.Redirect_trail().Itms__get_at_nth_or_null();
if (redirect_itm != null) {
- rv.Redirect().Clear(); // clear needed; EX: Special:Random -> [[Redirected_page]] -> {must clear here} -> [[Page]]
+ rv.Redirect_trail().Clear(); // clear needed; EX: Special:Random -> [[Redirected_page]] -> {must clear here} -> [[Page]]
Load_by_ns(rv, redirect_itm.Url(), redirect_itm.Ttl(), called_from_msg);
}
return;
@@ -92,7 +92,8 @@ public class Xow_page_mgr implements Gfo_invk {
return;
// redirect; do some bookkeeping and reset ns / ttl
- rv.Redirect().Itms__add__article(Xoa_url.New(wiki, redirect_ttl), redirect_ttl, wtxt); // NOTE: must be url_encoded; EX: "en.wikipedia.org/?!" should generate link of "en.wikipedia.org/%3F!?redirect=no"
+ // NOTE: this adds the target ttl to redirect_mgr (#REDIRECT [[A]]); note that special redirects will add source ttl; DATE:2016-07-31
+ rv.Redirect_trail().Itms__add__article(Xoa_url.New(wiki, rv.Ttl()), rv.Ttl(), wtxt);// NOTE: must be url_encoded; EX: "en.wikipedia.org/?!" should generate link of "en.wikipedia.org/%3F!?redirect=no"
rv.Ttl_(redirect_ttl);
ns = redirect_ttl.Ns();
ttl = redirect_ttl;
@@ -110,7 +111,7 @@ public class Xow_page_mgr implements Gfo_invk {
rv.Db().Page().Id_(redirect_row.Id()).Modified_on_(redirect_row.Modified_on()).Html_db_id_(redirect_row.Html_db_id());
Xoa_ttl redirect_ttl = wiki.Ttl_parse(redirect_row.Ns_id(), redirect_row.Ttl_page_db());
rv.Ttl_(redirect_ttl);
- rv.Redirect().Itms__add__article(Xoa_url.New(wiki, redirect_ttl), redirect_ttl, Bry_.Empty); // NOTE: must be url_encoded; EX: "en.wikipedia.org/?!" should generate link of "en.wikipedia.org/%3F!?redirect=no"
+ rv.Redirect_trail().Itms__add__article(Xoa_url.New(wiki, redirect_ttl), redirect_ttl, Bry_.Empty); // NOTE: must be url_encoded; EX: "en.wikipedia.org/?!" should generate link of "en.wikipedia.org/%3F!?redirect=no"
}
public Xoae_page Load_page_and_parse(Xoa_url url, Xoa_ttl ttl) {return Load_page_and_parse(url, ttl, wiki.Lang(), wiki.Appe().Gui_mgr().Browser_win().Active_tab(), true);}
public Xoae_page Load_page_and_parse(Xoa_url url, Xoa_ttl ttl, Xol_lang_itm lang, Xog_tab_itm tab, boolean parse_page) {
@@ -164,7 +165,7 @@ public class Xow_page_mgr implements Gfo_invk {
Xoa_ttl trg_ttl = Xoa_ttl.Parse(wiki, page_bry);
Xoa_url trg_url = Xoa_url.New(wiki.Domain_bry(), page_bry);
page.Ttl_(trg_ttl).Url_(trg_url);
- page.Redirect().Itms__add__article(trg_url, trg_ttl, null);
+ page.Redirect_trail().Itms__add__article(trg_url, trg_ttl, null);
wiki.Data_mgr().Load_from_db(page, trg_ttl.Ns(), trg_ttl, trg_url.Qargs_mgr().Match(Xoa_url_.Qarg__redirect, Xoa_url_.Qarg__redirect__no));
}
diff --git a/400_xowa/src/gplx/xowa/wikis/pages/redirects/Xopg_redirect_mgr.java b/400_xowa/src/gplx/xowa/wikis/pages/redirects/Xopg_redirect_mgr.java
index b5c653ee6..83ea6344c 100644
--- a/400_xowa/src/gplx/xowa/wikis/pages/redirects/Xopg_redirect_mgr.java
+++ b/400_xowa/src/gplx/xowa/wikis/pages/redirects/Xopg_redirect_mgr.java
@@ -20,7 +20,8 @@ import gplx.xowa.specials.*;
public class Xopg_redirect_mgr {
private final List_adp itms = List_adp_.New();
public int Itms__len() {return itms.Len();}
- public byte[] Itms__get_at_0th_or_null() {return itms.Len() == 0 ? null : this.Itms__get_at(0).Wikitext();}
+ public byte[] Itms__get_wtxt_at_0th_or_null() {return itms.Len() == 0 ? null : this.Itms__get_at(0).Wikitext();}
+ public Xopg_redirect_itm Itms__get_at_0th_or_null() {return itms.Len() == 0 ? null : (Xopg_redirect_itm)itms.Get_at(0);}
public Xopg_redirect_itm Itms__get_at_nth_or_null() {return itms.Len() == 0 ? null : (Xopg_redirect_itm)itms.Get_at(itms.Len() - 1);}
public Xopg_redirect_itm Itms__get_at(int i) {return (Xopg_redirect_itm)itms.Get_at(i);}
public void Itms__add__article(Xoa_url url, Xoa_ttl ttl, byte[] wikitext) {Itms__add(url, ttl, wikitext);}
diff --git a/400_xowa/src/gplx/xowa/wikis/tdbs/metas/Xof_meta_mgr_tst.java b/400_xowa/src/gplx/xowa/wikis/tdbs/metas/Xof_meta_mgr_tst.java
index 50e001fea..39589309b 100644
--- a/400_xowa/src/gplx/xowa/wikis/tdbs/metas/Xof_meta_mgr_tst.java
+++ b/400_xowa/src/gplx/xowa/wikis/tdbs/metas/Xof_meta_mgr_tst.java
@@ -81,8 +81,9 @@ class Xof_file_regy_fxt {
Xof_meta_thumb[] To_ary(String[] ary) {
int len = ary.length;
Xof_meta_thumb[] rv = new Xof_meta_thumb[len];
+ Int_ary_parser parser = new Int_ary_parser();
for (int i = 0; i < len; i++) {
- int[] size = Int_ary_parser.Instance.Parse_ary(ary[i], Byte_ascii.Comma);
+ int[] size = parser.Parse_ary(ary[i], Byte_ascii.Comma);
rv[i] = new Xof_meta_thumb().Width_(size[0]).Height_(size[1]).Exists_y_();
}
return rv;
diff --git a/400_xowa/src/gplx/xowa/wikis/tdbs/metas/Xof_meta_thumb_parser.java b/400_xowa/src/gplx/xowa/wikis/tdbs/metas/Xof_meta_thumb_parser.java
index d295dd35c..34903608f 100644
--- a/400_xowa/src/gplx/xowa/wikis/tdbs/metas/Xof_meta_thumb_parser.java
+++ b/400_xowa/src/gplx/xowa/wikis/tdbs/metas/Xof_meta_thumb_parser.java
@@ -18,8 +18,8 @@ along with this program. If not, see .
package gplx.xowa.wikis.tdbs.metas; import gplx.*; import gplx.xowa.*; import gplx.xowa.wikis.*; import gplx.xowa.wikis.tdbs.*;
import gplx.core.primitives.*;
public class Xof_meta_thumb_parser extends Obj_ary_parser_base {
- Number_parser num_parser = new Number_parser();
- Int_ary_parser int_ary_parser = new Int_ary_parser();
+ private final Gfo_number_parser number_parser = new Gfo_number_parser();
+ private final Int_ary_parser int_ary_parser = new Int_ary_parser();
public Xof_meta_thumb[] Ary() {return ary;} private Xof_meta_thumb[] ary = new Xof_meta_thumb[Ary_max]; static final int Ary_max = 16;
public int Len() {return ary_idx;} private int ary_idx;
public void Parse_ary(byte[] bry, int bgn, int end) {super.Parse_core(bry, bgn, end, Byte_ascii.Semic, Byte_ascii.Null);}
@@ -50,11 +50,11 @@ public class Xof_meta_thumb_parser extends Obj_ary_parser_base {
byte b = bry[pos];
switch (b) {
case Dlm_width: // "," found; assume width; note that seek commas will be handled by seek
- itm.Width_(num_parser.Parse(bry, num_bgn, pos).Rv_as_int());
+ itm.Width_(number_parser.Parse(bry, num_bgn, pos).Rv_as_int());
num_bgn = pos + Int_.Const_dlm_len;
break;
case Dlm_seek:
- itm.Height_(num_parser.Parse(bry, num_bgn, pos).Rv_as_int());
+ itm.Height_(number_parser.Parse(bry, num_bgn, pos).Rv_as_int());
num_bgn = pos + Int_.Const_dlm_len;
height_found = true;
itm.Seeks_(int_ary_parser.Parse_ary(bry, num_bgn, end, Byte_ascii.Comma));
@@ -64,7 +64,7 @@ public class Xof_meta_thumb_parser extends Obj_ary_parser_base {
++pos;
}
if (!height_found) // handle '1:2,3' as opposed to '1:2,3@4'
- itm.Height_(num_parser.Parse(bry, num_bgn, end).Rv_as_int());
+ itm.Height_(number_parser.Parse(bry, num_bgn, end).Rv_as_int());
ary[ary_idx++] = itm;
}
static final String GRP_KEY = "xowa.meta.itm.file";
diff --git a/400_xowa/src/gplx/xowa/wikis/xwikis/sitelinks/htmls/Xoa_sitelink_div_wtr.java b/400_xowa/src/gplx/xowa/wikis/xwikis/sitelinks/htmls/Xoa_sitelink_div_wtr.java
index f135e16ff..5db44eaa8 100644
--- a/400_xowa/src/gplx/xowa/wikis/xwikis/sitelinks/htmls/Xoa_sitelink_div_wtr.java
+++ b/400_xowa/src/gplx/xowa/wikis/xwikis/sitelinks/htmls/Xoa_sitelink_div_wtr.java
@@ -19,9 +19,9 @@ package gplx.xowa.wikis.xwikis.sitelinks.htmls; import gplx.*; import gplx.xowa.
import gplx.core.brys.fmtrs.*;
import gplx.xowa.apps.apis.xowa.html.*;
import gplx.xowa.langs.*; import gplx.xowa.langs.msgs.*;
-import gplx.xowa.xtns.wdatas.core.*;
+import gplx.xowa.xtns.wbases.core.*;
public class Xoa_sitelink_div_wtr {
- private final Xoa_sitelink_grp_wtr grp_wtr = new Xoa_sitelink_grp_wtr();
+ private final Xoa_sitelink_grp_wtr grp_wtr = new Xoa_sitelink_grp_wtr();
public void Write(Bry_bfr bfr, Xowe_wiki wiki, Xoa_sitelink_mgr mgr, List_adp slink_list, byte[] qid) {
Xoa_sitelink_grp_mgr grp_mgr = mgr.Grp_mgr(); Xoa_sitelink_itm_mgr itm_mgr = mgr.Itm_mgr();
// reset grps
@@ -52,12 +52,14 @@ public class Xoa_sitelink_div_wtr {
// write html
Xoapi_toggle_itm toggle_itm = wiki.Appe().Api_root().Html().Page().Toggle_mgr().Get_or_new("wikidata-langs");
toggle_itm.Init(wiki.Msg_mgr().Val_by_id(Xol_msg_itm_.Id_page_lang_header));
- Bry_bfr tmp_bfr = wiki.Utl__bfr_mkr().Get_b128().Mkr_rls();
- byte[] wikidata_link = Bry_.Len_eq_0(qid) ? Bry_.Empty : wbase_fmtr.Bld_bry_many(tmp_bfr, qid);
- div_fmtr.Bld_bfr_many(bfr, slink_len, wikidata_link, toggle_itm.Html_toggle_btn(), toggle_itm.Html_toggle_hdr(), grp_wtr.Fmt__init(grp_mgr));
+ Bry_bfr tmp_bfr = wiki.Utl__bfr_mkr().Get_b128();
+ try {
+ byte[] wikidata_link = Bry_.Len_eq_0(qid) ? Bry_.Empty : wbase_fmtr.Bld_bry_many(tmp_bfr, qid);
+ div_fmtr.Bld_bfr_many(bfr, slink_len, wikidata_link, toggle_itm.Html_toggle_btn(), toggle_itm.Html_toggle_hdr(), grp_wtr.Fmt__init(grp_mgr));
+ } finally {tmp_bfr.Mkr_rls();}
}
- private static final Bry_fmtr wbase_fmtr = Bry_fmtr.new_(" (wikidata)", "qid");
- private static final Bry_fmtr div_fmtr = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last
+ private static final Bry_fmtr wbase_fmtr = Bry_fmtr.new_(" (wikidata)", "qid");
+ private static final Bry_fmtr div_fmtr = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last
( "
"
, "
~{toggle_btn} (links: ~{len}) ~{wikidata_link}
"
, "
~{grps}"
diff --git a/400_xowa/src/gplx/xowa/wikis/xwikis/sitelinks/htmls/Xoa_sitelink_div_wtr_fxt.java b/400_xowa/src/gplx/xowa/wikis/xwikis/sitelinks/htmls/Xoa_sitelink_div_wtr_fxt.java
index 74dba48cd..15d81257f 100644
--- a/400_xowa/src/gplx/xowa/wikis/xwikis/sitelinks/htmls/Xoa_sitelink_div_wtr_fxt.java
+++ b/400_xowa/src/gplx/xowa/wikis/xwikis/sitelinks/htmls/Xoa_sitelink_div_wtr_fxt.java
@@ -56,7 +56,7 @@ class Xoa_sitelink_div_wtr_fxt {
wiki.Html_mgr().Html_wtr().Write_doc(bfr, ctx, raw_bry, root);
Bry_bfr html_bfr = Bry_bfr_.New();
- wiki.App().Xwiki_mgr__sitelink_mgr().Write_html(html_bfr, wiki, ctx.Page().Slink_list(), gplx.xowa.xtns.wdatas.Wdata_xwiki_link_wtr.Qid_null);
+ wiki.App().Xwiki_mgr__sitelink_mgr().Write_html(html_bfr, wiki, ctx.Page().Slink_list(), gplx.xowa.xtns.wbases.Wdata_xwiki_link_wtr.Qid_null);
Tfds.Eq_str_lines(expd, html_bfr.To_str_and_clear());
}
}
diff --git a/400_xowa/src/gplx/xowa/wikis/xwikis/sitelinks/htmls/Xoa_sitelink_grp_wtr.java b/400_xowa/src/gplx/xowa/wikis/xwikis/sitelinks/htmls/Xoa_sitelink_grp_wtr.java
index 92b94aa6f..31dfda627 100644
--- a/400_xowa/src/gplx/xowa/wikis/xwikis/sitelinks/htmls/Xoa_sitelink_grp_wtr.java
+++ b/400_xowa/src/gplx/xowa/wikis/xwikis/sitelinks/htmls/Xoa_sitelink_grp_wtr.java
@@ -18,7 +18,7 @@ along with this program. If not, see .
package gplx.xowa.wikis.xwikis.sitelinks.htmls; import gplx.*; import gplx.xowa.*; import gplx.xowa.wikis.*; import gplx.xowa.wikis.xwikis.*; import gplx.xowa.wikis.xwikis.sitelinks.*;
import gplx.core.brys.fmtrs.*;
class Xoa_sitelink_grp_wtr implements gplx.core.brys.Bfr_arg {
- private final Xoa_sitelink_itm_wtr itm_wtr = new Xoa_sitelink_itm_wtr();
+ private final Xoa_sitelink_itm_wtr itm_wtr = new Xoa_sitelink_itm_wtr();
private Xoa_sitelink_grp_mgr mgr;
public void Init_by_app(Xoa_app app) {itm_wtr.Init_by_app(app);}
public Xoa_sitelink_grp_wtr Fmt__init(Xoa_sitelink_grp_mgr mgr) {this.mgr = mgr; return this;}
@@ -30,7 +30,7 @@ class Xoa_sitelink_grp_wtr implements gplx.core.brys.Bfr_arg {
fmtr.Bld_bfr_many(bfr, grp.Name(), itm_wtr.Fmt__init(grp));
}
}
- private static final Bry_fmtr fmtr = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last
+ private static final Bry_fmtr fmtr = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last
( ""
, "
~{all_name}
"
, "
~{grps}"
diff --git a/400_xowa/src/gplx/xowa/xtns/Xow_xtn_mgr.java b/400_xowa/src/gplx/xowa/xtns/Xow_xtn_mgr.java
index 77506dd59..7f2f9f938 100644
--- a/400_xowa/src/gplx/xowa/xtns/Xow_xtn_mgr.java
+++ b/400_xowa/src/gplx/xowa/xtns/Xow_xtn_mgr.java
@@ -17,7 +17,7 @@ along with this program. If not, see .
*/
package gplx.xowa.xtns; import gplx.*; import gplx.xowa.*;
import gplx.core.primitives.*; import gplx.core.btries.*;
-import gplx.xowa.xtns.cites.*; import gplx.xowa.xtns.imaps.*; import gplx.xowa.xtns.relatedSites.*; import gplx.xowa.xtns.proofreadPage.*; import gplx.xowa.xtns.wdatas.*;
+import gplx.xowa.xtns.cites.*; import gplx.xowa.xtns.imaps.*; import gplx.xowa.xtns.relatedSites.*; import gplx.xowa.xtns.proofreadPage.*; import gplx.xowa.xtns.wbases.*;
import gplx.xowa.xtns.insiders.*; import gplx.xowa.xtns.indicators.*; import gplx.xowa.xtns.pagebanners.*;
public class Xow_xtn_mgr implements Gfo_invk {
private Ordered_hash regy = Ordered_hash_.New_bry();
diff --git a/400_xowa/src/gplx/xowa/xtns/gallery/Gallery_box_w_fmtr_arg.java b/400_xowa/src/gplx/xowa/xtns/gallery/Gallery_box_w_fmtr_arg.java
index 3a96fa30a..2cb9727a4 100644
--- a/400_xowa/src/gplx/xowa/xtns/gallery/Gallery_box_w_fmtr_arg.java
+++ b/400_xowa/src/gplx/xowa/xtns/gallery/Gallery_box_w_fmtr_arg.java
@@ -17,8 +17,8 @@ along with this program. If not, see .
*/
package gplx.xowa.xtns.gallery; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*;
class Gallery_box_w_fmtr_arg implements gplx.core.brys.Bfr_arg {
- private int width;
- public Gallery_box_w_fmtr_arg Init(int uid, int width) {this.width = width; return this;}
+ private final int width;
+ public Gallery_box_w_fmtr_arg(int width) {this.width = width;}
public void Bfr_arg__add(Bry_bfr bfr) {
bfr.Add(Style_bgn);
bfr.Add_int_variable(width);
diff --git a/400_xowa/src/gplx/xowa/xtns/gallery/Gallery_img_pad_fmtr_arg.java b/400_xowa/src/gplx/xowa/xtns/gallery/Gallery_img_pad_fmtr_arg.java
index b9b3aff89..dd4d4dfdc 100644
--- a/400_xowa/src/gplx/xowa/xtns/gallery/Gallery_img_pad_fmtr_arg.java
+++ b/400_xowa/src/gplx/xowa/xtns/gallery/Gallery_img_pad_fmtr_arg.java
@@ -17,8 +17,8 @@ along with this program. If not, see .
*/
package gplx.xowa.xtns.gallery; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*;
class Gallery_img_pad_fmtr_arg implements gplx.core.brys.Bfr_arg {
- private int vpad;
- public Gallery_img_pad_fmtr_arg Init(int uid, int vpad) {this.vpad = vpad; return this;}
+ private final int vpad;
+ public Gallery_img_pad_fmtr_arg(int vpad) {this.vpad = vpad;}
public void Bfr_arg__add(Bry_bfr bfr) {
bfr.Add(Style_bgn);
bfr.Add_int_variable(vpad);
diff --git a/400_xowa/src/gplx/xowa/xtns/gallery/Gallery_mgr_wtr.java b/400_xowa/src/gplx/xowa/xtns/gallery/Gallery_mgr_wtr.java
index 4d67910ef..f14b3a960 100644
--- a/400_xowa/src/gplx/xowa/xtns/gallery/Gallery_mgr_wtr.java
+++ b/400_xowa/src/gplx/xowa/xtns/gallery/Gallery_mgr_wtr.java
@@ -21,8 +21,6 @@ import gplx.xowa.parsers.*; import gplx.xowa.parsers.xndes.*; import gplx.xowa.p
import gplx.langs.htmls.*; import gplx.xowa.htmls.core.htmls.*; import gplx.xowa.parsers.htmls.*;
import gplx.xowa.files.*;
public class Gallery_mgr_wtr {
- private static final Gallery_img_pad_fmtr_arg div_3_fmtr_arg = new Gallery_img_pad_fmtr_arg();
- private static final Gallery_box_w_fmtr_arg li_fmtr_arg = new Gallery_box_w_fmtr_arg();
public static void Write_mgr(Bry_bfr bfr, Gallery_mgr_base mgr, Xowe_wiki wiki, Xoae_page page, Xop_ctx ctx, Xoh_wtr_ctx hctx, byte[] src, Gallery_xnde xnde) {
// init
Bry_bfr tmp_bfr = wiki.Utl__bfr_mkr().Get_b512();
@@ -124,7 +122,7 @@ public class Gallery_mgr_wtr {
// write div_3
div_3_margin = mgr.Get_vpad(mgr.Itm_default_h(), html_h_expand);
- Gallery_mgr_wtr_.Fmtr__div1__vpad.Bld_bfr_many(tmp_bfr, div_3_fmtr_arg.Init(img_uid, div_3_margin)); //
+ Gallery_mgr_wtr_.Fmtr__div1__vpad.Bld_bfr_many(tmp_bfr, new Gallery_img_pad_fmtr_arg(div_3_margin)); //
// write
wiki.Html_mgr().Html_wtr().Lnki_wtr().Write_file(tmp_bfr, ctx, hctx, src, lnki, xfer_itm, alt);
@@ -134,7 +132,7 @@ public class Gallery_mgr_wtr {
// write
int div_1_w = mgr.Get_gb_width(html_w_expand, html_h_expand);
- Gallery_mgr_wtr_.Fmtr__li__lhs.Bld_bfr_many(bfr, li_id_atr, li_fmtr_arg.Init(img_uid, div_1_w));
+ Gallery_mgr_wtr_.Fmtr__li__lhs.Bld_bfr_many(bfr, li_id_atr, new Gallery_box_w_fmtr_arg(div_1_w));
bfr.Add(itm_html);
// get show_filenames_link
diff --git a/400_xowa/src/gplx/xowa/xtns/imaps/Imap_parser.java b/400_xowa/src/gplx/xowa/xtns/imaps/Imap_parser.java
index 545de7881..ca7842011 100644
--- a/400_xowa/src/gplx/xowa/xtns/imaps/Imap_parser.java
+++ b/400_xowa/src/gplx/xowa/xtns/imaps/Imap_parser.java
@@ -108,7 +108,7 @@ public class Imap_parser {
boolean shape_is_poly = shape_tid == Imap_part_.Tid_shape_poly;
int pos = Bry_find_.Trim_fwd_space_tab(src, tid_end_pos, itm_end); // gobble any leading spaces
int grp_end = Bry_find_.Find_fwd(src, Byte_ascii.Brack_bgn, pos, itm_end); // find first "["; note that this is a lazy way of detecting start of lnki / lnke; MW has complicated regex, but hopefully this will be enough; DATE:2014-10-22
- if (grp_end == -1) {return Add_err(Bool_.Y, itm_bgn, itm_end, "imap_No valid link was found");}
+ if (grp_end == -1) {return Add_err(Bool_.Y, itm_bgn, itm_end, "imap.parse:No valid link was found");}
int num_bgn = -1, comma_pos = -1, pts_len = 0;
while (true) {
boolean last = pos == grp_end;
diff --git a/400_xowa/src/gplx/xowa/xtns/indicators/Indicator_html_bldr.java b/400_xowa/src/gplx/xowa/xtns/indicators/Indicator_html_bldr.java
index 53fa4ae40..81974da1c 100644
--- a/400_xowa/src/gplx/xowa/xtns/indicators/Indicator_html_bldr.java
+++ b/400_xowa/src/gplx/xowa/xtns/indicators/Indicator_html_bldr.java
@@ -36,7 +36,7 @@ public class Indicator_html_bldr implements gplx.core.brys.Bfr_arg {
bldr_itm.Init(list);
fmtr_grp.Bld_bfr_many(bfr, bldr_itm);
}
- private static final Bry_fmtr
+ private static final Bry_fmtr
fmtr_grp = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last
( ""
, "
"
diff --git a/400_xowa/src/gplx/xowa/xtns/listings/Listing_xnde.java b/400_xowa/src/gplx/xowa/xtns/listings/Listing_xnde.java
index f1416fced..6ed5ef121 100644
--- a/400_xowa/src/gplx/xowa/xtns/listings/Listing_xnde.java
+++ b/400_xowa/src/gplx/xowa/xtns/listings/Listing_xnde.java
@@ -16,11 +16,12 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
package gplx.xowa.xtns.listings; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*;
-import gplx.core.primitives.*;
+import gplx.core.primitives.*; import gplx.core.brys.fmtrs.*;
import gplx.langs.htmls.*; import gplx.xowa.htmls.core.htmls.*;
import gplx.xowa.langs.*; import gplx.xowa.langs.msgs.*;
import gplx.xowa.parsers.*; import gplx.xowa.parsers.xndes.*; import gplx.xowa.parsers.htmls.*;
public class Listing_xnde implements Xox_xnde, Mwh_atr_itm_owner1 {
+ private final Bry_fmtr tmp_fmtr = Bry_fmtr.New__tmp();
public Listing_xnde(int tag_id) {}
private byte[] xatr_name, xatr_alt, xatr_address, xatr_directions, xatr_phone, xatr_tollfree, xatr_email, xatr_fax, xatr_url, xatr_hours, xatr_price, xatr_checkin, xatr_checkout;
private int xatr_lat = Xatr_meridian_null, xatr_long = Xatr_meridian_null;
@@ -171,14 +172,14 @@ public class Listing_xnde implements Xox_xnde, Mwh_atr_itm_owner1 {
if (xatr_checkin != null || xatr_checkout != null) {
Bry_bfr tmp_bfr = wiki.Utl__bfr_mkr().Get_b128();
if (xatr_checkin != null) {
- byte[] checkin_val = xtn_mgr.Checkin_msg().Fmt(tmp_bfr, xatr_checkin);
+ byte[] checkin_val = xtn_mgr.Checkin_msg().Fmt(tmp_bfr, tmp_fmtr, xatr_checkin);
wtr.Txt_raw(checkin_val);
if (xatr_checkout != null)
wtr.Txt(Txt_comma_space);
}
if (xatr_checkout != null) {
- byte[] checkout_val = xtn_mgr.Checkout_msg().Fmt(tmp_bfr, xatr_checkout);
+ byte[] checkout_val = xtn_mgr.Checkout_msg().Fmt(tmp_bfr, tmp_fmtr, xatr_checkout);
wtr.Txt_raw(checkout_val);
}
wtr.Txt(Txt_dot_space);
@@ -194,16 +195,18 @@ public class Listing_xnde implements Xox_xnde, Mwh_atr_itm_owner1 {
if (xatr_lat >= Xatr_meridian_null || xatr_long >= Xatr_meridian_null) return null; // check that lat and long are valid
Xol_msg_itm position_template = xtn_mgr.Position_template();
if (position_template == null) return null;
- Bry_bfr tmp_bfr = wiki.Utl__bfr_mkr().Get_b128().Mkr_rls();
- byte[] rv = position_template.Fmt(tmp_bfr, xatr_lat, xatr_long);
- tmp_bfr.Add(Bry__invk_bgn); // "{{"
- tmp_bfr.Add(rv); // rv is not message, but actually template precursor
- tmp_bfr.Add(Bry__invk_end); // "}}"
- Xop_ctx sub_ctx = Xop_ctx.New__sub__reuse_page(ctx);
- rv = wiki.Parser_mgr().Main().Parse_text_to_html(sub_ctx, tmp_bfr.To_bry_and_clear());
- Xol_msg_itm position_text = xtn_mgr.Position_text();
- if (Bry_.Len_eq_0(position_text.Val())) return rv;
- return position_text.Fmt(tmp_bfr, rv);
+ Bry_bfr tmp_bfr = wiki.Utl__bfr_mkr().Get_b128();
+ try {
+ byte[] rv = position_template.Fmt(tmp_bfr, tmp_fmtr, xatr_lat, xatr_long);
+ tmp_bfr.Add(Bry__invk_bgn); // "{{"
+ tmp_bfr.Add(rv); // rv is not message, but actually template precursor
+ tmp_bfr.Add(Bry__invk_end); // "}}"
+ Xop_ctx sub_ctx = Xop_ctx.New__sub__reuse_page(ctx);
+ rv = wiki.Parser_mgr().Main().Parse_text_to_html(sub_ctx, tmp_bfr.To_bry_and_clear());
+ Xol_msg_itm position_text = xtn_mgr.Position_text();
+ if (Bry_.Len_eq_0(position_text.Val())) return rv;
+ return position_text.Fmt(tmp_bfr, tmp_fmtr, rv);
+ } finally {tmp_bfr.Mkr_rls();}
}
private static final int Xatr_meridian_null = 361;
public static final byte[]
diff --git a/400_xowa/src/gplx/xowa/xtns/math/Xof_math_html_wtr.java b/400_xowa/src/gplx/xowa/xtns/math/Xof_math_html_wtr.java
index e1eca42fd..8b0c90260 100644
--- a/400_xowa/src/gplx/xowa/xtns/math/Xof_math_html_wtr.java
+++ b/400_xowa/src/gplx/xowa/xtns/math/Xof_math_html_wtr.java
@@ -26,19 +26,21 @@ public class Xof_math_html_wtr {
Xoae_app app = ctx.App(); Xowe_wiki wiki = ctx.Wiki(); Xoae_page page = ctx.Page();
boolean renderer_is_latex = !app.File_mgr().Math_mgr().Renderer_is_mathjax();
byte[] math_bry = Bry_.Mid(src, xnde.Tag_open_end(), xnde.Tag_close_bgn());
- Bry_bfr tmp_bfr = wiki.Utl__bfr_mkr().Get_b512().Mkr_rls();
- math_bry = Escape_tex(tmp_bfr, !renderer_is_latex, math_bry);
- byte[] math_bry_clean = wiki.Html_mgr().Js_cleaner().Clean(wiki, math_bry, 0, math_bry.length); // check for js;
- if (math_bry_clean != null) math_bry = math_bry_clean; // js found; use clean version; DATE:2013-08-26
- boolean enabled = app.File_mgr().Math_mgr().Enabled();
- Xof_math_itm math_itm = ctx.Tmp_mgr().Math_itm();
- if (renderer_is_latex && app.File_mgr().Math_mgr().Find_itm(math_itm, page.Wiki().Domain_str(), math_bry)) {
- bfr.Add(Xoh_consts.Img_bgn);
- bfr.Add_str_u8(math_itm.Png_url().To_http_file_str());
- bfr.Add(Xoh_consts.__inline_quote);
- }
- else
- Write_for_mathjax(bfr, page, enabled, renderer_is_latex, math_bry, tmp_bfr, math_itm);
+ Bry_bfr tmp_bfr = wiki.Utl__bfr_mkr().Get_b512();
+ try {
+ math_bry = Escape_tex(tmp_bfr, !renderer_is_latex, math_bry);
+ byte[] math_bry_clean = wiki.Html_mgr().Js_cleaner().Clean(wiki, math_bry, 0, math_bry.length); // check for js;
+ if (math_bry_clean != null) math_bry = math_bry_clean; // js found; use clean version; DATE:2013-08-26
+ boolean enabled = app.File_mgr().Math_mgr().Enabled();
+ Xof_math_itm math_itm = ctx.Tmp_mgr().Math_itm();
+ if (renderer_is_latex && app.File_mgr().Math_mgr().Find_itm(math_itm, page.Wiki().Domain_str(), math_bry)) {
+ bfr.Add(Xoh_consts.Img_bgn);
+ bfr.Add_str_u8(math_itm.Png_url().To_http_file_str());
+ bfr.Add(Xoh_consts.__inline_quote);
+ }
+ else
+ Write_for_mathjax(bfr, page, enabled, renderer_is_latex, math_bry, tmp_bfr, math_itm);
+ } finally {tmp_bfr.Mkr_rls();}
}
private void Write_for_mathjax(Bry_bfr bfr, Xoae_page page, boolean enabled, boolean renderer_is_latex, byte[] math_bry, Bry_bfr tmp_bfr, Xof_math_itm math_itm) {
int id = page.File_math().Count();
diff --git a/400_xowa/src/gplx/xowa/xtns/pfuncs/Pf_func_.java b/400_xowa/src/gplx/xowa/xtns/pfuncs/Pf_func_.java
index ec3c8b92a..0d19f4268 100644
--- a/400_xowa/src/gplx/xowa/xtns/pfuncs/Pf_func_.java
+++ b/400_xowa/src/gplx/xowa/xtns/pfuncs/Pf_func_.java
@@ -57,8 +57,8 @@ public class Pf_func_ {
}
else if (lhs_len == 0 || rhs_len == 0) // one side is empty String and the other side is String; return false;
return false;
- Number_parser lhs_parser = ctx.Tmp_mgr().Pfunc_num_parser_0();
- Number_parser rhs_parser = ctx.Tmp_mgr().Pfunc_num_parser_1();
+ Gfo_number_parser lhs_parser = ctx.Tmp_mgr().Pfunc_num_parser_0();
+ Gfo_number_parser rhs_parser = ctx.Tmp_mgr().Pfunc_num_parser_1();
lhs_parser.Parse(lhs, 0, lhs_len);
if (lhs_parser.Has_err()) return false;
rhs_parser.Parse(rhs, 0, rhs_len);
@@ -396,9 +396,9 @@ public class Pf_func_ {
case Xol_kwd_grp_.Id_pagebanner: return new gplx.xowa.xtns.pagebanners.Pgbnr_func();
case Xol_kwd_grp_.Id_new_window_link: return new gplx.xowa.xtns.new_window_links.New_window_link_func();
- case Xol_kwd_grp_.Id_property: return new gplx.xowa.xtns.wdatas.pfuncs.Wdata_pf_property();
- case Xol_kwd_grp_.Id_noexternallanglinks: return new gplx.xowa.xtns.wdatas.pfuncs.Wdata_pf_noExternalLangLinks();
- case Xol_kwd_grp_.Id_wbreponame: return new gplx.xowa.xtns.wdatas.pfuncs.Wdata_pf_wbreponame();
+ case Xol_kwd_grp_.Id_property: return new gplx.xowa.xtns.wbases.pfuncs.Wdata_pf_property();
+ case Xol_kwd_grp_.Id_noexternallanglinks: return new gplx.xowa.xtns.wbases.pfuncs.Wdata_pf_noExternalLangLinks();
+ case Xol_kwd_grp_.Id_wbreponame: return new gplx.xowa.xtns.wbases.pfuncs.Wdata_pf_wbreponame();
case Xol_kwd_grp_.Id_mapSources_deg2dd: return gplx.xowa.xtns.mapSources.Map_deg2dd_func.Instance;
case Xol_kwd_grp_.Id_mapSources_dd2dms: return gplx.xowa.xtns.mapSources.Map_dd2dms_func.Instance;
diff --git a/400_xowa/src/gplx/xowa/xtns/pfuncs/exprs/Pfunc_expr_shunter.java b/400_xowa/src/gplx/xowa/xtns/pfuncs/exprs/Pfunc_expr_shunter.java
index 74c78973f..e19709e66 100644
--- a/400_xowa/src/gplx/xowa/xtns/pfuncs/exprs/Pfunc_expr_shunter.java
+++ b/400_xowa/src/gplx/xowa/xtns/pfuncs/exprs/Pfunc_expr_shunter.java
@@ -23,7 +23,7 @@ public class Pfunc_expr_shunter {
private final Btrie_fast_mgr trie = expression_(); private final Btrie_rv trv = new Btrie_rv();
private final Val_stack val_stack = new Val_stack();
private final Func_tkn_stack prc_stack = new Func_tkn_stack();
- private final Bry_fmtr tmp_fmtr = Bry_fmtr.tmp_();
+ private final Bry_fmtr tmp_fmtr = Bry_fmtr.New__tmp();
public Bry_bfr Err() {return err_bfr;} private final Bry_bfr err_bfr = Bry_bfr_.New();
public Decimal_adp Err_set(Xop_ctx ctx, int msgId) {return Err_set(ctx, msgId, Bry_.Empty);}
public Decimal_adp Err_set(Xop_ctx ctx, int msg_id, byte[] arg) {
diff --git a/400_xowa/src/gplx/xowa/xtns/pfuncs/stringutils/Pfunc_replace.java b/400_xowa/src/gplx/xowa/xtns/pfuncs/stringutils/Pfunc_replace.java
index d2485c90a..c46712bf7 100644
--- a/400_xowa/src/gplx/xowa/xtns/pfuncs/stringutils/Pfunc_replace.java
+++ b/400_xowa/src/gplx/xowa/xtns/pfuncs/stringutils/Pfunc_replace.java
@@ -30,9 +30,11 @@ public class Pfunc_replace extends Pf_func_base {
byte[] repl = Pf_func_.Eval_arg_or(ctx, src, caller, self, self_args_len, 1, Bry_.Empty);
byte[] limit_bry = Pf_func_.Eval_arg_or(ctx, src, caller, self, self_args_len, 2, null);
int limit = limit_bry == null ? Int_.Max_value : Bry_.To_int_or_neg1(limit_bry);
- Bry_bfr tmp_bfr = Xoa_app_.Utl__bfr_mkr().Get_b128();
- byte[] rv = Bry_.Replace(tmp_bfr, argx, find, repl, 0, argx.length, limit);
- tmp_bfr.Mkr_rls();
- bfr.Add(rv);
+ Bry_bfr tmp_bfr = ctx.Wiki().Utl__bfr_mkr().Get_b128();
+ try {
+ byte[] rv = Bry_.Replace(tmp_bfr, argx, find, repl, 0, argx.length, limit);
+ bfr.Add(rv);
+ }
+ finally {tmp_bfr.Mkr_rls();}
}
}
diff --git a/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pft_func_date_int.java b/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pft_func_date_int.java
index eb3585159..090a093d1 100644
--- a/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pft_func_date_int.java
+++ b/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pft_func_date_int.java
@@ -27,8 +27,8 @@ public class Pft_func_date_int extends Pf_func_base {
Xowe_wiki wiki = ctx.Wiki(); Xol_lang_itm lang = ctx.Lang();
Pft_func_formatdate_bldr date_fmt_bldr = wiki.Parser_mgr().Date_fmt_bldr();
switch (date_tid) {
- case Date_tid_lcl: date = DateAdp_.Now(); break;
- case Date_tid_utc: date = DateAdp_.Now().XtoUtc(); break;
+ case Date_tid_lcl: date = Datetime_now.Get(); break;
+ case Date_tid_utc: date = Datetime_now.Get().XtoUtc(); break;
case Date_tid_rev: date = ctx.Page().Db().Page().Modified_on(); break;
default: throw Err_.new_unhandled(date_tid);
}
diff --git a/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pft_func_date_lcl_tst.java b/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pft_func_date_lcl_tst.java
index ef6a21731..077b9b6f4 100644
--- a/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pft_func_date_lcl_tst.java
+++ b/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pft_func_date_lcl_tst.java
@@ -18,9 +18,9 @@ along with this program. If not, see .
package gplx.xowa.xtns.pfuncs.times; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.pfuncs.*;
import org.junit.*;
public class Pft_func_date_lcl_tst {
- private final Xop_fxt fxt = new Xop_fxt();
- @Before public void setup() {fxt.Reset(); Tfds.Now_set(DateAdp_.new_(2012, 1, 2, 3, 4, 5, 6));}
- @After public void teardown() {Tfds.Now_enabled_n_();}
+ private final Xop_fxt fxt = new Xop_fxt();
+ @Before public void setup() {fxt.Reset(); Datetime_now.Manual_(DateAdp_.new_(2012, 1, 2, 3, 4, 5, 6));}
+ @After public void teardown() {Datetime_now.Manual_n_();}
@Test public void Lcl_year() {fxt.Test_parse_tmpl_str_test("{{LOCALYEAR}}" , "{{test}}", "2012");}
@Test public void Lcl_month_int() {fxt.Test_parse_tmpl_str_test("{{LOCALMONTH1}}" , "{{test}}", "1");}
@Test public void Lcl_month_int_len2() {fxt.Test_parse_tmpl_str_test("{{LOCALMONTH}}" , "{{test}}", "01");}
diff --git a/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pft_func_date_name.java b/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pft_func_date_name.java
index 8098414f7..25cfaf023 100644
--- a/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pft_func_date_name.java
+++ b/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pft_func_date_name.java
@@ -24,8 +24,8 @@ public class Pft_func_date_name extends Pf_func_base {
@Override public void Func_evaluate(Bry_bfr bfr, Xop_ctx ctx, Xot_invk caller, Xot_invk self, byte[] src) {
DateAdp date = DateAdp_.MinValue;
switch (date_tid) {
- case Pft_func_date_int.Date_tid_lcl: date = DateAdp_.Now(); break;
- case Pft_func_date_int.Date_tid_utc: date = DateAdp_.Now().XtoUtc(); break;
+ case Pft_func_date_int.Date_tid_lcl: date = Datetime_now.Get(); break;
+ case Pft_func_date_int.Date_tid_utc: date = Datetime_now.Get().XtoUtc(); break;
case Pft_func_date_int.Date_tid_rev: date = ctx.Page().Db().Page().Modified_on(); break;
default: throw Err_.new_unhandled(date_tid);
}
diff --git a/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pft_func_date_utc_tst.java b/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pft_func_date_utc_tst.java
index 9ba9676ec..e260bf8fa 100644
--- a/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pft_func_date_utc_tst.java
+++ b/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pft_func_date_utc_tst.java
@@ -18,9 +18,9 @@ along with this program. If not, see .
package gplx.xowa.xtns.pfuncs.times; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.pfuncs.*;
import org.junit.*;
public class Pft_func_date_utc_tst {
- private final Xop_fxt fxt = new Xop_fxt();
- @Before public void setup() {fxt.Reset(); Tfds.Now_set(DateAdp_.new_(2011, 12, 31, 22, 4, 5, 6));} // ENV:Assumes Eastern Standard Time (-5)
- @After public void teardown() {Tfds.Now_enabled_n_();}
+ private final Xop_fxt fxt = new Xop_fxt();
+ @Before public void setup() {fxt.Reset(); Datetime_now.Manual_(DateAdp_.new_(2011, 12, 31, 22, 4, 5, 6));} // ENV:Assumes Eastern Standard Time (-5)
+ @After public void teardown() {Datetime_now.Manual_n_();}
@Test public void Utc_year() {fxt.Test_parse_tmpl_str_test("{{CURRENTYEAR}}" , "{{test}}", "2012");}
@Test public void Utc_month_int() {fxt.Test_parse_tmpl_str_test("{{CURRENTMONTH1}}" , "{{test}}", "1");}
@Test public void Utc_month_int_len2() {fxt.Test_parse_tmpl_str_test("{{CURRENTMONTH}}" , "{{test}}", "01");}
diff --git a/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pft_func_formatdate.java b/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pft_func_formatdate.java
index 672fd8ad4..4f9551ccd 100644
--- a/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pft_func_formatdate.java
+++ b/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pft_func_formatdate.java
@@ -35,7 +35,10 @@ public class Pft_func_formatdate extends Pf_func_base {
bfr.Add(date_bry);
return;
}
- DateAdp date = Pft_func_time.ParseDate(date_bry, false, ctx.Wiki().Utl__bfr_mkr().Get_b512().Mkr_rls());
+ Bry_bfr tmp_bfr = ctx.Wiki().Utl__bfr_mkr().Get_b512();
+ DateAdp date = null;
+ try {date = Pft_func_time.ParseDate(date_bry, false, tmp_bfr);}
+ finally {tmp_bfr.Mkr_rls();}
if (date == null) {bfr.Add(date_bry); return;} // date not parseable; return self; DATE:2014-04-13
ctx.Wiki().Parser_mgr().Date_fmt_bldr().Format(bfr, ctx.Wiki(), ctx.Lang(), date, (Pft_fmt_itm[])o);
}
diff --git a/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pft_func_formatdate_bldr.java b/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pft_func_formatdate_bldr.java
index 9854a6c1f..4c7f8b29f 100644
--- a/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pft_func_formatdate_bldr.java
+++ b/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pft_func_formatdate_bldr.java
@@ -35,13 +35,16 @@ public class Pft_func_formatdate_bldr {
chained_fmt = fmt_itm;
else {
if (chained_fmt != null) {
- Bry_bfr tmp_bfr = Xoa_app_.Utl__bfr_mkr().Get_b128();
- synchronized (tmp_bfr) {
+ Bry_bfr tmp_bfr = wiki.Utl__bfr_mkr().Get_b128();
+ try {
fmt_itm.Fmt(tmp_bfr, wiki, lang, date, this);
chained_fmt.Fmt(tmp_bfr, wiki, lang, date, this);
- bfr.Add(tmp_bfr.To_bry_and_rls());
+ bfr.Add(tmp_bfr.To_bry_and_clear());
chained_fmt = null;
}
+ finally {
+ tmp_bfr.Mkr_rls();
+ }
}
else
fmt_itm.Fmt(bfr, wiki, lang, date, this);
diff --git a/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pft_func_time.java b/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pft_func_time.java
index 7b7ad2dd6..b9e4c7fa5 100644
--- a/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pft_func_time.java
+++ b/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pft_func_time.java
@@ -46,7 +46,7 @@ public class Pft_func_time extends Pf_func_base {
}
}
public static DateAdp ParseDate(byte[] date, boolean utc, Bry_bfr error_bfr) {
- if (date == Bry_.Empty) return utc ? DateAdp_.Now().XtoUtc() : DateAdp_.Now();
+ if (date == Bry_.Empty) return utc ? Datetime_now.Get().XtoUtc() : Datetime_now.Get();
try {
DateAdp rv = new Pxd_parser().Parse(date, error_bfr);
return rv;
diff --git a/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pft_func_time__basic__tst.java b/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pft_func_time__basic__tst.java
index 6ad3a93b0..315a442e8 100644
--- a/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pft_func_time__basic__tst.java
+++ b/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pft_func_time__basic__tst.java
@@ -18,8 +18,8 @@ along with this program. If not, see .
package gplx.xowa.xtns.pfuncs.times; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.pfuncs.*;
import org.junit.*; import gplx.xowa.langs.*; import gplx.xowa.langs.msgs.*;
public class Pft_func_time__basic__tst {
- @Before public void init() {fxt.Reset(); Tfds.Now_set(DateAdp_.new_(2012, 1, 2, 3, 4, 5, 6));} private final Xop_fxt fxt = new Xop_fxt();
- @After public void term() {Tfds.Now_enabled_n_();}
+ @Before public void init() {fxt.Reset(); Datetime_now.Manual_(DateAdp_.new_(2012, 1, 2, 3, 4, 5, 6));} private final Xop_fxt fxt = new Xop_fxt();
+ @After public void term() {Datetime_now.Manual_n_();}
@Test public void Utc_date() {fxt.Test_parse_tmpl_str("{{#time:Y-m-d|2012-01-02 03:04:05}}" , "2012-01-02");}
@Test public void Utc_time() {fxt.Test_parse_tmpl_str("{{#time:h:i:s A|2012-01-02 03:04:05}}" , "03:04:05 AM");}
@Test public void Utc_dayOfYear() {fxt.Test_parse_tmpl_str("{{#time:z|2012-01-01 03:04:05}}" , "0");}
@@ -68,7 +68,7 @@ public class Pft_func_time__basic__tst {
@Test public void Unit_rel_year_last() {fxt.Test_parse_tmpl_str("{{#time:Y-m-d|last year}}" , "2011-01-02");}
@Test public void Unit_rel_year_previous(){fxt.Test_parse_tmpl_str("{{#time:Y-m-d|previous year}}" , "2011-01-02");}
@Test public void Unit_rel_year_this() {fxt.Test_parse_tmpl_str("{{#time:Y-m-d|this year}}" , "2012-01-02");}
- @Test public void Time_rel_now() {fxt.Test_parse_tmpl_str("{{#time:Y-m-d h:i:s A|now}}" , "2012-01-02 03:05:05 AM");} // NOTE: minute is 5, not 4, b/c each call to DateAdp_.Now() automatically increments by 1 minute; DATE:2014-04-13
+ @Test public void Time_rel_now() {fxt.Test_parse_tmpl_str("{{#time:Y-m-d h:i:s A|now}}" , "2012-01-02 03:05:05 AM");} // NOTE: minute is 5, not 4, b/c each call to Datetime_now.Get() automatically increments by 1 minute; DATE:2014-04-13
@Test public void Empty_is_today() {fxt.Test_parse_tmpl_str("{{#time:Y-m-d|}}" , "2012-01-02");} // tested on MW
@Test public void Day_name_today() {fxt.Test_parse_tmpl_str("{{#time:Y-m-d|Monday}}" , "2012-01-02");} // 2012-01-02 is Monday, so return Monday; DATE:2014-05-02
@Test public void Day_name_future_1() {fxt.Test_parse_tmpl_str("{{#time:Y-m-d|Saturday}}" , "2012-01-07");} // return next Sunday; DATE:2014-05-02
diff --git a/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pft_func_time__int__tst.java b/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pft_func_time__int__tst.java
index 64a2e15aa..83189b893 100644
--- a/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pft_func_time__int__tst.java
+++ b/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pft_func_time__int__tst.java
@@ -18,7 +18,7 @@ along with this program. If not, see .
package gplx.xowa.xtns.pfuncs.times; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.pfuncs.*;
import org.junit.*;
public class Pft_func_time__int__tst {
- @Before public void init() {fxt.Reset(); Tfds.Now_set(DateAdp_.new_(2012, 1, 2, 3, 4, 5, 6));} private final Xop_fxt fxt = new Xop_fxt();
+ @Before public void init() {fxt.Reset(); Datetime_now.Manual_(DateAdp_.new_(2012, 1, 2, 3, 4, 5, 6));} private final Xop_fxt fxt = new Xop_fxt();
@Test public void Time_before_date__dmy() {fxt.Test_parse_tmpl_str("{{#time:Y-m-d H:i|01:02 3.4.2005}}" , "2005-04-03 01:02");} // PAGE:sk.w:Dr._House; DATE:2014-09-23
@Test public void Time_before_date__mdy() {fxt.Test_parse_tmpl_str("{{#time:Y-m-d H:i|01:02 3.14.2005}}" , "Invalid month: 14");} // mdy is invalid; DATE:2014-09-23
}
diff --git a/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pft_func_time__uncommon__tst.java b/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pft_func_time__uncommon__tst.java
index 18c3a56b6..acd28c06d 100644
--- a/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pft_func_time__uncommon__tst.java
+++ b/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pft_func_time__uncommon__tst.java
@@ -18,8 +18,8 @@ along with this program. If not, see .
package gplx.xowa.xtns.pfuncs.times; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.pfuncs.*;
import org.junit.*;
public class Pft_func_time__uncommon__tst {
- private final Xop_fxt fxt = new Xop_fxt();
- @Before public void init() {fxt.Reset(); Tfds.Now_set(DateAdp_.new_(2012, 1, 2, 3, 4, 5, 6));}
- @After public void term() {Tfds.Now_enabled_n_();}
+ private final Xop_fxt fxt = new Xop_fxt();
+ @Before public void init() {fxt.Reset(); Datetime_now.Manual_(DateAdp_.new_(2012, 1, 2, 3, 4, 5, 6));}
+ @After public void term() {Datetime_now.Manual_n_();}
@Test public void Year_5_digits() {fxt.Test_parse_tmpl_str_test("{{#time:Y-m-d|00123-4-5}}" , "{{test}}" , "2003-04-05");} // PURPOSE: emulate PHP's incorrect date parsing; EX:ca.w:Nicolau_de_Mira; DATE:2014-04-17
}
diff --git a/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pft_func_time_foreign_fxt.java b/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pft_func_time_foreign_fxt.java
index c7f0c07be..13bdc6add 100644
--- a/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pft_func_time_foreign_fxt.java
+++ b/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pft_func_time_foreign_fxt.java
@@ -21,10 +21,10 @@ class Pft_func_time_foreign_fxt {
private final Xop_fxt fxt = new Xop_fxt();
public void Clear() {
fxt.Reset();
- Tfds.Now_set(DateAdp_.new_(2012, 1, 2, 3, 4, 5, 6));
+ Datetime_now.Manual_(DateAdp_.new_(2012, 1, 2, 3, 4, 5, 6));
}
public void Term() {
- Tfds.Now_enabled_n_();
+ Datetime_now.Manual_n_();
}
public Pft_func_time_foreign_fxt Init_msg(String key, String val) {
Xol_msg_itm msg = fxt.Wiki().Msg_mgr().Get_or_make(Bry_.new_u8(key));
diff --git a/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pxd_itm_.java b/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pxd_itm_.java
index 4c4546214..23e1e3a68 100644
--- a/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pxd_itm_.java
+++ b/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pxd_itm_.java
@@ -89,7 +89,7 @@ class DateAdpBldr {
return date;
}
else
- return DateAdp_.Now(); // not dirtied; default to now;
+ return Datetime_now.Get(); // not dirtied; default to now;
}
public DateAdpBldr Date_(DateAdp v) {date = v; return this;} DateAdp date = null;
public void Seg_set(int idx, int val) {
diff --git a/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pxd_itm_month_name.java b/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pxd_itm_month_name.java
index 1909f18fd..ffb92d8b3 100644
--- a/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pxd_itm_month_name.java
+++ b/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pxd_itm_month_name.java
@@ -188,7 +188,7 @@ class Pxd_itm_unit extends Pxd_itm_base implements Pxd_itm_prototype {
}
@Override public boolean Time_ini(DateAdpBldr bldr) {
DateAdp cur = bldr.Date();
- if (cur == null) cur = DateAdp_.Now();
+ if (cur == null) cur = Datetime_now.Get();
int val = seg_val * seg_multiple;
switch (this.Seg_idx()) {
case DateAdp_.SegIdx_second: cur = cur.Add_second(val); break;
@@ -256,7 +256,7 @@ class Pxd_itm_day_relative extends Pxd_itm_base implements Pxd_itm_prototype {
public Pxd_itm MakeNew(int ary_idx) {return new Pxd_itm_day_relative(adj, ary_idx);}
@Override public boolean Eval(Pxd_parser state) {return true;}
@Override public boolean Time_ini(DateAdpBldr bldr) {
- DateAdp date = DateAdp_.Now();
+ DateAdp date = Datetime_now.Get();
if (adj != 0) date = date.Add_day(adj);
bldr.Seg_set(DateAdp_.SegIdx_year , date.Year());
bldr.Seg_set(DateAdp_.SegIdx_month , date.Month());
@@ -278,7 +278,7 @@ class Pxd_itm_time_relative extends Pxd_itm_base implements Pxd_itm_prototype {
public Pxd_itm MakeNew(int ary_idx) {return new Pxd_itm_time_relative(ary_idx);}
@Override public boolean Eval(Pxd_parser state) {return true;}
@Override public boolean Time_ini(DateAdpBldr bldr) {
- DateAdp date = DateAdp_.Now();
+ DateAdp date = Datetime_now.Get();
bldr.Seg_set(DateAdp_.SegIdx_year , date.Year());
bldr.Seg_set(DateAdp_.SegIdx_month , date.Month());
bldr.Seg_set(DateAdp_.SegIdx_day , date.Day());
@@ -347,7 +347,7 @@ class Pxd_itm_dow_name extends Pxd_itm_base implements Pxd_itm_prototype {
public Pxd_itm MakeNew(int ary_idx) {return new Pxd_itm_dow_name(ary_idx, dow_name, dow_idx);}
@Override public boolean Eval(Pxd_parser state) {return true;}
@Override public boolean Time_ini(DateAdpBldr bldr) {
- DateAdp now = DateAdp_.Now();
+ DateAdp now = Datetime_now.Get();
int adj = dow_idx - now.DayOfWeek(); // adj = requested_dow - current_dow; EX: requesting Friday, and today is Wednesday; adj = 2 (4 - 2); DATE:2014-05-02
if (adj < 0) adj += 7; // requested_down is before current_dow; add 7 to get the next day
bldr.Date_(bldr.Date().Add_day(adj));
diff --git a/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pxd_parser.java b/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pxd_parser.java
index 55f94549e..dbcddd721 100644
--- a/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pxd_parser.java
+++ b/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pxd_parser.java
@@ -145,7 +145,7 @@ class Pxd_parser {
return DateAdp_.MinValue;
}
}
- DateAdp now = DateAdp_.Now();
+ DateAdp now = Datetime_now.Get();
DateAdpBldr bldr = new DateAdpBldr(now.Year(), now.Month(), now.Day(), 0, 0, 0, 0);
for (int i = 0; i < tkns_len; i++) {
Pxd_itm itm = (Pxd_itm)tkns[i];
diff --git a/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pxd_parser_tst.java b/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pxd_parser_tst.java
index 6026fb27a..2fce7238f 100644
--- a/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pxd_parser_tst.java
+++ b/400_xowa/src/gplx/xowa/xtns/pfuncs/times/Pxd_parser_tst.java
@@ -19,8 +19,8 @@ package gplx.xowa.xtns.pfuncs.times; import gplx.*; import gplx.xowa.*; import g
import org.junit.*;
public class Pxd_parser_tst {
Bry_bfr bfr = Bry_bfr_.New_w_size(16); Pxd_parser parser = new Pxd_parser();
- @Before public void init() {Tfds.Now_enabled_y_(); Tfds.Now_set(test_date);} DateAdp test_date = DateAdp_.parse_fmt("2012-02-27", "yyyy-MM-dd");
- @After public void teardown() {Tfds.Now_enabled_n_();}
+ @Before public void init() {Datetime_now.Manual_y_(); Datetime_now.Manual_(test_date);} DateAdp test_date = DateAdp_.parse_fmt("2012-02-27", "yyyy-MM-dd");
+ @After public void teardown() {Datetime_now.Manual_n_();}
@Test public void Month_name_0__day__year() {tst_date_("Mar 2 2001" , "2001-03-02");} // y:Mar-02-2001;Mar.02.2001;Mar 02, 2001 n:Mar/02/2001;Feb,05,2011
@Test public void Month_name_0__day__year__bad_day() {tst_date_("Mar 32 2001" , "Invalid day: 32");}
@Test public void Month_name_0__day__year__bad_year() {tst_date_("Mar 3 999" , "0999-03-03");}
diff --git a/400_xowa/src/gplx/xowa/xtns/pfuncs/ttls/Pfunc_anchorencode.java b/400_xowa/src/gplx/xowa/xtns/pfuncs/ttls/Pfunc_anchorencode.java
index b21ab9229..4373b30c0 100644
--- a/400_xowa/src/gplx/xowa/xtns/pfuncs/ttls/Pfunc_anchorencode.java
+++ b/400_xowa/src/gplx/xowa/xtns/pfuncs/ttls/Pfunc_anchorencode.java
@@ -35,7 +35,9 @@ public class Pfunc_anchorencode extends Pf_func_base { // EX: {{anchorencode:a b
@Override public void Func_evaluate(Bry_bfr bfr, Xop_ctx ctx, Xot_invk caller, Xot_invk self, byte[] src) {
if (anchor_ctx == null) Func_init(ctx);
byte[] val_ary = Eval_argx(ctx, src, caller, self); if (val_ary == Bry_.Empty) return;
- Anchor_encode(val_ary, bfr, ctx.Wiki().Utl__bfr_mkr().Get_b512().Mkr_rls());
+ Bry_bfr tmp_bfr = ctx.Wiki().Utl__bfr_mkr().Get_b512();
+ try {Anchor_encode(val_ary, bfr, tmp_bfr);}
+ finally {tmp_bfr.Mkr_rls();}
}
public static void Anchor_encode(byte[] src, Bry_bfr bfr, Bry_bfr tmp_bfr) {
Xop_root_tkn root = anchor_ctx.Tkn_mkr().Root(src);
diff --git a/400_xowa/src/gplx/xowa/xtns/pfuncs/ttls/Pfunc_rel2abs.java b/400_xowa/src/gplx/xowa/xtns/pfuncs/ttls/Pfunc_rel2abs.java
index c94df8abc..fefa20a3d 100644
--- a/400_xowa/src/gplx/xowa/xtns/pfuncs/ttls/Pfunc_rel2abs.java
+++ b/400_xowa/src/gplx/xowa/xtns/pfuncs/ttls/Pfunc_rel2abs.java
@@ -34,7 +34,9 @@ public class Pfunc_rel2abs extends Pf_func_base {
byte[] qry = Eval_argx(ctx, src, caller, self);
byte[] orig = Pf_func_.Eval_arg_or_empty(ctx, src, caller, self, self.Args_len(), 0);
if (orig.length == 0) orig = ctx.Page().Ttl().Full_txt_w_ttl_case();
- bfr.Add(Rel2abs(ctx.Wiki().Utl__bfr_mkr().Get_b512().Mkr_rls(), qry, orig));
+ Bry_bfr tmp_bfr = ctx.Wiki().Utl__bfr_mkr().Get_b512();
+ try {bfr.Add(Rel2abs(tmp_bfr, qry, orig));}
+ finally {tmp_bfr.Mkr_rls();}
}
public static boolean Rel2abs_ttl(byte[] ttl, int bgn, int end) {
int last = end - 1;
diff --git a/400_xowa/src/gplx/xowa/xtns/pfuncs/ttls/Pfunc_urlfunc.java b/400_xowa/src/gplx/xowa/xtns/pfuncs/ttls/Pfunc_urlfunc.java
index 9e7c78c8f..880b64994 100644
--- a/400_xowa/src/gplx/xowa/xtns/pfuncs/ttls/Pfunc_urlfunc.java
+++ b/400_xowa/src/gplx/xowa/xtns/pfuncs/ttls/Pfunc_urlfunc.java
@@ -38,19 +38,21 @@ public class Pfunc_urlfunc extends Pf_func_base { // EX: {{lc:A}} -> a
else
trg.Add(gplx.core.net.Gfo_protocol_itm.Bry_relative); // "//"
trg.Add(xwiki.Domain_bry()) // "commons.wikimedia.org"
- .Add(Xoh_href_.Bry__wiki) // "/wiki/"
+ .Add(Xoh_href_.Bry__wiki) // "/wiki/"
.Add_mid(ttl_ary, xwiki.Key_bry().length + 1, ttl_ary.length); // "A#b?c=d"; +1 for colon after "commons:"; NOTE: ugly way of getting rest of url, but ttl currently does not have Full_wo_wiki
}
else {
- Bry_bfr tmp_bfr = ctx.Wiki().Utl__bfr_mkr().Get_b512().Mkr_rls();
- switch (tid) {
- case Tid_local: tmp_bfr.Add(ctx.Wiki().Props().ArticlePath());break;
- case Tid_full: tmp_bfr.Add(Bry_relative_url).Add(ctx.Wiki().Props().Server_name()).Add(ctx.Wiki().Props().ArticlePath()); break;
- case Tid_canonical: tmp_bfr.Add(ctx.Wiki().Props().Server()).Add(ctx.Wiki().Props().ArticlePath()); break;
- default: throw Err_.new_unhandled(tid);
- }
- tmp_bfr.Add(ttl_ary);
- trg.Add_bfr_and_clear(tmp_bfr);
+ Bry_bfr tmp_bfr = ctx.Wiki().Utl__bfr_mkr().Get_b512();
+ try {
+ switch (tid) {
+ case Tid_local: tmp_bfr.Add(ctx.Wiki().Props().ArticlePath());break;
+ case Tid_full: tmp_bfr.Add(Bry_relative_url).Add(ctx.Wiki().Props().Server_name()).Add(ctx.Wiki().Props().ArticlePath()); break;
+ case Tid_canonical: tmp_bfr.Add(ctx.Wiki().Props().Server()).Add(ctx.Wiki().Props().ArticlePath()); break;
+ default: throw Err_.new_unhandled(tid);
+ }
+ tmp_bfr.Add(ttl_ary);
+ trg.Add_bfr_and_clear(tmp_bfr);
+ } finally {tmp_bfr.Mkr_rls();}
}
if (qry_arg != Bry_.Empty) trg.Add_byte(Byte_ascii.Question).Add(qry_arg);
}
diff --git a/400_xowa/src/gplx/xowa/xtns/pfuncs/wikis/Pfunc_pagesincategory_tst.java b/400_xowa/src/gplx/xowa/xtns/pfuncs/wikis/Pfunc_pagesincategory_tst.java
index 64ec18dd2..5e891276a 100644
--- a/400_xowa/src/gplx/xowa/xtns/pfuncs/wikis/Pfunc_pagesincategory_tst.java
+++ b/400_xowa/src/gplx/xowa/xtns/pfuncs/wikis/Pfunc_pagesincategory_tst.java
@@ -54,7 +54,7 @@ class Pfunc_pagesincategory_tstr {
public void Init_category_counts(String category_title, int pages, int subcs, int files) {
int page_id = 1;
page_tbl.Insert_bgn();
- page_tbl.Insert_cmd_by_batch(page_id, Xow_ns_.Tid__category, Bry_.new_u8(category_title), Bool_.N, DateAdp_.Now(), 1, 1, 1, 1);
+ page_tbl.Insert_cmd_by_batch(page_id, Xow_ns_.Tid__category, Bry_.new_u8(category_title), Bool_.N, Datetime_now.Get(), 1, 1, 1, 1);
page_tbl.Insert_end();
cat_core_tbl.Insert_bgn();
cat_core_tbl.Insert_cmd_by_batch(page_id, pages, subcs, files, Byte_.Zero, 1);
diff --git a/400_xowa/src/gplx/xowa/xtns/poems/Poem_nde.java b/400_xowa/src/gplx/xowa/xtns/poems/Poem_nde.java
index d961f201b..89047bb40 100644
--- a/400_xowa/src/gplx/xowa/xtns/poems/Poem_nde.java
+++ b/400_xowa/src/gplx/xowa/xtns/poems/Poem_nde.java
@@ -39,43 +39,45 @@ public class Poem_nde implements Xox_xnde {
bfr.Add(Div_poem_end);
}
private static byte[] Parse_lines(Bry_bfr_mkr bfr_mkr, byte[] src, int src_bgn, int src_end) {
- Bry_bfr bfr = bfr_mkr.Get_k004().Mkr_rls();
- int line_bgn = src_bgn; boolean line_is_1st = true;
- while (line_bgn < src_end) { // iterate over each \n
- boolean indent_enabled = false;
- if (line_is_1st) line_is_1st = false;
- else {
- int line_end_w_br = line_bgn + Xowa_br_mark.length;
- if ( line_end_w_br < src_end // check for out of bounds; PAGE:en.s:The Hebrew Nation did not write it; DATE:2015-01-31
- && Bry_.Match(src, line_bgn, line_end_w_br, Xowa_br_mark)) // " \n" already inserted by XOWA; do not insert again; DATE:2014-10-20
- bfr.Add_byte_nl();
- else
- bfr.Add(Gfh_tag_.Br_inl).Add_byte_nl().Add(Xowa_br_mark); // add " \n" unless 1st line; EX: "\n\s" should not add leading " \n"
- }
- switch (src[line_bgn]) {
- case Byte_ascii.Space: // "\n\s" -> "\n "
- int space_end = Bry_find_.Find_fwd_while(src, line_bgn, src_end, Byte_ascii.Space);
- int space_count = space_end - line_bgn;
- line_bgn = space_end;
- for (int i = 0; i < space_count; ++i)
- bfr.Add(Gfh_entity_.Nbsp_num_bry);
- break;
- case Byte_ascii.Colon: { // "\n:" ->
- int colon_end = Bry_find_.Find_fwd_while(src, line_bgn, src_end, Byte_ascii.Colon);
- int colon_count = colon_end - line_bgn;
- line_bgn = colon_end;
- bfr.Add(Indent_bgn).Add_int_variable(colon_count).Add(Indent_end); // add
- indent_enabled = true;
- break;
+ Bry_bfr bfr = bfr_mkr.Get_k004();
+ try {
+ int line_bgn = src_bgn; boolean line_is_1st = true;
+ while (line_bgn < src_end) { // iterate over each \n
+ boolean indent_enabled = false;
+ if (line_is_1st) line_is_1st = false;
+ else {
+ int line_end_w_br = line_bgn + Xowa_br_mark.length;
+ if ( line_end_w_br < src_end // check for out of bounds; PAGE:en.s:The Hebrew Nation did not write it; DATE:2015-01-31
+ && Bry_.Match(src, line_bgn, line_end_w_br, Xowa_br_mark)) // " \n" already inserted by XOWA; do not insert again; DATE:2014-10-20
+ bfr.Add_byte_nl();
+ else
+ bfr.Add(Gfh_tag_.Br_inl).Add_byte_nl().Add(Xowa_br_mark); // add " \n" unless 1st line; EX: "\n\s" should not add leading " \n"
+ }
+ switch (src[line_bgn]) {
+ case Byte_ascii.Space: // "\n\s" -> "\n "
+ int space_end = Bry_find_.Find_fwd_while(src, line_bgn, src_end, Byte_ascii.Space);
+ int space_count = space_end - line_bgn;
+ line_bgn = space_end;
+ for (int i = 0; i < space_count; ++i)
+ bfr.Add(Gfh_entity_.Nbsp_num_bry);
+ break;
+ case Byte_ascii.Colon: { // "\n:" ->
+ int colon_end = Bry_find_.Find_fwd_while(src, line_bgn, src_end, Byte_ascii.Colon);
+ int colon_count = colon_end - line_bgn;
+ line_bgn = colon_end;
+ bfr.Add(Indent_bgn).Add_int_variable(colon_count).Add(Indent_end); // add
+ indent_enabled = true;
+ break;
+ }
}
+ int line_end = Bry_find_.Find_fwd(src, Byte_ascii.Nl, line_bgn, src_end); // find end "\n"
+ if (line_end == Bry_find_.Not_found) line_end = src_end; // no "\n"; use eos;
+ bfr.Add_mid(src, line_bgn, line_end); // add everything from line_bgn to line_end
+ if (indent_enabled) bfr.Add(Gfh_tag_.Span_rhs); // if "\n:", add
+ line_bgn = line_end + 1; // +1 to skip over end "\n"
}
- int line_end = Bry_find_.Find_fwd(src, Byte_ascii.Nl, line_bgn, src_end); // find end "\n"
- if (line_end == Bry_find_.Not_found) line_end = src_end; // no "\n"; use eos;
- bfr.Add_mid(src, line_bgn, line_end); // add everything from line_bgn to line_end
- if (indent_enabled) bfr.Add(Gfh_tag_.Span_rhs); // if "\n:", add
- line_bgn = line_end + 1; // +1 to skip over end "\n"
- }
- return bfr.To_bry_and_clear();
+ return bfr.To_bry_and_clear();
+ } finally {bfr.Mkr_rls();}
}
private static byte[]
Div_poem_bgn = Bry_.new_a7("
\n
\n") // NOTE: always enclose in
; MW does this implicitly in its modified parse; DATE:2014-04-27
diff --git a/400_xowa/src/gplx/xowa/xtns/proofreadPage/Pp_pages_nde.java b/400_xowa/src/gplx/xowa/xtns/proofreadPage/Pp_pages_nde.java
index 21bd91797..0deb3dcbb 100644
--- a/400_xowa/src/gplx/xowa/xtns/proofreadPage/Pp_pages_nde.java
+++ b/400_xowa/src/gplx/xowa/xtns/proofreadPage/Pp_pages_nde.java
@@ -65,7 +65,7 @@ public class Pp_pages_nde implements Xox_xnde, Mwh_atr_itm_owner1 {
Bry_bfr full_bfr = wiki.Utl__bfr_mkr().Get_m001();
Hash_adp_bry lst_page_regy = ctx.Lst_page_regy(); if (lst_page_regy == null) lst_page_regy = Hash_adp_bry.cs(); // SEE:NOTE:page_regy; DATE:2014-01-01
page.Html_data().Indicators().Enabled_(Bool_.N); // disable b/c should not add to current page; PAGE:en.s:The_Parochial_System_(Wilberforce,_1838); DATE:2015-04-29
- byte[] page_bry = Bld_wikitext(full_bfr, lst_page_regy);
+ byte[] page_bry = Bld_wikitext(full_bfr, wiki.Parser_mgr().Pp_num_parser(), lst_page_regy);
if (page_bry != null)
xtn_root = Bld_root_nde(full_bfr, lst_page_regy, page_bry); // NOTE: this effectively reparses page twice; needed b/c of "if {| : ; # *, auto add new_line" which can build different tokens
page.Pages_recursed_(false);
@@ -98,7 +98,7 @@ public class Pp_pages_nde implements Xox_xnde, Mwh_atr_itm_owner1 {
bgn_sect_bry = end_sect_bry = null;
return true;
}
- private byte[] Bld_wikitext(Bry_bfr full_bfr, Hash_adp_bry lst_page_regy) {
+ private byte[] Bld_wikitext(Bry_bfr full_bfr, Gfo_number_parser num_parser, Hash_adp_bry lst_page_regy) {
Pp_index_page index_page = Pp_index_parser.Parse(wiki, ctx, index_ttl, ns_page_id);
int index_page_ttls_len = index_page.Page_ttls().Count();
byte[] rv = Bry_.Empty;
@@ -107,7 +107,7 @@ public class Pp_pages_nde implements Xox_xnde, Mwh_atr_itm_owner1 {
if ( index_page.Pagelist_xndes().Count() > 0 // pagelist exists; don't get from args
|| index_page_ttls_len == 0 // no [[Page:]] in [[Index:]]
) // NOTE: this simulates MW's if (empty($links)); REF.MW:ProofreadPageRenderer.php|renderPages
- ttls = Get_ttls_from_xnde_args();
+ ttls = Get_ttls_from_xnde_args(num_parser);
else {
Int_obj_ref bgn_page_ref = Int_obj_ref.New_neg1(), end_page_ref = Int_obj_ref.New_neg1();
ttls = index_page.Get_ttls_rng(wiki, ns_page_id, bgn_page_bry, end_page_bry, bgn_page_ref, end_page_ref);
@@ -149,15 +149,6 @@ public class Pp_pages_nde implements Xox_xnde, Mwh_atr_itm_owner1 {
}
return rv;
}
- private static final byte[]
- Bry_tmpl = Bry_.new_a7("{{:MediaWiki:Proofreadpage_header_template")
- , Bry_value = Bry_.new_a7("|value=")
- , Bry_toc_cur = Bry_.new_a7("|current=")
- , Bry_toc_prv = Bry_.new_a7("|prev=")
- , Bry_toc_nxt = Bry_.new_a7("|next=")
- , Bry_page_bgn = Bry_.new_a7("|from=")
- , Bry_page_end = Bry_.new_a7("|to=")
- ;
private byte[] Bld_wikitext_for_header(Bry_bfr full_bfr, Pp_index_page index_page, byte[] rv) {
List_adp main_lnkis = index_page.Main_lnkis();
int main_lnkis_len = main_lnkis.Count();
@@ -210,12 +201,12 @@ public class Pp_pages_nde implements Xox_xnde, Mwh_atr_itm_owner1 {
full_bfr.Add(rv);
return full_bfr.To_bry_and_clear();
}
- private Xoa_ttl[] Get_ttls_from_xnde_args() {
+ private Xoa_ttl[] Get_ttls_from_xnde_args(Gfo_number_parser num_parser) {
if (!Chk_step()) return Ttls_null;
List_adp list = List_adp_.New();
- list = Get_ttls_from_xnde_args__include(list); if (list == null) return Ttls_null;
- list = Get_ttls_from_xnde_args__rng(list); if (list == null) return Ttls_null;
- list = Get_ttls_from_xnde_args__exclude(list); if (list == null) return Ttls_null;
+ list = Get_ttls_from_xnde_args__include(list); if (list == null) return Ttls_null;
+ list = Get_ttls_from_xnde_args__rng(num_parser, list); if (list == null) return Ttls_null;
+ list = Get_ttls_from_xnde_args__exclude(list); if (list == null) return Ttls_null;
if (include != null || exclude != null) // sort if include / exclude specified; will skip sort if only range specified
list.Sort();
return Get_ttls_from_xnde_args__ttls(list);
@@ -226,10 +217,10 @@ public class Pp_pages_nde implements Xox_xnde, Mwh_atr_itm_owner1 {
if (include_pages == null) return list; // ignore invalid include; DATE:2014-02-22
int include_pages_len = include_pages.length;
for (int i = 0; i < include_pages_len; i++)
- list.Add(Int_obj_val.new_(include_pages[i]));
+ list.Add(new Int_obj_val(include_pages[i]));
return list;
}
- private List_adp Get_ttls_from_xnde_args__rng(List_adp list) {
+ private List_adp Get_ttls_from_xnde_args__rng(Gfo_number_parser num_parser, List_adp list) {
if (Bry_.Len_eq_0(bgn_page_bry) && Bry_.Len_eq_0(end_page_bry)) return list; // from and to are blank; exit early
bgn_page_int = 0; // NOTE: default to 0 (1st page)
if (Bry_.Len_gt_0(bgn_page_bry)) {
@@ -258,7 +249,7 @@ public class Pp_pages_nde implements Xox_xnde, Mwh_atr_itm_owner1 {
return null;
}
for (int i = bgn_page_int; i <= end_page_int; i++)
- list.Add(Int_obj_val.new_(i));
+ list.Add(new Int_obj_val(i));
return list;
}
private int Get_max_page_idx(Xowe_wiki wiki, Xoa_ttl index_ttl) {
@@ -283,7 +274,7 @@ public class Pp_pages_nde implements Xox_xnde, Mwh_atr_itm_owner1 {
Hash_adp exclude_pages_hash = Hash_adp_.New();
int exclude_pages_len = exclude_pages.length;
for (int i = 0; i < exclude_pages_len; i++) {
- Int_obj_val exclude_page = Int_obj_val.new_(exclude_pages[i]);
+ Int_obj_val exclude_page = new Int_obj_val(exclude_pages[i]);
if (!exclude_pages_hash.Has(exclude_page))
exclude_pages_hash.Add(exclude_page, exclude_page);
}
@@ -372,6 +363,23 @@ public class Pp_pages_nde implements Xox_xnde, Mwh_atr_itm_owner1 {
tmp_parser.Parse_text_to_wdom(rv, tmp_ctx, tmp_ctx.Tkn_mkr(), wikitext, Xop_parser_.Doc_bgn_bos);
return rv;
}
+ private String Fail_msg_suffix() {
+ String excerpt = Bry_fmtr.Escape_tilde(String_.new_u8(Bry_.Mid_by_len_safe(src, xnde_tkn.Src_bgn(), 32)));
+ return String_.Format(" ttl={0} src={1}", String_.new_u8(cur_page_ttl.Full_db()), excerpt);
+ }
+ private String Fail_msg_basic(String msg) {return msg + ";" + Fail_msg_suffix();}
+ private String Fail_msg_custom(String fmt, Object... args) {return String_.Format(fmt, args) + Fail_msg_suffix();}
+ private boolean Fail_msg(String msg) {
+ xtn_literal = true;
+ usr_dlg.Warn_many("", "", String_.Replace(Fail_msg_basic(msg), "\n", ""));
+ return false;
+ }
+ private boolean Fail_args(String fmt, Object... args) {
+ xtn_literal = true;
+ usr_dlg.Warn_many("", "", String_.Replace(Fail_msg_custom(fmt, args), "\n", ""));
+ return false;
+ }
+
private static Hash_adp_bry xatrs_hash = Hash_adp_bry.ci_a7() // NOTE: these do not seem to be i18n'd; no ProofreadPage.magic.php; ProofreadPage.i18n.php only has messages; ProofreadPage.body.php refers to names literally
.Add_str_obj("index" , Byte_obj_val.new_(Pp_pages_nde.Xatr_index_ttl))
.Add_str_obj("from" , Byte_obj_val.new_(Pp_pages_nde.Xatr_bgn_page))
@@ -402,24 +410,16 @@ public class Pp_pages_nde implements Xox_xnde, Mwh_atr_itm_owner1 {
, Xatr_toc_prv = 11
, Xatr_toc_nxt = 12
;
+ private static final byte[]
+ Bry_tmpl = Bry_.new_a7("{{:MediaWiki:Proofreadpage_header_template")
+ , Bry_value = Bry_.new_a7("|value=")
+ , Bry_toc_cur = Bry_.new_a7("|current=")
+ , Bry_toc_prv = Bry_.new_a7("|prev=")
+ , Bry_toc_nxt = Bry_.new_a7("|next=")
+ , Bry_page_bgn = Bry_.new_a7("|from=")
+ , Bry_page_end = Bry_.new_a7("|to=")
+ ;
public static final Xoa_ttl[] Ttls_null = null;
- private static final Number_parser num_parser = new Number_parser().Ignore_space_at_end_y_(); // ignore space at end; PAGE:en.s:1911_Encyclop�dia_Britannica/Boissier,_Marie_Louis_Antoine_Gaston DATE:2015-04-29
- private String Fail_msg_suffix() {
- String excerpt = Bry_fmtr.Escape_tilde(String_.new_u8(Bry_.Mid_by_len_safe(src, xnde_tkn.Src_bgn(), 32)));
- return String_.Format(" ttl={0} src={1}", String_.new_u8(cur_page_ttl.Full_db()), excerpt);
- }
- private String Fail_msg_basic(String msg) {return msg + ";" + Fail_msg_suffix();}
- private String Fail_msg_custom(String fmt, Object... args) {return String_.Format(fmt, args) + Fail_msg_suffix();}
- private boolean Fail_msg(String msg) {
- xtn_literal = true;
- usr_dlg.Warn_many("", "", String_.Replace(Fail_msg_basic(msg), "\n", ""));
- return false;
- }
- private boolean Fail_args(String fmt, Object... args) {
- xtn_literal = true;
- usr_dlg.Warn_many("", "", String_.Replace(Fail_msg_custom(fmt, args), "\n", ""));
- return false;
- }
}
/*
NOTE:page_regy
diff --git a/400_xowa/src/gplx/xowa/xtns/scribunto/Scrib_core.java b/400_xowa/src/gplx/xowa/xtns/scribunto/Scrib_core.java
index 55aa867d3..04ea51973 100644
--- a/400_xowa/src/gplx/xowa/xtns/scribunto/Scrib_core.java
+++ b/400_xowa/src/gplx/xowa/xtns/scribunto/Scrib_core.java
@@ -163,11 +163,16 @@ public class Scrib_core {
this.frame_parent = parent_frame; this.frame_current = current_frame;
}
public void Invoke(Xowe_wiki wiki, Xop_ctx ctx, byte[] src, Xot_invk parent_frame, Xot_invk current_frame, Bry_bfr bfr, byte[] mod_name, byte[] mod_text, byte[] fnc_name) {
+ // save current values for restoring later
+ Xot_invk old_frame_parent = this.frame_parent; Xot_invk old_frame_current = this.frame_current;
+ byte[] old_src = cur_src;
+
+ // init
this.wiki = wiki; this.ctx = ctx; this.cur_src = src;
lib_mw.Invoke_bgn(wiki, ctx, src);
- Xot_invk old_frame_parent = this.frame_parent; Xot_invk old_frame_current = this.frame_current;
this.frame_parent = parent_frame; this.frame_current = current_frame;
parent_frame.Frame_tid_(Scrib_frame_.Tid_parent); current_frame.Frame_tid_(Scrib_frame_.Tid_current);
+
try {
Scrib_lua_mod mod = Mods_get_or_new(mod_name, mod_text);
Keyval[] func_args = Scrib_kv_utl_.base1_many_(mod.Init_chunk_func(), String_.new_u8(fnc_name));
@@ -188,6 +193,7 @@ public class Scrib_core {
lib_mw.Invoke_end();
parent_frame.Frame_tid_(Scrib_frame_.Tid_null); current_frame.Frame_tid_(Scrib_frame_.Tid_null);
this.frame_parent = old_frame_parent; this.frame_current = old_frame_current; // NOTE: reset template frame; PAGE:en.w:Constantine_the_Great {{Christianity}}; DATE:2014-06-26
+ this.cur_src = old_src;
frame_created_list.Clear();
}
}
diff --git a/400_xowa/src/gplx/xowa/xtns/scribunto/Scrib_kv_utl_.java b/400_xowa/src/gplx/xowa/xtns/scribunto/Scrib_kv_utl_.java
index a0a084144..b38bfeef5 100644
--- a/400_xowa/src/gplx/xowa/xtns/scribunto/Scrib_kv_utl_.java
+++ b/400_xowa/src/gplx/xowa/xtns/scribunto/Scrib_kv_utl_.java
@@ -61,4 +61,12 @@ public class Scrib_kv_utl_ {
try {return (Keyval[])ary[idx].Val();}
catch (Exception e) {throw Err_.new_exc(e, "scrib", "cast as Keyval[] failed", "ary", Keyval_.Ary_to_str(ary));}
}
+ public static Object Get_sub_by_key_or_null(Keyval[] ary, String key) {
+ int len = ary.length;
+ for (int i = 0; i < len; ++i) {
+ Keyval sub = ary[i];
+ if (String_.Eq(key, sub.Key())) return sub.Val();
+ }
+ return null;
+ }
}
diff --git a/400_xowa/src/gplx/xowa/xtns/scribunto/engines/luaj/Luaj_server.java b/400_xowa/src/gplx/xowa/xtns/scribunto/engines/luaj/Luaj_server.java
index 77f5d4c63..0377a21a8 100644
--- a/400_xowa/src/gplx/xowa/xtns/scribunto/engines/luaj/Luaj_server.java
+++ b/400_xowa/src/gplx/xowa/xtns/scribunto/engines/luaj/Luaj_server.java
@@ -27,10 +27,12 @@ public class Luaj_server implements Scrib_server {
this.func_recv = func_recv;
this.func_dbg = func_dbg;
}
- private Globals luaj_globals;
+ public Globals Luaj_globals() {return luaj_globals;} private Globals luaj_globals;
+ public DebugLib Luaj_dbg() {return luaj_dbg;} private DebugLib luaj_dbg;
public void Init(String... init_args) {
+ luaj_dbg = new DebugLib(); // NOTE: needed for getfenv
luaj_globals = JsePlatform.standardGlobals();
- luaj_globals.load(new DebugLib());
+ luaj_globals.load(luaj_dbg);
luaj_globals.load(new MWClient(luaj_globals, func_recv));
luaj_globals.set("dbg", func_dbg);
String root_str = init_args[2];
diff --git a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_language.java b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_language.java
index 65cfb4cad..adf89fa52 100644
--- a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_language.java
+++ b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_language.java
@@ -151,8 +151,10 @@ public class Scrib_lib_language implements Scrib_lib {
private boolean Case_1st(Scrib_proc_args args, Scrib_proc_rslt rslt, boolean upper) {
Xol_lang_itm lang = lang_(args);
byte[] word = args.Pull_bry(1);
- Bry_bfr bfr = core.Wiki().Utl__bfr_mkr().Get_b128().Mkr_rls();
- return rslt.Init_obj(lang.Case_mgr().Case_build_1st(bfr, upper, word, 0, word.length));
+ Bry_bfr bfr = core.Wiki().Utl__bfr_mkr().Get_b128();
+ try {
+ return rslt.Init_obj(lang.Case_mgr().Case_build_1st(bfr, upper, word, 0, word.length));
+ } finally {bfr.Mkr_rls();}
}
public boolean Lc(Scrib_proc_args args, Scrib_proc_rslt rslt) {return Case_all(args, rslt, Bool_.N);}
public boolean Uc(Scrib_proc_args args, Scrib_proc_rslt rslt) {return Case_all(args, rslt, Bool_.Y);}
@@ -187,7 +189,7 @@ public class Scrib_lib_language implements Scrib_lib {
Pft_fmt_itm[] fmt_ary = Pft_fmt_itm_.Parse(core.Ctx(), fmt_bry);
DateAdp date = null;
if (Bry_.Len_eq_0(date_bry))
- date = DateAdp_.Now();
+ date = Datetime_now.Get();
else {
if (date_bry[0] == Byte_ascii.Plus) { // detect wikidata-style dates; EX: +00000002010-05-01T00:00:00Z; PAGE:en.w:Mountain_Province; DATE:2015-07-29
int date_bry_len = date_bry.length;
diff --git a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_language_tst.java b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_language_tst.java
index 64197c2b5..266068d11 100644
--- a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_language_tst.java
+++ b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_language_tst.java
@@ -73,7 +73,7 @@ public class Scrib_lib_language_tst {
}
@Test public void FormatDate() {
fxt.Test_scrib_proc_str(lib, Scrib_lib_language.Invk_formatDate, Object_.Ary("en", "Y-m-d", "2013-03-17", false), "2013-03-17");
- fxt.Test_scrib_proc_str(lib, Scrib_lib_language.Invk_formatDate, Object_.Ary("en", "Y-m-d"), DateAdp_.Now().XtoStr_fmt_yyyy_MM_dd()); // empty date should default to today;
+ fxt.Test_scrib_proc_str(lib, Scrib_lib_language.Invk_formatDate, Object_.Ary("en", "Y-m-d"), Datetime_now.Get().XtoStr_fmt_yyyy_MM_dd()); // empty date should default to today;
}
@Test public void FormatDate__ymd_12() {
fxt.Test_scrib_proc_str(lib, Scrib_lib_language.Invk_formatDate, Object_.Ary("en", "Y-m-d", "201603160102", false), "2016-03-16"); // handle long numeric date (12 digits); PAGE:en.w:Boron; DATE:2015-07-29
@@ -82,11 +82,11 @@ public class Scrib_lib_language_tst {
fxt.Test_scrib_proc_str(lib, Scrib_lib_language.Invk_formatDate, Object_.Ary("en", "Y-m-d", "+00000002010-05-01T00:00:00Z", false), "2010-05-01"); // handle Wikidata style dates; PAGE:en.w:Mountain_Province; DATE:2015-07-29
}
@Test public void FormatDate_date_omitted() { // PURPOSE: some calls skip the date; retrieve arg_4 by int; EX: pl.w:L._Frank_Baum
- Tfds.Now_enabled_y_();
- Tfds.Now_set(DateAdp_.new_(2013, 12, 19, 1, 2, 3, 4));
+ Datetime_now.Manual_y_();
+ Datetime_now.Manual_(DateAdp_.new_(2013, 12, 19, 1, 2, 3, 4));
fxt.Test_scrib_proc_str(lib, Scrib_lib_language.Invk_formatDate, Keyval_.Ary(Keyval_.int_(1, "en"), Keyval_.int_(2, "Y-m-d"), Keyval_.int_(4, false)), "2013-12-19");
fxt.Test_scrib_proc_str(lib, Scrib_lib_language.Invk_formatDate, Object_.Ary("en", "Y-m-d", ""), "2013-12-19");// PURPOSE: '' should return today, not fail; EX: th.w:สถานีรถไฟตรัง
- Tfds.Now_enabled_n_();
+ Datetime_now.Manual_n_();
}
@Test public void Lc() {
fxt.Test_scrib_proc_str(lib, Scrib_lib_language.Invk_lc, Object_.Ary("en", "ABC"), "abc");
diff --git a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_mw.java b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_mw.java
index a32d41fc6..73d4ebb51 100644
--- a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_mw.java
+++ b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_mw.java
@@ -268,7 +268,7 @@ public class Scrib_lib_mw implements Scrib_lib {
bfr.Mkr_rls();
return rslt.Init_obj(bfr.To_str_and_clear());
}
- private Keyval[] CallParserFunction_parse_args(Number_parser num_parser, Bry_obj_ref argx_ref, Bry_obj_ref fnc_name_ref, Keyval[] args) {
+ private Keyval[] CallParserFunction_parse_args(Gfo_number_parser num_parser, Bry_obj_ref argx_ref, Bry_obj_ref fnc_name_ref, Keyval[] args) {
List_adp rv = List_adp_.New();
// flatten args
int args_len = args.length;
diff --git a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_wikibase.java b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_wikibase.java
index 6680b64a4..d0bba723e 100644
--- a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_wikibase.java
+++ b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_wikibase.java
@@ -16,7 +16,7 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
package gplx.xowa.xtns.scribunto.libs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.scribunto.*;
-import gplx.langs.jsons.*; import gplx.xowa.xtns.wdatas.*; import gplx.xowa.xtns.wdatas.parsers.*;
+import gplx.langs.jsons.*; import gplx.xowa.xtns.wbases.*; import gplx.xowa.xtns.wbases.parsers.*;
import gplx.xowa.wikis.domains.*;
public class Scrib_lib_wikibase implements Scrib_lib {
public Scrib_lib_wikibase(Scrib_core core) {this.core = core;} private Scrib_core core;
@@ -35,6 +35,7 @@ public class Scrib_lib_wikibase implements Scrib_lib {
case Proc_getLabel: return GetLabel(args, rslt);
case Proc_getEntity: return GetEntity(args, rslt);
case Proc_getSetting: return GetSetting(args, rslt);
+ case Proc_getEntityUrl: return GetEntityUrl(args, rslt);
case Proc_renderSnak: return RenderSnak(args, rslt);
case Proc_renderSnaks: return RenderSnaks(args, rslt);
case Proc_getEntityId: return GetEntityId(args, rslt);
@@ -43,26 +44,42 @@ public class Scrib_lib_wikibase implements Scrib_lib {
case Proc_resolvePropertyId: return ResolvePropertyId(args, rslt);
case Proc_getSiteLinkPageName: return GetSiteLinkPageName(args, rslt);
case Proc_incrementExpensiveFunctionCount: return IncrementExpensiveFunctionCount(args, rslt);
+ case Proc_getPropertyOrder: return GetPropertyOrder(args, rslt);
+ case Proc_orderProperties: return OrderProperties(args, rslt);
default: throw Err_.new_unhandled(key);
}
}
- private static final int Proc_getLabel = 0, Proc_getEntity = 1, Proc_getSetting = 2, Proc_renderSnak = 3, Proc_renderSnaks = 4, Proc_getEntityId = 5, Proc_getUserLang = 6, Proc_getDescription = 7, Proc_resolvePropertyId = 8, Proc_getSiteLinkPageName = 9, Proc_incrementExpensiveFunctionCount = 10;
- public static final String Invk_getLabel = "getLabel", Invk_getEntity = "getEntity", Invk_getSetting = "getSetting", Invk_renderSnak = "renderSnak", Invk_renderSnaks = "renderSnaks", Invk_getEntityId = "getEntityId", Invk_getUserLang = "getUserLang", Invk_getDescription = "getDescription", Invk_resolvePropertyId = "resolvePropertyId", Invk_getSiteLinkPageName = "getSiteLinkPageName", Invk_incrementExpensiveFunctionCount = "incrementExpensiveFunctionCount";
- private static final String[] Proc_names = String_.Ary(Invk_getLabel, Invk_getEntity, Invk_getSetting, Invk_renderSnak, Invk_renderSnaks, Invk_getEntityId, Invk_getUserLang, Invk_getDescription, Invk_resolvePropertyId, Invk_getSiteLinkPageName, Invk_incrementExpensiveFunctionCount);
+ private static final int
+ Proc_getLabel = 0, Proc_getEntity = 1, Proc_getSetting = 2, Proc_getEntityUrl = 3, Proc_renderSnak = 4, Proc_renderSnaks = 5, Proc_getEntityId = 6, Proc_getUserLang = 7
+ , Proc_getDescription = 8, Proc_resolvePropertyId = 9, Proc_getSiteLinkPageName = 10, Proc_incrementExpensiveFunctionCount = 11, Proc_getPropertyOrder = 12, Proc_orderProperties = 13;
+ public static final String Invk_getLabel = "getLabel", Invk_getEntity = "getEntity", Invk_getSetting = "getSetting", Invk_getEntityUrl = "getEntityUrl"
+ , Invk_renderSnak = "renderSnak", Invk_renderSnaks = "renderSnaks", Invk_getEntityId = "getEntityId", Invk_getUserLang = "getUserLang"
+ , Invk_getDescription = "getDescription", Invk_resolvePropertyId = "resolvePropertyId", Invk_getSiteLinkPageName = "getSiteLinkPageName", Invk_incrementExpensiveFunctionCount = "incrementExpensiveFunctionCount"
+ , Invk_getPropertyOrder = "getPropertyOrder", Invk_orderProperties = "orderProperties"
+ ;
+ private static final String[] Proc_names = String_.Ary
+ ( Invk_getLabel, Invk_getEntity, Invk_getSetting, Invk_getEntityUrl, Invk_renderSnak, Invk_renderSnaks, Invk_getEntityId, Invk_getUserLang
+ , Invk_getDescription, Invk_resolvePropertyId, Invk_getSiteLinkPageName, Invk_incrementExpensiveFunctionCount, Invk_getPropertyOrder, Invk_orderProperties
+ );
public void Notify_page_changed() {if (notify_page_changed_fnc != null) core.Interpreter().CallFunction(notify_page_changed_fnc.Id(), Keyval_.Ary_empty);}
public boolean GetLabel(Scrib_proc_args args, Scrib_proc_rslt rslt) {
- byte[] ttl_bry = args.Pull_bry(0); if (Bry_.Len_eq_0(ttl_bry)) return rslt.Init_ary_empty();
- Wdata_doc wdoc = Get_wdoc(ttl_bry); if (wdoc == null) return rslt.Init_ary_empty();
+ Wdata_doc wdoc = Get_wdoc_or_null(args, core); if (wdoc == null) return rslt.Init_ary_empty();
return rslt.Init_obj(wdoc.Label_list__get_or_fallback(core.Lang()));
}
public boolean GetEntity(Scrib_proc_args args, Scrib_proc_rslt rslt) {
- byte[] ttl_bry = args.Pull_bry(0); if (Bry_.Len_eq_0(ttl_bry)) return rslt.Init_ary_empty(); // NOTE: some Modules do not pass in an argument; return early, else spurious warning "invalid qid for ttl" (since ttl is blank); EX:w:Module:Authority_control; DATE:2013-10-27
- Wdata_doc wdoc = Get_wdoc(ttl_bry);
- return wdoc == null ? rslt.Init_ary_empty() : rslt.Init_obj(Scrib_lib_wikibase_srl.Srl(wdoc, true, false)); // "false": wbase now always uses v2; PAGE:ja.w:東京競馬場; DATE:2015-07-28
+ Wdata_doc wdoc = Get_wdoc_or_null(args, core); if (wdoc == null) return rslt.Init_ary_empty();
+ return rslt.Init_obj(Scrib_lib_wikibase_srl.Srl(wdoc, true, false)); // "false": wbase now always uses v2; PAGE:ja.w:東京競馬場; DATE:2015-07-28
+ }
+ public boolean GetEntityUrl(Scrib_proc_args args, Scrib_proc_rslt rslt) {throw Err_.new_("wbase", "getEntityUrl not implemented", "url", core.Page().Url().To_str());}
+ public boolean GetSetting(Scrib_proc_args args, Scrib_proc_rslt rslt) {throw Err_.new_("wbase", "getSetting not implemented", "url", core.Page().Url().To_str());}
+ public boolean RenderSnak(Scrib_proc_args args, Scrib_proc_rslt rslt) {
+ String rv = Wdata_prop_val_visitor_.Render_snak(core.Wiki(), core.Page().Url_bry_safe(), args.Pull_kv_ary_safe(0));
+ return rslt.Init_obj(rv);
+ }
+ public boolean RenderSnaks(Scrib_proc_args args, Scrib_proc_rslt rslt) {
+ String rv = Wdata_prop_val_visitor_.Render_snaks(core.Wiki(), core.Page().Url_bry_safe(), args.Pull_kv_ary_safe(0));
+ return rslt.Init_obj(rv);
}
- public boolean GetSetting(Scrib_proc_args args, Scrib_proc_rslt rslt) {throw Err_.new_("wbase", "getSetting not implemented", "url", core.Page().Url().To_str(), "arg", args.Pull_bry(0));}
- public boolean RenderSnak(Scrib_proc_args args, Scrib_proc_rslt rslt) {throw Err_.new_("wbase", "renderSnak not implemented", "url", core.Page().Url().To_str(), "arg", args.Pull_bry(0));}
- public boolean RenderSnaks(Scrib_proc_args args, Scrib_proc_rslt rslt) {throw Err_.new_("wbase", "renderSnaks not implemented", "url", core.Page().Url().To_str(), "arg", args.Pull_bry(0));}
public boolean GetEntityId(Scrib_proc_args args, Scrib_proc_rslt rslt) {
byte[] ttl_bry = args.Pull_bry(0);
Xowe_wiki wiki = core.Wiki();
@@ -74,18 +91,15 @@ public class Scrib_lib_wikibase implements Scrib_lib {
return rslt.Init_obj(core.App().Usere().Lang().Key_bry());
}
public boolean GetDescription(Scrib_proc_args args, Scrib_proc_rslt rslt) {
- byte[] ttl_bry = args.Pull_bry(0); if (Bry_.Len_eq_0(ttl_bry)) return rslt.Init_ary_empty();
- Wdata_doc wdoc = Get_wdoc(ttl_bry); if (wdoc == null) return rslt.Init_ary_empty();
+ Wdata_doc wdoc = Get_wdoc_or_null(args, core); if (wdoc == null) return rslt.Init_ary_empty();
return rslt.Init_obj(wdoc.Descr_list__get_or_fallback(core.Lang()));
}
public boolean ResolvePropertyId(Scrib_proc_args args, Scrib_proc_rslt rslt) {
- byte[] prop = args.Pull_bry(0); if (Bry_.Len_eq_0(prop)) return rslt.Init_ary_empty();
- Wdata_doc wdoc = Get_wdoc(prop); if (wdoc == null) return rslt.Init_ary_empty(); // prop should be of form "P123"; do not add "P"; PAGE:no.w:Anne_Enger; DATE:2015-10-27
+ Wdata_doc wdoc = Get_wdoc_or_null(args, core); if (wdoc == null) return rslt.Init_ary_empty(); // NOTE: prop should be of form "P123"; do not add "P"; PAGE:no.w:Anne_Enger; DATE:2015-10-27
return rslt.Init_obj(wdoc.Label_list__get_or_fallback(core.Lang()));
}
public boolean GetSiteLinkPageName(Scrib_proc_args args, Scrib_proc_rslt rslt) {
- byte[] ttl_bry = args.Pull_bry(0); if (Bry_.Len_eq_0(ttl_bry)) return rslt.Init_ary_empty();
- Wdata_doc wdoc = Get_wdoc(ttl_bry); if (wdoc == null) return rslt.Init_ary_empty();
+ Wdata_doc wdoc = Get_wdoc_or_null(args, core); if (wdoc == null) return rslt.Init_ary_empty(); // NOTE: prop should be of form "P123"; do not add "P"; PAGE:no.w:Anne_Enger; DATE:2015-10-27
Xow_domain_itm domain_itm = core.Wiki().Domain_itm();
return rslt.Init_obj(wdoc.Slink_list__get_or_fallback(domain_itm.Abrv_wm()));
}
@@ -93,10 +107,15 @@ public class Scrib_lib_wikibase implements Scrib_lib {
public boolean GetGlobalSiteId(Scrib_proc_args args, Scrib_proc_rslt rslt) {
return rslt.Init_obj(core.Wiki().Domain_abrv()); // ;siteGlobalID: This site's global ID (e.g. 'itwiki'), as used in the sites table. Default: $wgDBname.; REF:/xtns/Wikibase/docs/options.wiki
}
- private Wdata_doc Get_wdoc(byte[] xid_bry) {
- Xowe_wiki wiki = core.Wiki();
- Wdata_doc wdoc = wiki.Appe().Wiki_mgr().Wdata_mgr().Doc_mgr.Get_by_xid_or_null(xid_bry); // NOTE: by_xid b/c Module passes just "p1" not "Property:P1"
+ private static Wdata_doc Get_wdoc_or_null(Scrib_proc_args args, Scrib_core core) {
+ // get qid / pid from scrib_arg[0]; if none, return null;
+ byte[] xid_bry = args.Pull_bry(0); if (Bry_.Len_eq_0(xid_bry)) return null; // NOTE: some Modules do not pass in an argument; return early, else spurious warning "invalid qid for ttl" (since ttl is blank); EX:w:Module:Authority_control; DATE:2013-10-27
+
+ // get wdoc
+ Wdata_doc wdoc = core.Wiki().Appe().Wiki_mgr().Wdata_mgr().Doc_mgr.Get_by_xid_or_null(xid_bry); // NOTE: by_xid b/c Module passes just "p1" not "Property:P1"
if (wdoc == null) Wdata_wiki_mgr.Log_missing_qid(core.Ctx(), xid_bry);
return wdoc;
}
+ public boolean GetPropertyOrder(Scrib_proc_args args, Scrib_proc_rslt rslt) {throw Err_.new_("wbase", "getPropertyOrder not implemented", "url", core.Page().Url().To_str());}
+ public boolean OrderProperties(Scrib_proc_args args, Scrib_proc_rslt rslt) {throw Err_.new_("wbase", "orderProperties not implemented", "url", core.Page().Url().To_str());}
}
diff --git a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_wikibase_entity.java b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_wikibase_entity.java
index 57d7ad57b..642ca1b50 100644
--- a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_wikibase_entity.java
+++ b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_wikibase_entity.java
@@ -16,8 +16,9 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
package gplx.xowa.xtns.scribunto.libs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.scribunto.*;
-import gplx.xowa.xtns.wdatas.*;
-import gplx.langs.jsons.*; import gplx.xowa.xtns.wdatas.core.*;
+import gplx.xowa.xtns.wbases.*;
+import gplx.langs.jsons.*;
+import gplx.xowa.xtns.wbases.core.*; import gplx.xowa.xtns.wbases.claims.*;
public class Scrib_lib_wikibase_entity implements Scrib_lib {
public Scrib_lib_wikibase_entity(Scrib_core core) {this.core = core;} private Scrib_core core;
public Scrib_lua_mod Mod() {return mod;} private Scrib_lua_mod mod;
@@ -42,7 +43,7 @@ public class Scrib_lib_wikibase_entity implements Scrib_lib {
public boolean GetGlobalSiteId(Scrib_proc_args args, Scrib_proc_rslt rslt) {
return rslt.Init_obj(core.Wiki().Domain_abrv()); // ;siteGlobalID: This site's global ID (e.g. 'itwiki'), as used in the sites table. Default: $wgDBname.; REF:/xtns/Wikibase/docs/options.wiki
}
- public boolean FormatPropertyValues(Scrib_proc_args args, Scrib_proc_rslt rslt) {
+ public boolean FormatPropertyValues(Scrib_proc_args args, Scrib_proc_rslt rslt) {
byte[] qid = args.Pull_bry(0);
byte[] pid = args.Pull_bry(1);
Xoae_app app = core.App(); Xowe_wiki wiki = core.Wiki();
@@ -52,7 +53,7 @@ public class Scrib_lib_wikibase_entity implements Scrib_lib {
int pid_int = Wbase_pid_mgr.To_int_or_null(pid); // parse as num; EX: p123 -> 123; PAGE:hr.w:Hepatitis DATE:2015-11-08
if (pid_int == Wdata_wiki_mgr.Pid_null) pid_int = wdata_mgr.Pid_mgr.Get_or_null(lang, pid); // parse as name; EX: name > 123
if (pid_int == Wdata_wiki_mgr.Pid_null) return rslt.Init_str_empty();
- Wdata_claim_grp prop_grp = wdoc.Claim_list_get(pid_int); if (prop_grp == null) return rslt.Init_str_empty();
+ Wbase_claim_grp prop_grp = wdoc.Claim_list_get(pid_int); if (prop_grp == null) return rslt.Init_str_empty();
Bry_bfr bfr = wiki.Utl__bfr_mkr().Get_b512();
wdata_mgr.Resolve_to_bfr(bfr, prop_grp, lang);
return rslt.Init_obj(bfr.To_bry_and_rls());
diff --git a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_wikibase_entity_tst.java b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_wikibase_entity_tst.java
index 1ee6331d6..89ea11594 100644
--- a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_wikibase_entity_tst.java
+++ b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_wikibase_entity_tst.java
@@ -17,7 +17,7 @@ along with this program. If not, see .
*/
package gplx.xowa.xtns.scribunto.libs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.scribunto.*;
import org.junit.*;
-import gplx.xowa.xtns.wdatas.*;
+import gplx.xowa.xtns.wbases.*;
public class Scrib_lib_wikibase_entity_tst {
@Before public void init() {
fxt.Clear_for_lib();
@@ -28,7 +28,7 @@ public class Scrib_lib_wikibase_entity_tst {
}
@Test public void FormatPropertyValues() {
Wdata_wiki_mgr_fxt wdata_fxt = new Wdata_wiki_mgr_fxt().Init(fxt.Parser_fxt(), false);
- wdata_fxt.Init__docs__add(wdata_fxt.Wdoc_bldr("Q2").Add_claims(wdata_fxt.Make_claim_str(3, "P3_val")).Xto_wdoc());
+ wdata_fxt.Init__docs__add(wdata_fxt.Wdoc_bldr("Q2").Add_claims(wdata_fxt.Make_claim_string(3, "P3_val")).Xto_wdoc());
fxt.Test_scrib_proc_str(lib, Scrib_lib_wikibase_entity.Invk_formatPropertyValues, Object_.Ary("Q2", "P3") , "P3_val"); // lookup by id
wdata_fxt.Init_pids_add("en", "P3_val", 3);
fxt.Test_scrib_proc_str(lib, Scrib_lib_wikibase_entity.Invk_formatPropertyValues, Object_.Ary("Q2", "P3_val") , "P3_val"); // lookup by name
diff --git a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_wikibase_srl.java b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_wikibase_srl.java
index 308717168..e5ccad855 100644
--- a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_wikibase_srl.java
+++ b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_wikibase_srl.java
@@ -16,14 +16,14 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
package gplx.xowa.xtns.scribunto.libs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.scribunto.*;
-import gplx.xowa.xtns.wdatas.*; import gplx.xowa.xtns.wdatas.core.*; import gplx.xowa.xtns.wdatas.parsers.*;
+import gplx.xowa.xtns.wbases.*; import gplx.xowa.xtns.wbases.core.*; import gplx.xowa.xtns.wbases.claims.*; import gplx.xowa.xtns.wbases.claims.enums.*; import gplx.xowa.xtns.wbases.claims.itms.*; import gplx.xowa.xtns.wbases.parsers.*;
class Scrib_lib_wikibase_srl {
public static Keyval[] Srl(Wdata_doc wdoc, boolean header_enabled, boolean legacy_style) {// REF.MW:/Wikibase/lib/includes/serializers/EntitySerializer.php!getSerialized; http://www.mediawiki.org/wiki/Extension:Wikibase_Client/Lua
int base_adj = legacy_style ? 0 : 1;
List_adp rv = List_adp_.New();
if (header_enabled) {
rv.Add(Keyval_.new_("id", wdoc.Qid()));
- rv.Add(Keyval_.new_("type", Wdata_dict_value_entity_tid.Str_item));
+ rv.Add(Keyval_.new_("type", Wbase_claim_entity_type_.Itm__item.Key_str()));
rv.Add(Keyval_.new_("schemaVersion", base_adj + 1)); // NOTE: needed by mw.wikibase.lua
}
Srl_root(rv, Wdata_doc_parser_v2.Str_labels , Srl_langtexts (Wdata_dict_langtext.Str_language , Wdata_dict_langtext.Str_value, wdoc.Label_list()));
@@ -94,7 +94,7 @@ class Scrib_lib_wikibase_srl {
int rv_len = legacy_style ? len * 2 : len; // NOTE: legacyStyle returns 2 sets of properties: official "P" and legacy "p"; DATE:2014-05-11
Keyval[] rv = new Keyval[rv_len];
for (int i = 0; i < len; i++) {
- Wdata_claim_grp grp = (Wdata_claim_grp)claim_grps.Get_at(i);
+ Wbase_claim_grp grp = (Wbase_claim_grp)claim_grps.Get_at(i);
String pid_str = Int_.To_str(grp.Id());
Keyval[] grp_val = Srl_claims_prop_grp(visitor, "P" + pid_str, grp, base_adj);
rv[i] = Keyval_.new_("P" + pid_str, grp_val);
@@ -103,57 +103,57 @@ class Scrib_lib_wikibase_srl {
}
return rv;
}
- private static Keyval[] Srl_claims_prop_grp(Scrib_lib_wikibase_srl_visitor visitor, String pid, Wdata_claim_grp grp, int base_adj) {
+ private static Keyval[] Srl_claims_prop_grp(Scrib_lib_wikibase_srl_visitor visitor, String pid, Wbase_claim_grp grp, int base_adj) {
int len = grp.Len();
Keyval[] rv = new Keyval[len];
for (int i = 0; i < len; i++) {
- Wdata_claim_itm_core itm = grp.Get_at(i);
+ Wbase_claim_base itm = grp.Get_at(i);
rv[i] = Keyval_.int_(i + base_adj, Srl_claims_prop_itm(visitor, pid, itm, base_adj)); // NOTE: must be super 0 or super 1; DATE:2014-05-09
}
return rv;
}
- private static Keyval[] Srl_claims_prop_itm(Scrib_lib_wikibase_srl_visitor visitor, String pid, Wdata_claim_itm_core itm, int base_adj) {
+ private static Keyval[] Srl_claims_prop_itm(Scrib_lib_wikibase_srl_visitor visitor, String pid, Wbase_claim_base itm, int base_adj) {
List_adp list = List_adp_.New();
list.Add(Keyval_.new_("id", pid));
list.Add(Keyval_.new_("mainsnak", Srl_claims_prop_itm_core(visitor, pid, itm)));
- list.Add(Keyval_.new_(Wdata_dict_claim_v1.Str_rank, Wdata_dict_rank.Xto_str(itm.Rank_tid())));
+ list.Add(Keyval_.new_(Wdata_dict_claim_v1.Str_rank, Wbase_claim_rank_.To_str_or_fail(itm.Rank_tid())));
list.Add(Keyval_.new_("type", itm.Prop_type()));
Srl_root(list, Wdata_dict_claim.Str_qualifiers, Srl_qualifiers(visitor, itm.Qualifiers(), base_adj));
return (Keyval[])list.To_ary_and_clear(Keyval.class);
}
- private static Keyval[] Srl_qualifiers(Scrib_lib_wikibase_srl_visitor visitor, Wdata_claim_grp_list list, int base_adj) {
+ private static Keyval[] Srl_qualifiers(Scrib_lib_wikibase_srl_visitor visitor, Wbase_claim_grp_list list, int base_adj) {
if (list == null) return null;
int list_len = list.Len(); if (list_len == 0) return Keyval_.Ary_empty;
List_adp rv = List_adp_.New();
List_adp pid_list = List_adp_.New();
for (int i = 0; i < list_len; ++i) {
- Wdata_claim_grp grp = list.Get_at(i);
+ Wbase_claim_grp grp = list.Get_at(i);
int grp_len = grp.Len();
pid_list.Clear();
String itm_pid = grp.Id_str();
for (int j = 0; j < grp_len; ++j) {
- Wdata_claim_itm_core itm = grp.Get_at(j);
+ Wbase_claim_base itm = grp.Get_at(j);
pid_list.Add(Keyval_.int_(j + base_adj, Srl_claims_prop_itm_core(visitor, itm_pid, itm))); // NOTE: was originally "+ 1"; changed to base_adj; PAGE:ru.w:Tor ru.w:Кактусовые DATE:2014-10-25
}
rv.Add(Keyval_.new_(itm_pid, (Keyval[])pid_list.To_ary_and_clear(Keyval.class)));
}
return (Keyval[])rv.To_ary_and_clear(Keyval.class);
}
- private static Keyval[] Srl_claims_prop_itm_core(Scrib_lib_wikibase_srl_visitor visitor, String pid, Wdata_claim_itm_core itm) {
- boolean snak_is_valued = itm.Snak_tid() == Wdata_dict_snak_tid.Tid_value; // PURPOSE: was != Wdata_dict_snak_tid.Tid_novalue; PAGE:it.s:Autore:Anonimo DATE:2015-12-06
+ private static Keyval[] Srl_claims_prop_itm_core(Scrib_lib_wikibase_srl_visitor visitor, String pid, Wbase_claim_base itm) {
+ boolean snak_is_valued = itm.Snak_tid() == Wbase_claim_value_type_.Tid__value; // PURPOSE: was != Wbase_claim_value_type_.Tid__novalue; PAGE:it.s:Autore:Anonimo DATE:2015-12-06
int snak_is_valued_adj = snak_is_valued ? 1 : 0;
Keyval[] rv = new Keyval[3 + snak_is_valued_adj];
if (snak_is_valued) // NOTE: novalue must not return slot (no datavalue node in json); PAGE:ru.w:Лимонов,_Эдуард_Вениаминович; DATE:2015-02-16; ALSO: sv.w:Joseph_Jaquet; DATE:2015-07-31
rv[0] = Keyval_.new_("datavalue", Srl_claims_prop_itm_core_val(visitor, itm));
rv[0 + snak_is_valued_adj] = Keyval_.new_("property", pid);
- rv[1 + snak_is_valued_adj] = Keyval_.new_("snaktype", Wdata_dict_snak_tid.Xto_str(itm.Snak_tid()));
- rv[2 + snak_is_valued_adj] = Keyval_.new_("datatype", Wdata_dict_val_tid.To_str__srl(itm.Val_tid())); // NOTE: datatype needed for Modules; PAGE:eo.w:WikidataKoord; DATE:2015-11-08
+ rv[1 + snak_is_valued_adj] = Keyval_.new_("snaktype", Wbase_claim_value_type_.To_str_or_fail(itm.Snak_tid()));
+ rv[2 + snak_is_valued_adj] = Keyval_.new_("datatype", Wbase_claim_type_.To_scrib_or_unknown(itm.Val_tid())); // NOTE: datatype needed for Modules; PAGE:eo.w:WikidataKoord; DATE:2015-11-08
return rv;
}
- private static Keyval[] Srl_claims_prop_itm_core_val(Scrib_lib_wikibase_srl_visitor visitor, Wdata_claim_itm_core itm) {
+ private static Keyval[] Srl_claims_prop_itm_core_val(Scrib_lib_wikibase_srl_visitor visitor, Wbase_claim_base itm) {
switch (itm.Snak_tid()) {
- case Wdata_dict_snak_tid.Tid_somevalue: return Datavalue_somevalue;
- case Wdata_dict_snak_tid.Tid_novalue: return Datavalue_novalue; // TODO_OLD: throw exc
+ case Wbase_claim_value_type_.Tid__somevalue: return Datavalue_somevalue;
+ case Wbase_claim_value_type_.Tid__novalue: return Datavalue_novalue; // TODO_OLD: throw exc
default:
itm.Welcome(visitor);
return visitor.Rv();
diff --git a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_wikibase_srl_tst.java b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_wikibase_srl_tst.java
index dcfece72d..38fbbb6c2 100644
--- a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_wikibase_srl_tst.java
+++ b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_wikibase_srl_tst.java
@@ -17,7 +17,7 @@ along with this program. If not, see .
*/
package gplx.xowa.xtns.scribunto.libs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.scribunto.*;
import org.junit.*;
-import gplx.langs.jsons.*; import gplx.xowa.xtns.wdatas.*; import gplx.xowa.xtns.wdatas.core.*; import gplx.xowa.xtns.wdatas.parsers.*;
+import gplx.langs.jsons.*; import gplx.xowa.xtns.wbases.*; import gplx.xowa.xtns.wbases.core.*; import gplx.xowa.xtns.wbases.claims.*; import gplx.xowa.xtns.wbases.claims.itms.*; import gplx.xowa.xtns.wbases.parsers.*;
public class Scrib_lib_wikibase_srl_tst {
@Before public void init() {fxt.Clear();} private Scrib_lib_wikibase_srl_fxt fxt = new Scrib_lib_wikibase_srl_fxt();
@Test public void Label() {
@@ -126,7 +126,7 @@ public class Scrib_lib_wikibase_srl_tst {
);
}
@Test public void Claims_str() {
- fxt.Init_prop(fxt.Wdata_fxt().Make_claim_str(2, "Moon"));
+ fxt.Init_prop(fxt.Wdata_fxt().Make_claim_string(2, "Moon"));
fxt.Test
( "claims:"
, " P2:"
@@ -327,7 +327,7 @@ public class Scrib_lib_wikibase_srl_tst {
}
@Test public void Qualifiers() {
Wdata_wiki_mgr_fxt wdata_fxt = fxt.Wdata_fxt();
- fxt.Init_prop(wdata_fxt.Make_claim_str(2, "Earth").Qualifiers_(wdata_fxt.Make_qualifiers(wdata_fxt.Make_qualifiers_grp(3, wdata_fxt.Make_claim_time(3, "2001-02-03 04:05:06")))));
+ fxt.Init_prop(wdata_fxt.Make_claim_string(2, "Earth").Qualifiers_(wdata_fxt.Make_qualifiers(wdata_fxt.Make_qualifiers_grp(3, wdata_fxt.Make_claim_time(3, "2001-02-03 04:05:06")))));
fxt.Test
( "claims:"
, " P2:"
@@ -388,7 +388,7 @@ class Scrib_lib_wikibase_srl_fxt {
wdoc_bldr.Add_alias(lang, ary);
return this;
}
- public Scrib_lib_wikibase_srl_fxt Init_prop(Wdata_claim_itm_core prop) {wdoc_bldr.Add_claims(prop); return this;}
+ public Scrib_lib_wikibase_srl_fxt Init_prop(Wbase_claim_base prop) {wdoc_bldr.Add_claims(prop); return this;}
public Scrib_lib_wikibase_srl_fxt Test(String... expd) {return Test(false, expd);}
public Scrib_lib_wikibase_srl_fxt Test(boolean base0, String... expd) {
Keyval[] actl = Scrib_lib_wikibase_srl.Srl(wdoc_bldr.Xto_wdoc(), header_enabled, base0);
diff --git a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_wikibase_srl_visitor.java b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_wikibase_srl_visitor.java
index d89588a9c..61330aa65 100644
--- a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_wikibase_srl_visitor.java
+++ b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_wikibase_srl_visitor.java
@@ -16,80 +16,80 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
package gplx.xowa.xtns.scribunto.libs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.scribunto.*;
-import gplx.xowa.xtns.wdatas.core.*;
-class Scrib_lib_wikibase_srl_visitor implements Wdata_claim_visitor {
+import gplx.xowa.xtns.wbases.core.*; import gplx.xowa.xtns.wbases.claims.*; import gplx.xowa.xtns.wbases.claims.enums.*; import gplx.xowa.xtns.wbases.claims.itms.*;
+class Scrib_lib_wikibase_srl_visitor implements Wbase_claim_visitor {
public Keyval[] Rv() {return rv;} Keyval[] rv;
- public void Visit_str(Wdata_claim_itm_str itm) {
+ public void Visit_str(Wbase_claim_string itm) {
rv = new Keyval[2];
- rv[0] = Keyval_.new_(Scrib_lib_wikibase_srl.Key_type, Wdata_dict_val_tid.Xto_str(itm.Val_tid()));
+ rv[0] = Keyval_.new_(Scrib_lib_wikibase_srl.Key_type, Wbase_claim_type_.To_key_or_unknown(itm.Val_tid()));
rv[1] = Keyval_.new_(Scrib_lib_wikibase_srl.Key_value, String_.new_u8(itm.Val_str()));
}
- public void Visit_entity(Wdata_claim_itm_entity itm) {
+ public void Visit_entity(Wbase_claim_entity itm) {
rv = new Keyval[2];
- rv[0] = Keyval_.new_(Scrib_lib_wikibase_srl.Key_type, Wdata_dict_val_tid.Str_entity);
+ rv[0] = Keyval_.new_(Scrib_lib_wikibase_srl.Key_type, Wbase_claim_type_.Itm__entity.Key_str());
rv[1] = Keyval_.new_(Scrib_lib_wikibase_srl.Key_value, Entity_value(itm));
}
- private static Keyval[] Entity_value(Wdata_claim_itm_core itm) {
- Wdata_claim_itm_entity claim_entity = (Wdata_claim_itm_entity)itm;
+ private static Keyval[] Entity_value(Wbase_claim_base itm) {
+ Wbase_claim_entity claim_entity = (Wbase_claim_entity)itm;
Keyval[] rv = new Keyval[2];
- rv[0] = Keyval_.new_(Wdata_dict_value_entity.Str_entity_type, claim_entity.Entity_tid_str());
- rv[1] = Keyval_.new_(Wdata_dict_value_entity.Str_numeric_id, Int_.To_str(claim_entity.Entity_id()));
+ rv[0] = Keyval_.new_(Wbase_claim_entity_.Itm__entity_type.Key_str(), claim_entity.Entity_tid_str());
+ rv[1] = Keyval_.new_(Wbase_claim_entity_.Itm__numeric_id.Key_str(), Int_.To_str(claim_entity.Entity_id()));
return rv;
}
- public void Visit_monolingualtext(Wdata_claim_itm_monolingualtext itm) {
+ public void Visit_monolingualtext(Wbase_claim_monolingualtext itm) {
rv = new Keyval[2];
- rv[0] = Keyval_.new_(Scrib_lib_wikibase_srl.Key_type, Wdata_dict_val_tid.Str_monolingualtext);
+ rv[0] = Keyval_.new_(Scrib_lib_wikibase_srl.Key_type, Wbase_claim_type_.Itm__monolingualtext.Key_str());
rv[1] = Keyval_.new_(Scrib_lib_wikibase_srl.Key_value, Monolingualtext_value(itm));
}
- private static Keyval[] Monolingualtext_value(Wdata_claim_itm_monolingualtext itm) {
+ private static Keyval[] Monolingualtext_value(Wbase_claim_monolingualtext itm) {
Keyval[] rv = new Keyval[2];
- rv[0] = Keyval_.new_(Wdata_dict_value_monolingualtext.Str_text , String_.new_u8(itm.Text()));
- rv[1] = Keyval_.new_(Wdata_dict_value_monolingualtext.Str_language , String_.new_u8(itm.Lang()));
+ rv[0] = Keyval_.new_(Wbase_claim_monolingualtext_.Itm__text.Key_str() , String_.new_u8(itm.Text()));
+ rv[1] = Keyval_.new_(Wbase_claim_monolingualtext_.Itm__language.Key_str() , String_.new_u8(itm.Lang()));
return rv;
}
- public void Visit_quantity(Wdata_claim_itm_quantity itm) {
+ public void Visit_quantity(Wbase_claim_quantity itm) {
rv = new Keyval[2];
- rv[0] = Keyval_.new_(Scrib_lib_wikibase_srl.Key_type, Wdata_dict_val_tid.Str_quantity);
+ rv[0] = Keyval_.new_(Scrib_lib_wikibase_srl.Key_type, Wbase_claim_type_.Itm__quantity.Key_str());
rv[1] = Keyval_.new_(Scrib_lib_wikibase_srl.Key_value, Quantity_value(itm));
}
- private static Keyval[] Quantity_value(Wdata_claim_itm_quantity itm) {
+ private static Keyval[] Quantity_value(Wbase_claim_quantity itm) {
Keyval[] rv = new Keyval[4];
- rv[0] = Keyval_.new_(Wdata_dict_value_quantity.Str_amount , itm.Amount_as_num().To_str()); // NOTE: must be num b/c Module code will directly do math calc on it; EX: "99" not "+99"; PAGE:eo.w:Mud�; DATE:2015-11-08
- rv[1] = Keyval_.new_(Wdata_dict_value_quantity.Str_unit , String_.new_u8(itm.Unit()));
- rv[2] = Keyval_.new_(Wdata_dict_value_quantity.Str_upperbound , itm.Ubound_as_num().To_str());
- rv[3] = Keyval_.new_(Wdata_dict_value_quantity.Str_lowerbound , itm.Lbound_as_num().To_str());
+ rv[0] = Keyval_.new_(Wbase_claim_quantity_.Itm__amount.Key_str() , itm.Amount_as_num().To_str()); // NOTE: must be num b/c Module code will directly do math calc on it; EX: "99" not "+99"; PAGE:eo.w:Mud�; DATE:2015-11-08
+ rv[1] = Keyval_.new_(Wbase_claim_quantity_.Itm__unit.Key_str() , String_.new_u8(itm.Unit()));
+ rv[2] = Keyval_.new_(Wbase_claim_quantity_.Itm__upperbound.Key_str() , itm.Ubound_as_num().To_str());
+ rv[3] = Keyval_.new_(Wbase_claim_quantity_.Itm__lowerbound.Key_str() , itm.Lbound_as_num().To_str());
return rv;
}
- public void Visit_time(Wdata_claim_itm_time itm) {
+ public void Visit_time(Wbase_claim_time itm) {
rv = new Keyval[2];
- rv[0] = Keyval_.new_(Scrib_lib_wikibase_srl.Key_type, Wdata_dict_val_tid.Str_time);
+ rv[0] = Keyval_.new_(Scrib_lib_wikibase_srl.Key_type, Wbase_claim_type_.Itm__time.Key_str());
rv[1] = Keyval_.new_(Scrib_lib_wikibase_srl.Key_value, Time_value(itm));
}
- private static Keyval[] Time_value(Wdata_claim_itm_time itm) {
+ private static Keyval[] Time_value(Wbase_claim_time itm) {
Keyval[] rv = new Keyval[6];
- rv[0] = Keyval_.new_(Wdata_dict_value_time.Str_time , String_.new_a7(itm.Time()));
- rv[1] = Keyval_.new_(Wdata_dict_value_time.Str_precision , itm.Precision_int()); // NOTE: must return int, not str; DATE:2014-02-18
- rv[2] = Keyval_.new_(Wdata_dict_value_time.Str_before , itm.Before_int());
- rv[3] = Keyval_.new_(Wdata_dict_value_time.Str_after , itm.After_int());
- rv[4] = Keyval_.new_(Wdata_dict_value_time.Str_timezone , Wdata_dict_value_time.Val_timezone_str); // ASSUME: always 0 b/c UTF?; DATE:2015-09-21
- rv[5] = Keyval_.new_(Wdata_dict_value_time.Str_calendarmodel , Wdata_dict_value_time.Val_calendarmodel_str);
+ rv[0] = Keyval_.new_(Wbase_claim_time_.Itm__time.Key_str() , String_.new_a7(itm.Time()));
+ rv[1] = Keyval_.new_(Wbase_claim_time_.Itm__precision.Key_str() , itm.Precision_int()); // NOTE: must return int, not str; DATE:2014-02-18
+ rv[2] = Keyval_.new_(Wbase_claim_time_.Itm__before.Key_str() , itm.Before_int());
+ rv[3] = Keyval_.new_(Wbase_claim_time_.Itm__after.Key_str() , itm.After_int());
+ rv[4] = Keyval_.new_(Wbase_claim_time_.Itm__timezone.Key_str() , Wbase_claim_time_.Dflt__timezone.Val_str()); // ASSUME: always 0 b/c UTF?; DATE:2015-09-21
+ rv[5] = Keyval_.new_(Wbase_claim_time_.Itm__calendarmodel.Key_str() , Wbase_claim_time_.Dflt__calendarmodel.Val_str());
return rv;
}
- public void Visit_globecoordinate(Wdata_claim_itm_globecoordinate itm) {
+ public void Visit_globecoordinate(Wbase_claim_globecoordinate itm) {
rv = new Keyval[2];
- rv[0] = Keyval_.new_(Scrib_lib_wikibase_srl.Key_type, Wdata_dict_val_tid.Str_globecoordinate);
+ rv[0] = Keyval_.new_(Scrib_lib_wikibase_srl.Key_type, Wbase_claim_type_.Itm__globecoordinate.Key_str());
rv[1] = Keyval_.new_(Scrib_lib_wikibase_srl.Key_value, Globecoordinate_value(itm));
}
- private static Keyval[] Globecoordinate_value(Wdata_claim_itm_globecoordinate itm) {
+ private static Keyval[] Globecoordinate_value(Wbase_claim_globecoordinate itm) {
Keyval[] rv = new Keyval[5];
- rv[0] = Keyval_.new_(Wdata_dict_value_globecoordinate.Str_latitude , Double_.parse(String_.new_a7(itm.Lat())));
- rv[1] = Keyval_.new_(Wdata_dict_value_globecoordinate.Str_longitude , Double_.parse(String_.new_a7(itm.Lng())));
- rv[2] = Keyval_.new_(Wdata_dict_value_globecoordinate.Str_altitude , String_.new_u8(itm.Alt()));
- rv[3] = Keyval_.new_(Wdata_dict_value_globecoordinate.Str_globe , String_.new_u8(itm.Glb()));
- rv[4] = Keyval_.new_(Wdata_dict_value_globecoordinate.Str_precision , itm.Prc_as_num().To_double());
+ rv[0] = Keyval_.new_(Wbase_claim_globecoordinate_.Itm__latitude.Key_str() , Double_.parse(String_.new_a7(itm.Lat())));
+ rv[1] = Keyval_.new_(Wbase_claim_globecoordinate_.Itm__longitude.Key_str() , Double_.parse(String_.new_a7(itm.Lng())));
+ rv[2] = Keyval_.new_(Wbase_claim_globecoordinate_.Itm__altitude.Key_str() , String_.new_u8(itm.Alt()));
+ rv[3] = Keyval_.new_(Wbase_claim_globecoordinate_.Itm__globe.Key_str() , String_.new_u8(itm.Glb()));
+ rv[4] = Keyval_.new_(Wbase_claim_globecoordinate_.Itm__precision.Key_str() , itm.Prc_as_num().To_double());
return rv;
}
- public void Visit_system(Wdata_claim_itm_system itm) {
+ public void Visit_system(Wbase_claim_value itm) {
rv = Keyval_.Ary_empty;
}
}
\ No newline at end of file
diff --git a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_wikibase_tst.java b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_wikibase_tst.java
index d6aaa2db3..287518ac4 100644
--- a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_wikibase_tst.java
+++ b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_wikibase_tst.java
@@ -16,8 +16,7 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
package gplx.xowa.xtns.scribunto.libs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.scribunto.*;
-import org.junit.*;
-import gplx.xowa.xtns.wdatas.*;
+import org.junit.*; import gplx.xowa.xtns.wbases.*; import gplx.xowa.xtns.wbases.core.*; import gplx.xowa.xtns.wbases.claims.*; import gplx.xowa.xtns.wbases.claims.itms.*;
public class Scrib_lib_wikibase_tst {
private final Scrib_invoke_func_fxt fxt = new Scrib_invoke_func_fxt(); private Scrib_lib lib;
private final Wdata_wiki_mgr_fxt wdata_fxt = new Wdata_wiki_mgr_fxt();
@@ -89,4 +88,58 @@ public class Scrib_lib_wikibase_tst {
wdata_fxt.Init__docs__add(wdata_fxt.Wdoc_bldr("Property:p2").Add_label("zh-hans", "prop_a").Xto_wdoc());
fxt.Test_scrib_proc_str(lib, Scrib_lib_wikibase.Invk_resolvePropertyId, Object_.Ary("p2"), "prop_a");
}
-}
+ @Test public void RenderSnaks() {
+ Keyval[] args = Wbase_snak_utl_.Get_snaks_ary(wdata_fxt, wdata_fxt.Make_claim_monolingual(3, "en", "P3_en"), wdata_fxt.Make_claim_monolingual(3, "de", "P3_de"));
+ fxt.Test__proc__kvps__flat(lib, Scrib_lib_wikibase.Invk_renderSnaks, args, "P3_en, P3_de");
+ }
+ @Test public void RenderSnak__str() {
+ Keyval[] args = Wbase_snak_utl_.Get_snak(wdata_fxt, wdata_fxt.Make_claim_string(3, "test_str"));
+ fxt.Test__proc__kvps__flat(lib, Scrib_lib_wikibase.Invk_renderSnak, args, "test_str");
+ }
+ @Test public void RenderSnak__quantity() {
+ Keyval[] args = Wbase_snak_utl_.Get_snak(wdata_fxt, wdata_fxt.Make_claim_quantity(3, "123", "2", "125", "121"));
+ fxt.Test__proc__kvps__flat(lib, Scrib_lib_wikibase.Invk_renderSnak, args, "123±2");
+ }
+ @Test public void RenderSnak__time() {
+ Keyval[] args = Wbase_snak_utl_.Get_snak(wdata_fxt, wdata_fxt.Make_claim_time(3, "2012-01-02 03:04:05"));
+ fxt.Test__proc__kvps__flat(lib, Scrib_lib_wikibase.Invk_renderSnak, args, "30405 2 Jan 2012"); // NOTE: format is missing ":" b/c test does not init messages for html_wtr; DATE:2015-08-03
+ }
+ @Test public void RenderSnak__geo() {
+ Keyval[] args = Wbase_snak_utl_.Get_snak(wdata_fxt, wdata_fxt.Make_claim_geo(3, "3.4", "1.2"));
+ fxt.Test__proc__kvps__flat(lib, Scrib_lib_wikibase.Invk_renderSnak, args, "1.2, 3.4");
+ }
+ @Test public void RenderSnak__monolingual() {
+ Keyval[] args = Wbase_snak_utl_.Get_snak(wdata_fxt, wdata_fxt.Make_claim_monolingual(3, "en", "abc_en"));
+ fxt.Test__proc__kvps__flat(lib, Scrib_lib_wikibase.Invk_renderSnak, args, "abc_en");
+ }
+}
+class Wbase_snak_utl_ {
+ public static Keyval[] Get_snaks_ary(Wdata_wiki_mgr_fxt wdata_fxt, Wbase_claim_base... ary) {
+ Wdata_doc wdoc = wdata_fxt.Wdoc_bldr("q2").Add_claims(ary).Xto_wdoc();
+ return Keyval_.Ary(Keyval_.int_(1, Get_snaks(wdoc)));
+ }
+ public static Keyval[] Get_snak(Wdata_wiki_mgr_fxt wdata_fxt, Wbase_claim_base itm) {
+ Wdata_doc wdoc = wdata_fxt.Wdoc_bldr("q2").Add_claims(itm).Xto_wdoc();
+ Keyval[] snak_props = Get_subs_by_path(Get_snaks(wdoc), 0);
+ return Keyval_.Ary(Keyval_.int_(1, snak_props));
+ }
+ private static Keyval[] Get_snaks(Wdata_doc wdoc) {
+ Keyval[] wdoc_root = Scrib_lib_wikibase_srl.Srl(wdoc, false, false);
+ Keyval[] snaks = Get_subs_by_path(wdoc_root, 0, 0);
+ int snaks_len = snaks.length;
+ Keyval[] rv = new Keyval[snaks_len];
+ for (int i = 0; i < snaks_len; ++i) {
+ rv[i] = Keyval_.int_(i + List_adp_.Base1, Get_subs_by_path(snaks, i, 1));
+ }
+ return rv;
+ }
+ private static Keyval[] Get_subs_by_path(Keyval[] root, int... levels) {
+ int len = levels.length;
+ Keyval[] rv = root;
+ for (int i = 0; i < len; ++i) {
+ int idx = levels[i];
+ rv = (Keyval[])rv[idx].Val();
+ }
+ return rv;
+ }
+}
diff --git a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_regx_converter.java b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_regx_converter.java
index 5a6cc392d..c7bdd1598 100644
--- a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_regx_converter.java
+++ b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_regx_converter.java
@@ -19,7 +19,8 @@ package gplx.xowa.xtns.scribunto.libs; import gplx.*; import gplx.xowa.*; import
import gplx.core.brys.fmtrs.*;
import gplx.langs.regxs.*;
public class Scrib_regx_converter {
- private List_adp capt_list = List_adp_.New(), grps_parens = List_adp_.New(); private List_adp grps_open = List_adp_.New();
+ private final List_adp capt_list = List_adp_.New(), grps_parens = List_adp_.New(); private final List_adp grps_open = List_adp_.New();
+ private final Bry_bfr tmp_bfr = Bry_bfr_.New();
public Scrib_regx_converter() {Init();}
public String Regx() {return regx;} private String regx;
public List_adp Capt_list() {return capt_list;}
@@ -100,9 +101,8 @@ public class Scrib_regx_converter {
++i;
if (i + 1 >= len || src[i] != Byte_ascii.Brack_bgn) throw Err_.new_("scribunto", "missing '[' after %f in pattern at pattern character $ii");
// %f always followed by bracketed term; convert lua bracketed term to regex
- Bry_bfr tmp_bfr = Xoa_app_.Utl__bfr_mkr().Get_b128();
i = bracketedCharSetToRegex(tmp_bfr, src, i, len);
- byte[] bracketed_regx = tmp_bfr.To_bry_and_rls();
+ byte[] bracketed_regx = tmp_bfr.To_bry_and_clear();
// scrib has following comment: 'Because %f considers the beginning and end of the String to be \0, determine if $re2 matches that and take it into account with "^" and "$".'
// if the bracketed_regx is a negative class it will match \0; so, \W means anything not a word char, which will match \0; \w means word char which will not match \0
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/Wbase_doc_mgr.java b/400_xowa/src/gplx/xowa/xtns/wbases/Wbase_doc_mgr.java
similarity index 96%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/Wbase_doc_mgr.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/Wbase_doc_mgr.java
index 224a48b91..2a5c52f6e 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/Wbase_doc_mgr.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/Wbase_doc_mgr.java
@@ -15,7 +15,7 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*;
+package gplx.xowa.xtns.wbases; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*;
public class Wbase_doc_mgr {
private final Xoae_app app;
private final Wdata_wiki_mgr wbase_mgr;
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/Wbase_pid_mgr.java b/400_xowa/src/gplx/xowa/xtns/wbases/Wbase_pid_mgr.java
similarity index 95%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/Wbase_pid_mgr.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/Wbase_pid_mgr.java
index 30564898c..447d12881 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/Wbase_pid_mgr.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/Wbase_pid_mgr.java
@@ -15,7 +15,7 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*;
+package gplx.xowa.xtns.wbases; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*;
public class Wbase_pid_mgr { // EX: "en|road_map" -> 15 ("Property:P15")
private final Wdata_wiki_mgr wbase_mgr;
private final Hash_adp_bry hash = Hash_adp_bry.cs();
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/Wbase_qid_mgr.java b/400_xowa/src/gplx/xowa/xtns/wbases/Wbase_qid_mgr.java
similarity index 96%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/Wbase_qid_mgr.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/Wbase_qid_mgr.java
index aec0a7e17..f334e29a2 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/Wbase_qid_mgr.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/Wbase_qid_mgr.java
@@ -15,7 +15,7 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*;
+package gplx.xowa.xtns.wbases; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*;
import gplx.xowa.wikis.domains.*;
public class Wbase_qid_mgr {// EX: "enwiki|0|Earth" -> "Q2"
private final Wdata_wiki_mgr wbase_mgr;
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/Wdata_doc.java b/400_xowa/src/gplx/xowa/xtns/wbases/Wdata_doc.java
similarity index 92%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/Wdata_doc.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/Wdata_doc.java
index 14d139974..bf04b89ef 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/Wdata_doc.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/Wdata_doc.java
@@ -15,11 +15,11 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*;
+package gplx.xowa.xtns.wbases; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*;
import gplx.core.primitives.*;
import gplx.langs.jsons.*;
import gplx.xowa.langs.*;
-import gplx.xowa.xtns.wdatas.core.*; import gplx.xowa.xtns.wdatas.parsers.*;
+import gplx.xowa.xtns.wbases.core.*; import gplx.xowa.xtns.wbases.claims.*; import gplx.xowa.xtns.wbases.parsers.*;
public class Wdata_doc {
private Wdata_wiki_mgr mgr; private Int_obj_ref tmp_key;
public Wdata_doc(byte[] qid, Wdata_wiki_mgr mgr, Json_doc jdoc) {this.qid = qid; this.mgr = mgr; this.jdoc = jdoc;}
@@ -35,10 +35,10 @@ public class Wdata_doc {
public Ordered_hash Descr_list() {if (descr_list == null) descr_list = mgr.Wdoc_parser(jdoc).Parse_langvals(qid, jdoc, Bool_.N); return descr_list;} private Ordered_hash descr_list;
public Ordered_hash Alias_list() {if (alias_list == null) alias_list = mgr.Wdoc_parser(jdoc).Parse_aliases(qid, jdoc); return alias_list;} private Ordered_hash alias_list;
public Ordered_hash Claim_list() {if (claim_list == null) claim_list = mgr.Wdoc_parser(jdoc).Parse_claims(qid, jdoc); return claim_list;} private Ordered_hash claim_list;
- public Wdata_claim_grp Claim_list_get(int pid) {
+ public Wbase_claim_grp Claim_list_get(int pid) {
if (tmp_key == null) tmp_key = Int_obj_ref.New_neg1();
Object o = this.Claim_list().Get_by(tmp_key.Val_(pid));
- return (Wdata_claim_grp)o;
+ return (Wbase_claim_grp)o;
}
public byte[] Label_list__get(byte[] lang_key) {return Lang_text_list__get(this.Label_list(), lang_key);}
public byte[] Label_list__get_or_fallback(Xol_lang_itm lang) {return Lang_text_list__get_or_fallback(this.Label_list(), lang);}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/Wdata_doc_bldr.java b/400_xowa/src/gplx/xowa/xtns/wbases/Wdata_doc_bldr.java
similarity index 83%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/Wdata_doc_bldr.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/Wdata_doc_bldr.java
index d490806b6..d399adfb2 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/Wdata_doc_bldr.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/Wdata_doc_bldr.java
@@ -15,17 +15,19 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*;
+package gplx.xowa.xtns.wbases; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*;
import gplx.core.primitives.*;
-import gplx.langs.jsons.*; import gplx.xowa.xtns.wdatas.core.*; import gplx.xowa.xtns.wdatas.parsers.*;
+import gplx.langs.jsons.*;
+import gplx.xowa.xtns.wbases.core.*;
+import gplx.xowa.xtns.wbases.claims.*; import gplx.xowa.xtns.wbases.claims.itms.*; import gplx.xowa.xtns.wbases.parsers.*;
public class Wdata_doc_bldr {
private Ordered_hash descr_list, label_list, slink_list, alias_list, claim_list;
public Wdata_doc_bldr() {this.Init();}
public Wdata_doc_bldr Qid_(String v) {this.qid = Bry_.new_a7(v); return this;} private byte[] qid;
- public Wdata_doc_bldr Add_claims(Wdata_claim_itm_core... ary) {
+ public Wdata_doc_bldr Add_claims(Wbase_claim_base... ary) {
if (ary.length == 0) throw Err_.new_wo_type("claims must be greater than 0");
- Wdata_claim_itm_core itm = ary[0];
- Wdata_claim_grp grp = new Wdata_claim_grp(Int_obj_ref.New(itm.Pid()), ary);
+ Wbase_claim_base itm = ary[0];
+ Wbase_claim_grp grp = new Wbase_claim_grp(Int_obj_ref.New(itm.Pid()), ary);
claim_list.Add(grp.Id_ref(), grp);
return this;
}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/Wdata_doc_wtr.java b/400_xowa/src/gplx/xowa/xtns/wbases/Wdata_doc_wtr.java
similarity index 50%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/Wdata_doc_wtr.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/Wdata_doc_wtr.java
index 4aafa4117..68ebd4a88 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/Wdata_doc_wtr.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/Wdata_doc_wtr.java
@@ -15,8 +15,9 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*;
-import gplx.langs.jsons.*; import gplx.xowa.xtns.wdatas.core.*; import gplx.xowa.xtns.wdatas.parsers.*;
+package gplx.xowa.xtns.wbases; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*;
+import gplx.langs.jsons.*;
+import gplx.xowa.xtns.wbases.core.*; import gplx.xowa.xtns.wbases.claims.*; import gplx.xowa.xtns.wbases.claims.enums.*; import gplx.xowa.xtns.wbases.claims.itms.*; import gplx.xowa.xtns.wbases.parsers.*;
public class Wdata_doc_wtr {
private Json_doc_wtr wtr = new Json_doc_wtr();
public byte[] Xto_bry(Wdata_doc wdoc) {
@@ -85,73 +86,73 @@ public class Wdata_doc_wtr {
wtr.Ary_bgn();
for (int i = 0; i < len; i++) {
if (i != 0) wtr.Comma();
- Wdata_claim_itm_core prop = (Wdata_claim_itm_core)props.Get_at(i);
+ Wbase_claim_base prop = (Wbase_claim_base)props.Get_at(i);
wtr.Nde_bgn();
wtr.Key(false, Wdata_dict_claim_v1.Bry_m);
wtr.Ary_bgn();
- wtr.Val(Bool_.N, Wdata_dict_snak_tid.Xto_bry(prop.Snak_tid()));
+ wtr.Val(Bool_.N, Wbase_claim_value_type_.To_bry_or_fail(prop.Snak_tid()));
wtr.Val(Bool_.Y, prop.Pid());
- if (prop.Snak_tid() == Wdata_dict_snak_tid.Tid_value) {
+ if (prop.Snak_tid() == Wbase_claim_value_type_.Tid__value) {
switch (prop.Val_tid()) {
- case Wdata_dict_val_tid.Tid_string:
- Wdata_claim_itm_str claim_str = (Wdata_claim_itm_str)prop;
- wtr.Val(Bool_.Y, Wdata_dict_val_tid.Bry_string);
+ case Wbase_claim_type_.Tid__string:
+ Wbase_claim_string claim_str = (Wbase_claim_string)prop;
+ wtr.Val(Bool_.Y, Wbase_claim_type_.Itm__string.Key_bry());
wtr.Val(Bool_.Y, claim_str.Val_str());
break;
- case Wdata_dict_val_tid.Tid_entity:
- Wdata_claim_itm_entity claim_entity = (Wdata_claim_itm_entity)prop;
- wtr.Val(Bool_.Y, Wdata_dict_val_tid.Bry_entity);
+ case Wbase_claim_type_.Tid__entity:
+ Wbase_claim_entity claim_entity = (Wbase_claim_entity)prop;
+ wtr.Val(Bool_.Y, Wbase_claim_type_.Itm__entity.Key_bry());
wtr.Comma();
wtr.Nde_bgn();
- wtr.Kv(Bool_.N, Wdata_dict_value_entity.Bry_entity_type , claim_entity.Entity_tid_bry());
- wtr.Kv(Bool_.Y, Wdata_dict_value_entity.Bry_numeric_id , claim_entity.Entity_id());
+ wtr.Kv(Bool_.N, Wbase_claim_entity_.Itm__entity_type.Key_bry() , claim_entity.Entity_tid_bry());
+ wtr.Kv(Bool_.Y, Wbase_claim_entity_.Itm__numeric_id.Key_bry() , claim_entity.Entity_id());
wtr.Nde_end();
break;
- case Wdata_dict_val_tid.Tid_time:
- Wdata_claim_itm_time claim_time = (Wdata_claim_itm_time)prop;
- wtr.Val(Bool_.Y, Wdata_dict_val_tid.Bry_time);
+ case Wbase_claim_type_.Tid__time:
+ Wbase_claim_time claim_time = (Wbase_claim_time)prop;
+ wtr.Val(Bool_.Y, Wbase_claim_type_.Itm__time.Key_bry());
wtr.Comma();
wtr.Nde_bgn();
- wtr.Kv(Bool_.N, Wdata_dict_value_time.Bry_time , claim_time.Time());
- wtr.Kv(Bool_.Y, Wdata_dict_value_time.Bry_precision , Wdata_dict_value_time.Val_timezone_bry);
- wtr.Kv(Bool_.Y, Wdata_dict_value_time.Bry_before , Wdata_dict_value_time.Val_before_bry);
- wtr.Kv(Bool_.Y, Wdata_dict_value_time.Bry_after , Wdata_dict_value_time.Val_after_bry);
- wtr.Kv(Bool_.Y, Wdata_dict_value_time.Bry_timezone , Wdata_dict_value_time.Val_timezone_bry);
- wtr.Kv(Bool_.Y, Wdata_dict_value_time.Bry_calendarmodel , Wdata_dict_value_time.Val_calendarmodel_bry);
+ wtr.Kv(Bool_.N, Wbase_claim_time_.Itm__time.Key_bry() , claim_time.Time());
+ wtr.Kv(Bool_.Y, Wbase_claim_time_.Itm__precision.Key_bry() , Wbase_claim_time_.Dflt__timezone.Val_bry());
+ wtr.Kv(Bool_.Y, Wbase_claim_time_.Itm__before.Key_bry() , Wbase_claim_time_.Dflt__before.Val_bry());
+ wtr.Kv(Bool_.Y, Wbase_claim_time_.Itm__after.Key_bry() , Wbase_claim_time_.Dflt__after.Val_bry());
+ wtr.Kv(Bool_.Y, Wbase_claim_time_.Itm__timezone.Key_bry() , Wbase_claim_time_.Dflt__timezone.Val_bry());
+ wtr.Kv(Bool_.Y, Wbase_claim_time_.Itm__calendarmodel.Key_bry() , Wbase_claim_time_.Dflt__calendarmodel.Val_bry());
wtr.Nde_end();
break;
- case Wdata_dict_val_tid.Tid_globecoordinate: {
- Wdata_claim_itm_globecoordinate claim_globecoordinate = (Wdata_claim_itm_globecoordinate)prop;
- wtr.Val(Bool_.Y, Wdata_dict_val_tid.Bry_globecoordinate);
+ case Wbase_claim_type_.Tid__globecoordinate: {
+ Wbase_claim_globecoordinate claim_globecoordinate = (Wbase_claim_globecoordinate)prop;
+ wtr.Val(Bool_.Y, Wbase_claim_type_.Itm__globecoordinate.Key_bry());
wtr.Comma();
wtr.Nde_bgn();
- wtr.Kv_double (Bool_.N, Wdata_dict_value_globecoordinate.Bry_latitude , Double_.parse(String_.new_a7(claim_globecoordinate.Lat())));
- wtr.Kv_double (Bool_.Y, Wdata_dict_value_globecoordinate.Bry_longitude , Double_.parse(String_.new_a7(claim_globecoordinate.Lng())));
- wtr.Kv (Bool_.Y, Wdata_dict_value_globecoordinate.Bry_altitude , null);
- wtr.Kv (Bool_.Y, Wdata_dict_value_globecoordinate.Bry_globe , Wdata_dict_value_globecoordinate.Val_globe_dflt_bry);
- wtr.Kv_double (Bool_.Y, Wdata_dict_value_globecoordinate.Bry_precision , .00001d);
+ wtr.Kv_double (Bool_.N, Wbase_claim_globecoordinate_.Itm__latitude.Key_bry() , Double_.parse(String_.new_a7(claim_globecoordinate.Lat())));
+ wtr.Kv_double (Bool_.Y, Wbase_claim_globecoordinate_.Itm__longitude.Key_bry() , Double_.parse(String_.new_a7(claim_globecoordinate.Lng())));
+ wtr.Kv (Bool_.Y, Wbase_claim_globecoordinate_.Itm__altitude.Key_bry() , null);
+ wtr.Kv (Bool_.Y, Wbase_claim_globecoordinate_.Itm__globe.Key_bry() , Wbase_claim_globecoordinate_.Val_globe_dflt_bry);
+ wtr.Kv_double (Bool_.Y, Wbase_claim_globecoordinate_.Itm__precision.Key_bry() , .00001d);
wtr.Nde_end();
break;
}
- case Wdata_dict_val_tid.Tid_quantity: {
- Wdata_claim_itm_quantity claim_quantity = (Wdata_claim_itm_quantity)prop;
- wtr.Val(Bool_.Y, Wdata_dict_val_tid.Bry_quantity);
+ case Wbase_claim_type_.Tid__quantity: {
+ Wbase_claim_quantity claim_quantity = (Wbase_claim_quantity)prop;
+ wtr.Val(Bool_.Y, Wbase_claim_type_.Itm__quantity.Key_bry());
wtr.Comma();
wtr.Nde_bgn();
- wtr.Kv (Bool_.N, Wdata_dict_value_quantity.Bry_amount , claim_quantity.Amount()); // +1,234
- wtr.Kv (Bool_.Y, Wdata_dict_value_quantity.Bry_unit , claim_quantity.Unit()); // 1
- wtr.Kv (Bool_.Y, Wdata_dict_value_quantity.Bry_upperbound , claim_quantity.Ubound()); // +1,235
- wtr.Kv (Bool_.Y, Wdata_dict_value_quantity.Bry_lowerbound , claim_quantity.Lbound()); // +1,233
+ wtr.Kv (Bool_.N, Wbase_claim_quantity_.Itm__amount.Key_bry() , claim_quantity.Amount()); // +1,234
+ wtr.Kv (Bool_.Y, Wbase_claim_quantity_.Itm__unit.Key_bry() , claim_quantity.Unit()); // 1
+ wtr.Kv (Bool_.Y, Wbase_claim_quantity_.Itm__upperbound.Key_bry() , claim_quantity.Ubound()); // +1,235
+ wtr.Kv (Bool_.Y, Wbase_claim_quantity_.Itm__lowerbound.Key_bry() , claim_quantity.Lbound()); // +1,233
wtr.Nde_end();
break;
}
- case Wdata_dict_val_tid.Tid_monolingualtext: {
- Wdata_claim_itm_monolingualtext claim_monolingualtext = (Wdata_claim_itm_monolingualtext)prop;
- wtr.Val(Bool_.Y, Wdata_dict_val_tid.Bry_monolingualtext);
+ case Wbase_claim_type_.Tid__monolingualtext: {
+ Wbase_claim_monolingualtext claim_monolingualtext = (Wbase_claim_monolingualtext)prop;
+ wtr.Val(Bool_.Y, Wbase_claim_type_.Itm__monolingualtext.Key_bry());
wtr.Comma();
wtr.Nde_bgn();
- wtr.Kv (Bool_.N, Wdata_dict_value_monolingualtext.Bry_text , claim_monolingualtext.Text()); // text
- wtr.Kv (Bool_.Y, Wdata_dict_value_monolingualtext.Bry_language , claim_monolingualtext.Lang()); // en
+ wtr.Kv (Bool_.N, Wbase_claim_monolingualtext_.Itm__text.Key_bry() , claim_monolingualtext.Text()); // text
+ wtr.Kv (Bool_.Y, Wbase_claim_monolingualtext_.Itm__language.Key_bry() , claim_monolingualtext.Lang()); // en
wtr.Nde_end();
break;
}
@@ -161,7 +162,7 @@ public class Wdata_doc_wtr {
wtr.Ary_end();
wtr.Kv_ary_empty(Bool_.Y, Wdata_dict_claim_v1.Bry_q);
wtr.Kv(Bool_.Y, Wdata_dict_claim_v1.Bry_g, qid);
- wtr.Kv(Bool_.Y, Wdata_dict_claim_v1.Bry_rank, Wdata_dict_rank.Tid_normal);
+ wtr.Kv(Bool_.Y, Wdata_dict_claim_v1.Bry_rank, Wbase_claim_rank_.Tid__normal);
wtr.Kv_ary_empty(Bool_.Y, Wdata_dict_claim_v1.Bry_refs);
wtr.Nde_end();
}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/Wdata_prop_val_visitor.java b/400_xowa/src/gplx/xowa/xtns/wbases/Wdata_prop_val_visitor.java
similarity index 66%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/Wdata_prop_val_visitor.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/Wdata_prop_val_visitor.java
index f73e8881f..e03616801 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/Wdata_prop_val_visitor.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/Wdata_prop_val_visitor.java
@@ -15,11 +15,11 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*;
+package gplx.xowa.xtns.wbases; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*;
import gplx.core.brys.fmtrs.*;
import gplx.xowa.langs.*;
-import gplx.xowa.xtns.wdatas.core.*; import gplx.xowa.xtns.wdatas.hwtrs.*;
-class Wdata_prop_val_visitor implements Wdata_claim_visitor {
+import gplx.xowa.xtns.wbases.core.*; import gplx.xowa.xtns.wbases.claims.*; import gplx.xowa.xtns.wbases.claims.itms.*; import gplx.xowa.xtns.wbases.hwtrs.*;
+class Wdata_prop_val_visitor implements Wbase_claim_visitor {
private Wdata_wiki_mgr wdata_mgr; private Xoae_app app; private Bry_bfr bfr; private byte[] lang_key;
private final Bry_bfr tmp_time_bfr = Bry_bfr_.Reset(255); private final Bry_fmtr tmp_time_fmtr = Bry_fmtr.new_();
private Wdata_hwtr_msgs msgs;
@@ -27,14 +27,14 @@ class Wdata_prop_val_visitor implements Wdata_claim_visitor {
public void Init(Bry_bfr bfr, Wdata_hwtr_msgs msgs, byte[] lang_key) {
this.bfr = bfr; this.msgs = msgs; this.lang_key = lang_key;
}
- public void Visit_str(Wdata_claim_itm_str itm) {
+ public void Visit_str(Wbase_claim_string itm) {
bfr.Add(itm.Val_str());
}
- public void Visit_time(Wdata_claim_itm_time itm) {
+ public void Visit_time(Wbase_claim_time itm) {
itm.Write_to_bfr(bfr, tmp_time_bfr, tmp_time_fmtr, msgs, Bry_.Empty); // for now, don't bother passing ttl; only used for error msg; DATE:2015-08-03
}
- public void Visit_monolingualtext(Wdata_claim_itm_monolingualtext itm) {bfr.Add(itm.Text());} // phrase only; PAGE:en.w:Alberta; EX: {{#property:motto}} -> "Fortis et libre"; DATE:2014-08-28
- public void Visit_entity(Wdata_claim_itm_entity itm) {
+ public void Visit_monolingualtext(Wbase_claim_monolingualtext itm) {bfr.Add(itm.Text());} // phrase only; PAGE:en.w:Alberta; EX: {{#property:motto}} -> "Fortis et libre"; DATE:2014-08-28
+ public void Visit_entity(Wbase_claim_entity itm) {
Wdata_doc entity_doc = wdata_mgr.Doc_mgr.Get_by_xid_or_null(itm.Page_ttl_db());
if (entity_doc == null) return; // NOTE: wiki may refer to entity that no longer exists; EX: {{#property:p1}} which links to Q1, but p1 links to Q2 and Q2 was deleted; DATE:2014-02-01
byte[] label = entity_doc.Label_list__get(lang_key);
@@ -43,22 +43,19 @@ class Wdata_prop_val_visitor implements Wdata_claim_visitor {
if (label != null) // if label is still not found, don't add null reference
bfr.Add(label);
}
- public void Visit_quantity(Wdata_claim_itm_quantity itm) {
+ public void Visit_quantity(Wbase_claim_quantity itm) {
byte[] amount_bry = itm.Amount();
- long val = Bry_.To_long_or(amount_bry, Ignore_comma, 0, amount_bry.length, 0); // NOTE: must cast to long for large numbers; EX:{{#property:P1082}} PAGE:en.w:Earth; DATE:2015-08-02
+ long val = Bry_.To_long_or(amount_bry, Byte_ascii.Comma_bry, 0, amount_bry.length, 0); // NOTE: must cast to long for large numbers; EX:{{#property:P1082}} PAGE:en.w:Earth; DATE:2015-08-02
Xol_lang_itm lang = app.Lang_mgr().Get_by(lang_key);
bfr.Add(lang.Num_mgr().Format_num_by_long(val)); // amount; EX: 1,234
if (itm.Lbound_as_num().To_long() != val && itm.Ubound_as_num().To_long() != val) { // NOTE: do not output ± if lbound == val == ubound; PAGE:en.w:Tintinan DATE:2015-08-02
- bfr.Add(Bry_quantity_margin_of_error); // symbol: EX: ±
+ bfr.Add(Bry__quantity_margin_of_error); // symbol: EX: ±
bfr.Add(itm.Unit()); // unit; EX: 1
}
}
- public void Visit_globecoordinate(Wdata_claim_itm_globecoordinate itm) {
- bfr.Add(itm.Lat());
- bfr.Add_byte(Byte_ascii.Comma).Add_byte(Byte_ascii.Space);
- bfr.Add(itm.Lng());
+ public void Visit_globecoordinate(Wbase_claim_globecoordinate itm) {
+ Wdata_prop_val_visitor_.Render__geo(bfr, itm.Lat(), itm.Lng());
}
- public void Visit_system(Wdata_claim_itm_system itm) {}
- private static final byte[] Ignore_comma = new byte[]{Byte_ascii.Comma};
- private static final byte[] Bry_quantity_margin_of_error = Bry_.new_u8("±");
+ public void Visit_system(Wbase_claim_value itm) {}
+ public static final byte[] Bry__quantity_margin_of_error = Bry_.new_u8("±");
}
diff --git a/400_xowa/src/gplx/xowa/xtns/wbases/Wdata_prop_val_visitor_.java b/400_xowa/src/gplx/xowa/xtns/wbases/Wdata_prop_val_visitor_.java
new file mode 100644
index 000000000..7b9cee1d4
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/Wdata_prop_val_visitor_.java
@@ -0,0 +1,151 @@
+/*
+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 .
+*/
+package gplx.xowa.xtns.wbases; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*;
+import gplx.core.brys.fmtrs.*;
+import gplx.xowa.xtns.wbases.core.*; import gplx.xowa.xtns.wbases.claims.*; import gplx.xowa.xtns.wbases.claims.itms.times.*; import gplx.xowa.xtns.wbases.claims.enums.*; import gplx.xowa.xtns.wbases.claims.itms.*; import gplx.xowa.xtns.scribunto.*; import gplx.xowa.xtns.wbases.hwtrs.*;
+import gplx.xowa.langs.*; import gplx.xowa.langs.commas.*;
+import gplx.xowa.parsers.*;
+public class Wdata_prop_val_visitor_ {
+ public static String Render_snaks(Xowe_wiki wiki, byte[] page_url, Keyval[] snaks) {
+ String rv = null;
+ int len = snaks.length;
+ Bry_bfr bfr = wiki.Utl__bfr_mkr().Get_b512();
+ try {
+ for (int i = 0; i < len; ++i) {
+ Keyval[] itm = (Keyval[])snaks[i].Val();
+ Render_snak(bfr, wiki, wiki.Lang(), page_url, itm, i, len);
+ }
+ wiki.Lang().Comma_wkr().Comma__end(bfr);
+ rv = bfr.To_str_and_clear();
+ } finally {bfr.Mkr_rls();}
+ return rv;
+ }
+ public static String Render_snak(Xowe_wiki wiki, byte[] page_url, Keyval[] props) {
+ String rv = null;
+ Bry_bfr bfr = wiki.Utl__bfr_mkr().Get_b512();
+ try {
+ Render_snak(bfr, wiki, wiki.Lang(), page_url, props, 0, 1);
+ rv = bfr.To_str_and_clear();
+ } finally {bfr.Mkr_rls();}
+ 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);
+
+ // loop datavalue_ary to get tid, val_obj
+ byte tid = Byte_.Max_value_127;
+ Object val_obj = null;
+ 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))
+ val_obj = datavalue_ary[i].Val();
+ }
+
+ // render val_obj based on tid
+ switch (tid) {
+ case Wbase_claim_type_.Tid__entity: throw Err_.new_unimplemented();
+ case Wbase_claim_type_.Tid__string: bfr.Add_str_u8((String)val_obj); break;
+ case Wbase_claim_type_.Tid__time: Render__time (bfr, wiki, page_url, (Keyval[])val_obj); break;
+ case Wbase_claim_type_.Tid__globecoordinate: Render__geo (bfr, lang, page_url, (Keyval[])val_obj); break;
+ case Wbase_claim_type_.Tid__quantity: Render__quantity (bfr, lang, page_url, (Keyval[])val_obj); break;
+ case Wbase_claim_type_.Tid__monolingualtext: Render__langtext (bfr, lang, (Keyval[])val_obj); break;
+ }
+ lang.Comma_wkr().Comma__itm(bfr, sub_idx, sub_len);
+ }
+ private static void Render__time(Bry_bfr bfr, Xowe_wiki wiki, byte[] page_url, Keyval[] kvs) {
+ Wbase_date date = null;
+ byte[] time = null;
+ int precision_int = 0, before_int = 0, after_int = 0;
+ boolean calendar_is_julian = true;
+ 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());
+ 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;
+ case Wbase_claim_time_.Tid__after: after_int = Int_.cast(kv.Val()); break;
+ case Wbase_claim_time_.Tid__precision: precision_int = Int_.cast(kv.Val()); break;
+ case Wbase_claim_time_.Tid__calendarmodel: calendar_is_julian = Bry_.Eq(Bry_.new_u8((String)kv.Val()), Wbase_claim_time.Calendar_julian); break;
+ case Wbase_claim_time_.Tid__timezone: if (!String_.Eq((String)kv.Val(), "0")) throw Err_.new_unimplemented(); break;
+ }
+ }
+ Xow_parser_mgr parser_mgr = wiki.Parser_mgr();
+ date = Wbase_date.Parse(time, precision_int, before_int, after_int, calendar_is_julian);
+ Wbase_claim_time.Write_to_bfr(bfr, parser_mgr.Wbase__time__bfr(), parser_mgr.Wbase__time__fmtr()
+ , parser_mgr.Wbase__time__msgs(), page_url, Bry_.Empty, date, calendar_is_julian
+ );
+ }
+ private static void Render__quantity(Bry_bfr bfr, Xol_lang_itm lang, byte[] page_url, Keyval[] kvs) {
+ byte[] amount_bry = null, lbound_bry = null, ubound_bry = null, unit_bry = null;
+ 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_bry = Bry_.new_u8((String)kv.Val());
+ switch (val_tid) {
+ case Wbase_claim_quantity_.Tid__amount: amount_bry = val_bry; break;
+ case Wbase_claim_quantity_.Tid__unit: unit_bry = val_bry; break;
+ case Wbase_claim_quantity_.Tid__lowerbound: lbound_bry = val_bry; break;
+ case Wbase_claim_quantity_.Tid__upperbound: ubound_bry = val_bry; break;
+ }
+ }
+ Render__quantity(bfr, lang, amount_bry, lbound_bry, ubound_bry, unit_bry);
+ }
+ private static void Render__quantity(Bry_bfr bfr, Xol_lang_itm lang, byte[] amount_bry, byte[] lbound_bry, byte[] ubound_bry, byte[] unit_bry) {
+ long val = Bry_.To_long_or(amount_bry, Byte_ascii.Comma_bry, 0, amount_bry.length, 0); // NOTE: must cast to long for large numbers; EX:{{#property:P1082}} PAGE:en.w:Earth; DATE:2015-08-02
+ bfr.Add(lang.Num_mgr().Format_num_by_long(val));// amount; EX: 1,234
+ long lbound = Bry_.To_long_or(lbound_bry, val);
+ long ubound = Bry_.To_long_or(lbound_bry, val);
+ if (lbound != val && ubound != val) { // NOTE: do not output � if lbound == val == ubound; PAGE:en.w:Tintinan DATE:2015-08-02
+ bfr.Add(Wdata_prop_val_visitor.Bry__quantity_margin_of_error); // symbol: EX: �
+ bfr.Add(unit_bry); // unit; EX: 1
+ }
+ }
+ private static void Render__geo(Bry_bfr bfr, Xol_lang_itm lang, byte[] page_url, Keyval[] kvs) {
+ double lat = 0, lng = 0;
+ 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());
+ 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);
+ }
+ public static void Render__geo(Bry_bfr bfr, byte[] lat, byte[] lng) {
+ bfr.Add(lat);
+ bfr.Add(Bry__geo_dlm);
+ bfr.Add(lng);
+ }
+ public static void Render__geo(Bry_bfr bfr, double lat, double lng) {
+ bfr.Add_double(lat);
+ bfr.Add(Bry__geo_dlm);
+ bfr.Add_double(lng);
+ }
+ private static void Render__langtext(Bry_bfr bfr, Xol_lang_itm lang, Keyval[] kvs) {
+ bfr.Add_str_u8((String)Scrib_kv_utl_.Get_sub_by_key_or_null(kvs, Wbase_claim_monolingualtext_.Itm__text.Key_str()));
+ }
+ private static final byte[] Bry__geo_dlm = Bry_.new_a7(", ");
+}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/Wdata_wiki_mgr.java b/400_xowa/src/gplx/xowa/xtns/wbases/Wdata_wiki_mgr.java
similarity index 86%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/Wdata_wiki_mgr.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/Wdata_wiki_mgr.java
index f7acafd42..953ba8a9a 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/Wdata_wiki_mgr.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/Wdata_wiki_mgr.java
@@ -15,13 +15,13 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*;
+package gplx.xowa.xtns.wbases; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*;
import gplx.core.primitives.*;
import gplx.langs.jsons.*;
import gplx.xowa.wikis.nss.*;
import gplx.xowa.langs.*;
import gplx.xowa.wikis.domains.*; import gplx.xowa.htmls.*; import gplx.xowa.parsers.logs.*; import gplx.xowa.apps.apis.xowa.xtns.*; import gplx.xowa.apps.apis.xowa.html.*; import gplx.xowa.users.*;
-import gplx.xowa.xtns.wdatas.parsers.*; import gplx.xowa.xtns.wdatas.pfuncs.*; import gplx.xowa.xtns.wdatas.core.*; import gplx.xowa.xtns.wdatas.hwtrs.*;
+import gplx.xowa.xtns.wbases.core.*; import gplx.xowa.xtns.wbases.claims.*; import gplx.xowa.xtns.wbases.claims.enums.*; import gplx.xowa.xtns.wbases.claims.itms.*; import gplx.xowa.xtns.wbases.parsers.*; import gplx.xowa.xtns.wbases.pfuncs.*; import gplx.xowa.xtns.wbases.hwtrs.*;
import gplx.xowa.parsers.*;
public class Wdata_wiki_mgr implements Gfo_evt_itm, Gfo_invk {
private final Xoae_app app;
@@ -70,30 +70,30 @@ public class Wdata_wiki_mgr implements Gfo_evt_itm, Gfo_invk {
public byte[] Get_claim_or(Xow_domain_itm domain, Xoa_ttl page_ttl, int pid, byte[] or) {
byte[] qid = this.Qid_mgr.Get_or_null(domain.Abrv_wm(), page_ttl); if (qid == null) return or;
Wdata_doc wdoc = Doc_mgr.Get_by_bry_or_null(qid); if (wdoc == null) return or;
- Wdata_claim_grp claim_grp = wdoc.Claim_list_get(pid); if (claim_grp == null || claim_grp.Len() == 0) return or;
- Wdata_claim_itm_core claim_itm = claim_grp.Get_at(0);
+ Wbase_claim_grp claim_grp = wdoc.Claim_list_get(pid); if (claim_grp == null || claim_grp.Len() == 0) return or;
+ Wbase_claim_base claim_itm = claim_grp.Get_at(0);
synchronized (tmp_bfr) { // LOCK:must synchronized b/c prop_val_visitor has member bfr which can get overwritten; DATE:2016-07-06
prop_val_visitor.Init(tmp_bfr, hwtr_mgr.Msgs(), domain.Lang_orig_key());
claim_itm.Welcome(prop_val_visitor);
return tmp_bfr.To_bry_and_clear();
}
}
- public void Resolve_to_bfr(Bry_bfr bfr, Wdata_claim_grp prop_grp, byte[] lang_key) {
+ public void Resolve_to_bfr(Bry_bfr bfr, Wbase_claim_grp prop_grp, byte[] lang_key) {
synchronized (this) { // LOCK:must synchronized b/c prop_val_visitor has member bfr which can get overwritten; DATE:2016-07-06
Hwtr_mgr_assert();
int len = prop_grp.Len();
- Wdata_claim_itm_core selected = null;
+ Wbase_claim_base selected = null;
for (int i = 0; i < len; i++) { // NOTE: multiple props possible; EX: {{#property:P1082}}; PAGE:en.w:Earth DATE:2015-08-02
- Wdata_claim_itm_core prop = prop_grp.Get_at(i);
+ Wbase_claim_base prop = prop_grp.Get_at(i);
if (selected == null) selected = prop; // if selected not set, set it; will always set to 1st prop
- if (prop.Rank_tid() == Wdata_dict_rank.Tid_preferred) { // if prop is preferred, select it and exit;
+ if (prop.Rank_tid() == Wbase_claim_rank_.Tid__preferred) { // if prop is preferred, select it and exit;
selected = prop;
break;
}
}
switch (selected.Snak_tid()) {
- case Wdata_dict_snak_tid.Tid_novalue : bfr.Add(Wdata_dict_snak_tid.Bry_novalue); break;
- case Wdata_dict_snak_tid.Tid_somevalue : bfr.Add(Wdata_dict_snak_tid.Bry_somevalue); break;
+ case Wbase_claim_value_type_.Tid__novalue : bfr.Add(Wbase_claim_value_type_.Itm__novalue.Key_bry()); break;
+ case Wbase_claim_value_type_.Tid__somevalue : bfr.Add(Wbase_claim_value_type_.Itm__somevalue.Key_bry()); break;
default: {
prop_val_visitor.Init(bfr, hwtr_mgr.Msgs(), lang_key);
selected.Welcome(prop_val_visitor);
@@ -165,11 +165,11 @@ public class Wdata_wiki_mgr implements Gfo_evt_itm, Gfo_invk {
public static boolean Wiki_page_is_json(int wiki_tid, int ns_id) {
switch (wiki_tid) {
case Xow_domain_tid_.Int__wikidata:
- if (ns_id == Xow_ns_.Tid__main || ns_id == gplx.xowa.xtns.wdatas.Wdata_wiki_mgr.Ns_property)
+ 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:
- if (ns_id == gplx.xowa.xtns.wdatas.Wdata_wiki_mgr.Ns_property)
+ if (ns_id == gplx.xowa.xtns.wbases.Wdata_wiki_mgr.Ns_property)
return true;
break;
}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/Wdata_wiki_mgr_fxt.java b/400_xowa/src/gplx/xowa/xtns/wbases/Wdata_wiki_mgr_fxt.java
similarity index 66%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/Wdata_wiki_mgr_fxt.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/Wdata_wiki_mgr_fxt.java
index d605157a9..727b752a4 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/Wdata_wiki_mgr_fxt.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/Wdata_wiki_mgr_fxt.java
@@ -15,14 +15,16 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*;
+package gplx.xowa.xtns.wbases; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*;
import gplx.core.primitives.*; import gplx.langs.jsons.*;
-import gplx.xowa.wikis.*; import gplx.xowa.wikis.xwikis.*; import gplx.xowa.guis.*; import gplx.xowa.xtns.wdatas.imports.*; import gplx.xowa.wikis.pages.*;
+import gplx.xowa.wikis.*; import gplx.xowa.wikis.xwikis.*; import gplx.xowa.guis.*; import gplx.xowa.xtns.wbases.imports.*; import gplx.xowa.wikis.pages.*;
import gplx.xowa.wikis.nss.*;
-import gplx.xowa.langs.*; import gplx.xowa.xtns.wdatas.core.*; import gplx.xowa.xtns.wdatas.pfuncs.*;
+import gplx.xowa.langs.*;
+import gplx.xowa.xtns.wbases.core.*; import gplx.xowa.xtns.wbases.pfuncs.*; import gplx.xowa.xtns.wbases.claims.*; import gplx.xowa.xtns.wbases.claims.enums.*; import gplx.xowa.xtns.wbases.claims.itms.*;
import gplx.xowa.wikis.tdbs.hives.*; import gplx.xowa.wikis.tdbs.xdats.*;
public class Wdata_wiki_mgr_fxt {
private final Wdata_xwiki_link_wtr wdata_lang_wtr = new Wdata_xwiki_link_wtr();
+ private final Bry_bfr tmp_time_bfr = Bry_bfr_.New();
public Xowe_wiki Wiki() {return parser_fxt.Wiki();}
public Wdata_wiki_mgr_fxt Init() {return Init(new Xop_fxt(), true);}
public Wdata_wiki_mgr_fxt Init(Xop_fxt parser_fxt, boolean reset) {
@@ -45,33 +47,33 @@ public class Wdata_wiki_mgr_fxt {
}
public Wdata_doc_bldr Wdoc_bldr(String qid) {return wdoc_bldr.Qid_(qid);}
public Json_doc Make_json(String src) {return app.Utl__json_parser().Parse_by_apos(src);}
- public Wdata_claim_itm_core Make_claim_novalue(int pid) {return Wdata_claim_itm_system.new_novalue(pid);}
- public Wdata_claim_itm_core Make_claim_somevalue(int pid) {return Wdata_claim_itm_system.new_somevalue(pid);}
- public Wdata_claim_itm_core Make_claim_str(int pid, String val) {return Make_claim_str(pid, Bry_.new_u8(val));}
- public Wdata_claim_itm_core Make_claim_str(int pid, byte[] val) {return new Wdata_claim_itm_str(pid, Wdata_dict_snak_tid.Tid_value, val);}
- public Wdata_claim_itm_core Make_claim_time(int pid, String val) {return Make_claim_time(pid, val, Bry_.Empty, Bry_.Empty);}
- public Wdata_claim_itm_core Make_claim_time(int pid, String val, int precision) {return Make_claim_time(pid, val, Int_.To_bry(precision), Bry_.Empty);}
- public Wdata_claim_itm_core Make_claim_time(int pid, String val, byte[] precision, byte[] calendar) {
- return new Wdata_claim_itm_time(pid, Wdata_dict_snak_tid.Tid_value, Wdata_dict_value_time.Xto_time(val), Bry_.Empty, Bry_.Empty, Bry_.Empty, precision, calendar);
+ public Wbase_claim_base Make_claim_novalue(int pid) {return Wbase_claim_value.New_novalue(pid);}
+ public Wbase_claim_base Make_claim_somevalue(int pid) {return Wbase_claim_value.New_somevalue(pid);}
+ public Wbase_claim_base Make_claim_string(int pid, String val) {return Make_claim_string(pid, Bry_.new_u8(val));}
+ public Wbase_claim_base Make_claim_string(int pid, byte[] val) {return new Wbase_claim_string(pid, Wbase_claim_value_type_.Tid__value, val);}
+ public Wbase_claim_base Make_claim_time(int pid, String val) {return Make_claim_time(pid, val, Bry_.Empty, Bry_.Empty);}
+ public Wbase_claim_base Make_claim_time(int pid, String val, int precision) {return Make_claim_time(pid, val, Int_.To_bry(precision), Bry_.Empty);}
+ public Wbase_claim_base Make_claim_time(int pid, String val, byte[] precision, byte[] calendar) {
+ return new Wbase_claim_time(pid, Wbase_claim_value_type_.Tid__value, Wbase_claim_time_.To_bry(tmp_time_bfr, val), Bry_.Empty, Bry_.Empty, Bry_.Empty, precision, calendar);
}
- public Wdata_claim_itm_core Make_claim_monolingual(int pid, String lang, String text) {return new Wdata_claim_itm_monolingualtext(pid, Wdata_dict_snak_tid.Tid_value, Bry_.new_u8(lang), Bry_.new_u8(text));}
- public Wdata_claim_itm_core Make_claim_quantity(int pid, String amount, String unit, String ubound, String lbound) {return new Wdata_claim_itm_quantity(pid, Wdata_dict_snak_tid.Tid_value, Bry_.new_a7(amount), Bry_.new_a7(unit), Bry_.new_a7(ubound), Bry_.new_a7(lbound));}
- public Wdata_claim_itm_core Make_claim_entity_qid(int pid, int val) {return new Wdata_claim_itm_entity(pid, Wdata_dict_snak_tid.Tid_value, Wdata_dict_value_entity_tid.Tid_item, Int_.To_bry(val));}
- public Wdata_claim_itm_core Make_claim_entity_pid(int pid, int val) {return new Wdata_claim_itm_entity(pid, Wdata_dict_snak_tid.Tid_value, Wdata_dict_value_entity_tid.Tid_property, Int_.To_bry(val));}
- public Wdata_claim_itm_core Make_claim_geo(int pid, String lon, String lat) {return Make_claim_geo(pid, lon, lat, ".00001", null, "http://www.wikidata.org/entity/Q2");}
- public Wdata_claim_itm_core Make_claim_geo(int pid, String lon, String lat, String prc, String alt, String glb) {
- return new Wdata_claim_itm_globecoordinate(pid, Wdata_dict_snak_tid.Tid_value, Bry_.new_a7(lat), Bry_.new_a7(lon), Bry_.new_a7(alt), Bry_.new_a7(prc), Bry_.new_a7(glb));
+ public Wbase_claim_base Make_claim_monolingual(int pid, String lang, String text) {return new Wbase_claim_monolingualtext(pid, Wbase_claim_value_type_.Tid__value, Bry_.new_u8(lang), Bry_.new_u8(text));}
+ public Wbase_claim_base Make_claim_quantity(int pid, String amount, String unit, String ubound, String lbound) {return new Wbase_claim_quantity(pid, Wbase_claim_value_type_.Tid__value, Bry_.new_a7(amount), Bry_.new_a7(unit), Bry_.new_a7(ubound), Bry_.new_a7(lbound));}
+ public Wbase_claim_base Make_claim_entity_qid(int pid, int val) {return new Wbase_claim_entity(pid, Wbase_claim_value_type_.Tid__value, Wbase_claim_entity_type_.Tid__item, Int_.To_bry(val));}
+ public Wbase_claim_base Make_claim_entity_pid(int pid, int val) {return new Wbase_claim_entity(pid, Wbase_claim_value_type_.Tid__value, Wbase_claim_entity_type_.Tid__property, Int_.To_bry(val));}
+ public Wbase_claim_base Make_claim_geo(int pid, String lon, String lat) {return Make_claim_geo(pid, lon, lat, ".00001", null, "http://www.wikidata.org/entity/Q2");}
+ public Wbase_claim_base Make_claim_geo(int pid, String lon, String lat, String prc, String alt, String glb) {
+ return new Wbase_claim_globecoordinate(pid, Wbase_claim_value_type_.Tid__value, Bry_.new_a7(lat), Bry_.new_a7(lon), Bry_.new_a7(alt), Bry_.new_a7(prc), Bry_.new_a7(glb));
}
- public Wdata_claim_grp Make_qualifiers_grp(int pid, Wdata_claim_itm_core... ary) {return new Wdata_claim_grp(Int_obj_ref.New(pid), ary);}
- public Wdata_claim_grp_list Make_qualifiers(Wdata_claim_grp... ary) {
- Wdata_claim_grp_list rv = new Wdata_claim_grp_list();
+ public Wbase_claim_grp Make_qualifiers_grp(int pid, Wbase_claim_base... ary) {return new Wbase_claim_grp(Int_obj_ref.New(pid), ary);}
+ public Wbase_claim_grp_list Make_qualifiers(Wbase_claim_grp... ary) {
+ Wbase_claim_grp_list rv = new Wbase_claim_grp_list();
int len = ary.length;
for (int i = 0; i < len; ++i)
rv.Add(ary[i]);
return rv;
}
- public Wdata_doc doc_(String qid, Wdata_claim_itm_core... props) {return wdoc_bldr.Qid_(qid).Add_claims(props).Xto_wdoc();}
+ public Wdata_doc doc_(String qid, Wbase_claim_base... props) {return wdoc_bldr.Qid_(qid).Add_claims(props).Xto_wdoc();}
public void Init_xwikis_add(String... prefixes) {
int len = prefixes.length;
for (int i = 0; i < len; i++) {
@@ -94,7 +96,7 @@ public class Wdata_wiki_mgr_fxt {
regy_mgr.Create(ttl_bry);
regy_mgr.Save();
- Bry_bfr bfr = app.Utl__bfr_mkr().Get_b512().Mkr_rls();
+ Bry_bfr bfr = Bry_bfr_.New();
byte[] itm = bfr.Add(ttl_bry).Add_byte(Byte_ascii.Pipe).Add(Bry_.new_a7(qid)).Add_byte_nl().To_bry_and_clear();
Xob_xdat_file xdat_file = new Xob_xdat_file();
xdat_file.Insert(bfr, itm);
@@ -120,7 +122,7 @@ public class Wdata_wiki_mgr_fxt {
Tfds.Eq(expd, String_.new_u8(qid_ttl));
}
public void Test_parse_pid_null(String val) {Test_parse_pid(val, Wdata_wiki_mgr.Pid_null);}
- public void Test_parse_pid(String val, int expd) {Tfds.Eq(expd, Wdata_pf_property.Parse_pid(num_parser, Bry_.new_a7(val)));} private Number_parser num_parser = new Number_parser();
+ public void Test_parse_pid(String val, int expd) {Tfds.Eq(expd, Wdata_pf_property.Parse_pid(num_parser, Bry_.new_a7(val)));} private Gfo_number_parser num_parser = new Gfo_number_parser();
public void Init__docs__add(Wdata_doc page) {wdata_mgr.Doc_mgr.Add(page.Qid(), page);}
public void Test_parse(String raw, String expd) {
parser_fxt.Test_parse_page_tmpl_str(raw, expd);
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/Wdata_wiki_mgr_tst.java b/400_xowa/src/gplx/xowa/xtns/wbases/Wdata_wiki_mgr_tst.java
similarity index 93%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/Wdata_wiki_mgr_tst.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/Wdata_wiki_mgr_tst.java
index c15857788..a802eed31 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/Wdata_wiki_mgr_tst.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/Wdata_wiki_mgr_tst.java
@@ -15,8 +15,8 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*;
-import org.junit.*; import gplx.xowa.xtns.wdatas.imports.*;
+package gplx.xowa.xtns.wbases; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*;
+import org.junit.*; import gplx.xowa.xtns.wbases.imports.*;
public class Wdata_wiki_mgr_tst {
@Test public void Basic() {
Wdata_wiki_mgr_fxt fxt = new Wdata_wiki_mgr_fxt().Init();
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/Wdata_xtn_mgr.java b/400_xowa/src/gplx/xowa/xtns/wbases/Wdata_xtn_mgr.java
similarity index 95%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/Wdata_xtn_mgr.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/Wdata_xtn_mgr.java
index ddb524eb1..97539a4dd 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/Wdata_xtn_mgr.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/Wdata_xtn_mgr.java
@@ -15,7 +15,7 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*;
+package gplx.xowa.xtns.wbases; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*;
import gplx.langs.htmls.*;
import gplx.xowa.langs.*; import gplx.xowa.langs.bldrs.*;
import gplx.xowa.wikis.*;
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/Wdata_xwiki_link_wtr.java b/400_xowa/src/gplx/xowa/xtns/wbases/Wdata_xwiki_link_wtr.java
similarity index 95%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/Wdata_xwiki_link_wtr.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/Wdata_xwiki_link_wtr.java
index 1bba460ad..a00e88293 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/Wdata_xwiki_link_wtr.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/Wdata_xwiki_link_wtr.java
@@ -15,10 +15,10 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*;
+package gplx.xowa.xtns.wbases; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*;
import gplx.langs.jsons.*;
import gplx.xowa.wikis.domains.*; import gplx.xowa.wikis.xwikis.*;
-import gplx.xowa.xtns.wdatas.core.*; import gplx.xowa.xtns.wdatas.pfuncs.*;
+import gplx.xowa.xtns.wbases.core.*; import gplx.xowa.xtns.wbases.pfuncs.*;
public class Wdata_xwiki_link_wtr implements gplx.core.brys.Bfr_arg {
public Wdata_xwiki_link_wtr Page_(Xoae_page page) {this.page = page; return this;} private Xoae_page page;
public void Bfr_arg__add(Bry_bfr bfr) {
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/Wdata_xwiki_link_wtr_tst.java b/400_xowa/src/gplx/xowa/xtns/wbases/Wdata_xwiki_link_wtr_tst.java
similarity index 97%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/Wdata_xwiki_link_wtr_tst.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/Wdata_xwiki_link_wtr_tst.java
index 8bd5b2f4a..df5be0c61 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/Wdata_xwiki_link_wtr_tst.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/Wdata_xwiki_link_wtr_tst.java
@@ -15,7 +15,7 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*;
+package gplx.xowa.xtns.wbases; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*;
import org.junit.*; import gplx.langs.jsons.*;
import gplx.xowa.wikis.domains.*;
public class Wdata_xwiki_link_wtr_tst {
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_claim_grp.java b/400_xowa/src/gplx/xowa/xtns/wbases/claims/Wbase_claim_grp.java
similarity index 70%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_claim_grp.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/claims/Wbase_claim_grp.java
index 285a9fb7c..3dcf2cc91 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_claim_grp.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/claims/Wbase_claim_grp.java
@@ -15,20 +15,21 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.claims; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
import gplx.core.primitives.*;
-public class Wdata_claim_grp {
- public Wdata_claim_grp(Int_obj_ref id_ref, Wdata_claim_itm_core[] itms) {this.id_ref = id_ref; this.itms = itms;}
+import gplx.xowa.xtns.wbases.claims.itms.*;
+public class Wbase_claim_grp {
+ public Wbase_claim_grp(Int_obj_ref id_ref, Wbase_claim_base[] itms) {this.id_ref = id_ref; this.itms = itms;}
public Int_obj_ref Id_ref() {return id_ref;} private final Int_obj_ref id_ref;
public int Id() {return id_ref.Val();}
public String Id_str() {if (id_str == null) id_str = "P" + Int_.To_str(id_ref.Val()); return id_str;} private String id_str;
- public int Len() {return itms.length;} private Wdata_claim_itm_core[] itms;
- public Wdata_claim_itm_core Get_at(int i) {return itms[i];}
+ public int Len() {return itms.length;} private Wbase_claim_base[] itms;
+ public Wbase_claim_base Get_at(int i) {return itms[i];}
public static List_adp Xto_list(Ordered_hash hash) {
int len = hash.Count();
List_adp rv = List_adp_.New();
for (int i = 0; i < len; ++i) {
- Wdata_claim_grp grp = (Wdata_claim_grp)hash.Get_at(i);
+ Wbase_claim_grp grp = (Wbase_claim_grp)hash.Get_at(i);
int grp_len = grp.Len();
for (int j = 0; j < grp_len; ++j)
rv.Add(grp.Get_at(j));
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_claim_grp_list.java b/400_xowa/src/gplx/xowa/xtns/wbases/claims/Wbase_claim_grp_list.java
similarity index 73%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_claim_grp_list.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/claims/Wbase_claim_grp_list.java
index 2e37e8e78..bb5499234 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_claim_grp_list.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/claims/Wbase_claim_grp_list.java
@@ -15,10 +15,10 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
-public class Wdata_claim_grp_list {
+package gplx.xowa.xtns.wbases.claims; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
+public class Wbase_claim_grp_list {
private Ordered_hash hash = Ordered_hash_.New();
- public void Add(Wdata_claim_grp itm) {hash.Add(itm.Id_ref(), itm);}
+ public void Add(Wbase_claim_grp itm) {hash.Add(itm.Id_ref(), itm);}
public int Len() {return hash.Count();}
- public Wdata_claim_grp Get_at(int i) {return (Wdata_claim_grp)hash.Get_at(i);}
+ public Wbase_claim_grp Get_at(int i) {return (Wbase_claim_grp)hash.Get_at(i);}
}
diff --git a/400_xowa/src/gplx/xowa/xtns/wbases/claims/Wbase_claim_visitor.java b/400_xowa/src/gplx/xowa/xtns/wbases/claims/Wbase_claim_visitor.java
new file mode 100644
index 000000000..45ad13d9a
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/claims/Wbase_claim_visitor.java
@@ -0,0 +1,28 @@
+/*
+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 .
+*/
+package gplx.xowa.xtns.wbases.claims; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
+import gplx.xowa.xtns.wbases.claims.itms.*;
+public interface Wbase_claim_visitor {
+ void Visit_str (Wbase_claim_string itm);
+ void Visit_entity (Wbase_claim_entity itm);
+ void Visit_monolingualtext (Wbase_claim_monolingualtext itm);
+ void Visit_quantity (Wbase_claim_quantity itm);
+ void Visit_time (Wbase_claim_time itm);
+ void Visit_globecoordinate (Wbase_claim_globecoordinate itm);
+ void Visit_system (Wbase_claim_value itm);
+}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_references_grp.java b/400_xowa/src/gplx/xowa/xtns/wbases/claims/Wbase_references_grp.java
similarity index 72%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_references_grp.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/claims/Wbase_references_grp.java
index 85adbfd8e..85e2a62a6 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_references_grp.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/claims/Wbase_references_grp.java
@@ -15,9 +15,9 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
-public class Wdata_references_grp {
- public Wdata_references_grp(Wdata_claim_grp_list references, int[] references_order) {this.references = references; this.references_order = references_order;}
- public Wdata_claim_grp_list References() {return references;} private Wdata_claim_grp_list references;
+package gplx.xowa.xtns.wbases.claims; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
+public class Wbase_references_grp {
+ public Wbase_references_grp(Wbase_claim_grp_list references, int[] references_order) {this.references = references; this.references_order = references_order;}
+ public Wbase_claim_grp_list References() {return references;} private Wbase_claim_grp_list references;
public int[] References_order() {return references_order;} private int[] references_order;
}
diff --git a/400_xowa/src/gplx/xowa/xtns/wbases/claims/enums/Wbase_claim_entity_type_.java b/400_xowa/src/gplx/xowa/xtns/wbases/claims/enums/Wbase_claim_entity_type_.java
new file mode 100644
index 000000000..988084502
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/claims/enums/Wbase_claim_entity_type_.java
@@ -0,0 +1,41 @@
+/*
+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 .
+*/
+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_entity_type_ {
+ public static final byte
+ 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")
+ ;
+ 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();}
+}
\ No newline at end of file
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_claim_visitor.java b/400_xowa/src/gplx/xowa/xtns/wbases/claims/enums/Wbase_claim_enum.java
similarity index 55%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_claim_visitor.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/claims/enums/Wbase_claim_enum.java
index e2dbbd9a4..59afcdb32 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_claim_visitor.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/claims/enums/Wbase_claim_enum.java
@@ -15,13 +15,14 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
-public interface Wdata_claim_visitor {
- void Visit_str(Wdata_claim_itm_str itm);
- void Visit_entity(Wdata_claim_itm_entity itm);
- void Visit_monolingualtext(Wdata_claim_itm_monolingualtext itm);
- void Visit_quantity(Wdata_claim_itm_quantity itm);
- void Visit_time(Wdata_claim_itm_time itm);
- void Visit_globecoordinate(Wdata_claim_itm_globecoordinate itm);
- void Visit_system(Wdata_claim_itm_system itm);
-}
+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) {
+ this.tid = tid;
+ this.key_str = key_str;
+ this.key_bry = Bry_.new_u8(key_str);
+ }
+ 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;
+}
\ No newline at end of file
diff --git a/400_xowa/src/gplx/xowa/xtns/wbases/claims/enums/Wbase_claim_enum_.java b/400_xowa/src/gplx/xowa/xtns/wbases/claims/enums/Wbase_claim_enum_.java
new file mode 100644
index 000000000..57b8b3a52
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/claims/enums/Wbase_claim_enum_.java
@@ -0,0 +1,37 @@
+/*
+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 .
+*/
+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;
+}
\ No newline at end of file
diff --git a/400_xowa/src/gplx/xowa/xtns/wbases/claims/enums/Wbase_claim_rank_.java b/400_xowa/src/gplx/xowa/xtns/wbases/claims/enums/Wbase_claim_rank_.java
new file mode 100644
index 000000000..1e7b16c23
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/claims/enums/Wbase_claim_rank_.java
@@ -0,0 +1,46 @@
+/*
+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 .
+*/
+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_rank_ {
+ public static final byte // SERIALIZED.MW
+ Tid__preferred = 2
+ , Tid__normal = 1
+ , 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")
+ ;
+ 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();}
+}
\ No newline at end of file
diff --git a/400_xowa/src/gplx/xowa/xtns/wbases/claims/enums/Wbase_claim_type.java b/400_xowa/src/gplx/xowa/xtns/wbases/claims/enums/Wbase_claim_type.java
new file mode 100644
index 000000000..1d28ba541
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/claims/enums/Wbase_claim_type.java
@@ -0,0 +1,30 @@
+/*
+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 .
+*/
+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);
+ 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;
+}
diff --git a/400_xowa/src/gplx/xowa/xtns/wbases/claims/enums/Wbase_claim_type_.java b/400_xowa/src/gplx/xowa/xtns/wbases/claims/enums/Wbase_claim_type_.java
new file mode 100644
index 000000000..dc4a2e96a
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/claims/enums/Wbase_claim_type_.java
@@ -0,0 +1,64 @@
+/*
+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 .
+*/
+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 static final byte // NOT_SERIALIZED
+ Tid__unknown = 0
+ , Tid__value = 1
+ , Tid__bad = 1
+ , Tid__string = 2
+ , Tid__quantity = 3
+ , Tid__time = 4
+ , Tid__globecoordinate = 5
+ , 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
+ 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
+ , Itm__quantity = New(Tid__quantity , "quantity")
+ , Itm__time = New(Tid__time , "time")
+ , Itm__globecoordinate = New(Tid__globecoordinate , "globecoordinate" , "globe-coordinate")
+ , 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();
+ }
+}
\ No newline at end of file
diff --git a/400_xowa/src/gplx/xowa/xtns/wbases/claims/enums/Wbase_claim_value_type_.java b/400_xowa/src/gplx/xowa/xtns/wbases/claims/enums/Wbase_claim_value_type_.java
new file mode 100644
index 000000000..d9cfce1fe
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/claims/enums/Wbase_claim_value_type_.java
@@ -0,0 +1,43 @@
+/*
+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 .
+*/
+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_value_type_ {
+ public static final byte // SERIALIZED.MW
+ Tid__novalue = 0
+ , 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")
+ ;
+ 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();}
+}
\ No newline at end of file
diff --git a/400_xowa/src/gplx/xowa/xtns/wbases/claims/itms/Wbase_claim_base.java b/400_xowa/src/gplx/xowa/xtns/wbases/claims/itms/Wbase_claim_base.java
new file mode 100644
index 000000000..06e292939
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/claims/itms/Wbase_claim_base.java
@@ -0,0 +1,46 @@
+/*
+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 .
+*/
+package gplx.xowa.xtns.wbases.claims.itms; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*; import gplx.xowa.xtns.wbases.claims.*;
+import gplx.xowa.xtns.wbases.claims.enums.*;
+public abstract class Wbase_claim_base implements CompareAble {
+ public Wbase_claim_base(int pid, byte snak_tid) {
+ this.pid = pid;
+ this.snak_tid = snak_tid;
+ }
+ public int Pid() {return pid;} private final int pid;
+ public byte Snak_tid() {return snak_tid;} private final byte snak_tid;
+ public byte Rank_tid() {return rank_tid;} private byte rank_tid = Wbase_claim_rank_.Tid__normal; // TEST: default to normal for tests
+ public String Prop_type() {return Prop_type_statement;} private static final String Prop_type_statement = "statement";
+ public byte[] Wguid() {return wguid;} private byte[] wguid;
+ public Wbase_claim_grp_list Qualifiers() {return qualifiers;} private Wbase_claim_grp_list qualifiers;
+ public int[] Qualifiers_order() {return qualifiers_order;} private int[] qualifiers_order;
+ public Wbase_references_grp[] References() {return references;} private Wbase_references_grp[] references;
+ public abstract byte Val_tid();
+ public abstract void Welcome(Wbase_claim_visitor visitor);
+
+ public void Rank_tid_(byte v) {this.rank_tid = v;}
+ public void Wguid_(byte[] v) {this.wguid = v;}
+ public Wbase_claim_base Qualifiers_(Wbase_claim_grp_list v) {qualifiers = v; return this;}
+ public void Qualifiers_order_(int[] v) {qualifiers_order = v;}
+ public void References_(Wbase_references_grp[] v) {references = v;}
+
+ public int compareTo(Object obj) {
+ Wbase_claim_base comp = (Wbase_claim_base)obj;
+ return Int_.Compare(pid, comp.pid);
+ }
+}
diff --git a/400_xowa/src/gplx/xowa/xtns/wbases/claims/itms/Wbase_claim_entity.java b/400_xowa/src/gplx/xowa/xtns/wbases/claims/itms/Wbase_claim_entity.java
new file mode 100644
index 000000000..16a3afcb1
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/claims/itms/Wbase_claim_entity.java
@@ -0,0 +1,50 @@
+/*
+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 .
+*/
+package gplx.xowa.xtns.wbases.claims.itms; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*; import gplx.xowa.xtns.wbases.claims.*;
+import gplx.xowa.xtns.wbases.claims.enums.*;
+public class Wbase_claim_entity extends Wbase_claim_base {
+ public Wbase_claim_entity(int pid, byte snak_tid, byte entity_tid, byte[] entity_id_bry) {super(pid, snak_tid);
+ this.entity_tid = entity_tid;
+ this.entity_id_bry = entity_id_bry;
+ this.entity_id = Bry_.To_int(entity_id_bry);
+ }
+ @Override public byte Val_tid() {return Wbase_claim_type_.Tid__entity;}
+ public int Entity_id() {return entity_id;} private final int entity_id;
+ 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 byte[] Page_ttl_db() {
+ return entity_tid == Wbase_claim_entity_type_.Tid__item
+ ? Bry_.Add(Wdata_wiki_mgr.Ttl_prefix_qid_bry_db, entity_id_bry)
+ : Bry_.Add(Wdata_wiki_mgr.Ttl_prefix_pid_bry, entity_id_bry)
+ ;
+ }
+ public byte[] Page_ttl_gui() {
+ return entity_tid == Wbase_claim_entity_type_.Tid__item
+ ? Bry_.Add(Wdata_wiki_mgr.Ttl_prefix_qid_bry_gui, entity_id_bry)
+ : Bry_.Add(Wdata_wiki_mgr.Ttl_prefix_pid_bry, entity_id_bry)
+ ;
+ }
+ @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));
+ }
+}
diff --git a/400_xowa/src/gplx/xowa/xtns/wbases/claims/itms/Wbase_claim_entity_.java b/400_xowa/src/gplx/xowa/xtns/wbases/claims/itms/Wbase_claim_entity_.java
new file mode 100644
index 000000000..4ac125567
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/claims/itms/Wbase_claim_entity_.java
@@ -0,0 +1,36 @@
+/*
+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 .
+*/
+package gplx.xowa.xtns.wbases.claims.itms; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*; import gplx.xowa.xtns.wbases.claims.*;
+import gplx.xowa.xtns.wbases.claims.enums.*;
+public class Wbase_claim_entity_ {
+ public static final byte
+ Tid__entity_type = 0
+ , Tid__numeric_id = 1
+ ;
+ 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")
+ ;
+ 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);}
+}
diff --git a/400_xowa/src/gplx/xowa/xtns/wbases/claims/itms/Wbase_claim_globecoordinate.java b/400_xowa/src/gplx/xowa/xtns/wbases/claims/itms/Wbase_claim_globecoordinate.java
new file mode 100644
index 000000000..2b6c676e5
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/claims/itms/Wbase_claim_globecoordinate.java
@@ -0,0 +1,43 @@
+/*
+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 .
+*/
+package gplx.xowa.xtns.wbases.claims.itms; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*; import gplx.xowa.xtns.wbases.claims.*;
+import gplx.xowa.xtns.wbases.claims.enums.*;
+public class Wbase_claim_globecoordinate extends Wbase_claim_base {
+ public Wbase_claim_globecoordinate(int pid, byte snak_tid, byte[] lat, byte[] lng, byte[] alt, byte[] prc, byte[] glb) {super(pid, snak_tid);
+ this.lat = lat; this.lng = lng; this.alt = alt; this.prc = prc; this.glb = glb;
+ }
+ @Override public byte Val_tid() {return Wbase_claim_type_.Tid__globecoordinate;}
+ public byte[] Lat() {return lat;} private final byte[] lat;
+ public byte[] Lng() {return lng;} private final byte[] lng;
+ public byte[] Alt() {return alt;} private final byte[] alt;
+ public byte[] Prc() {return prc;} private final byte[] prc;
+ public byte[] Glb() {return glb;} private final byte[] glb;
+ public byte[] Glb_ttl() {return glb_ttl;} private byte[] glb_ttl;
+
+ public void Glb_ttl_(byte[] v) {glb_ttl = v;}
+ public Decimal_adp Prc_as_num() {
+ if (prc_as_num == null)
+ prc_as_num = Bry_.Eq(prc, Object_.Bry__null) ? Decimal_adp_.One : Decimal_adp_.parse(String_.new_a7(prc));
+ return prc_as_num;
+ } private Decimal_adp prc_as_num;
+
+ @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));
+ }
+}
diff --git a/400_xowa/src/gplx/xowa/xtns/wbases/claims/itms/Wbase_claim_globecoordinate_.java b/400_xowa/src/gplx/xowa/xtns/wbases/claims/itms/Wbase_claim_globecoordinate_.java
new file mode 100644
index 000000000..67af2493a
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/claims/itms/Wbase_claim_globecoordinate_.java
@@ -0,0 +1,58 @@
+/*
+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 .
+*/
+package gplx.xowa.xtns.wbases.claims.itms; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*; import gplx.xowa.xtns.wbases.claims.*;
+import gplx.xowa.xtns.wbases.claims.enums.*;
+public class Wbase_claim_globecoordinate_ {
+ public static final byte
+ Tid__latitude = 0
+ , Tid__longitude = 1
+ , Tid__altitude = 2
+ , 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")
+ ;
+ 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"
+ ;
+ public static byte[]
+ Val_globe_dflt_bry = Bry_.new_a7(Val_globe_dflt_str)
+ ;
+}
diff --git a/400_xowa/src/gplx/xowa/xtns/wbases/claims/itms/Wbase_claim_monolingualtext.java b/400_xowa/src/gplx/xowa/xtns/wbases/claims/itms/Wbase_claim_monolingualtext.java
new file mode 100644
index 000000000..6adc4e1f1
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/claims/itms/Wbase_claim_monolingualtext.java
@@ -0,0 +1,32 @@
+/*
+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 .
+*/
+package gplx.xowa.xtns.wbases.claims.itms; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*; import gplx.xowa.xtns.wbases.claims.*;
+import gplx.xowa.xtns.wbases.claims.enums.*;
+public class Wbase_claim_monolingualtext extends Wbase_claim_base {
+ public Wbase_claim_monolingualtext(int pid, byte snak_tid, byte[] lang, byte[] text) {super(pid, snak_tid);
+ this.lang = lang; this.text = text;
+ }
+ @Override public byte Val_tid() {return Wbase_claim_type_.Tid__monolingualtext;}
+ public byte[] Lang() {return lang;} private final byte[] lang;
+ public byte[] Text() {return text;} private final byte[] text;
+
+ @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));
+ }
+}
diff --git a/400_xowa/src/gplx/xowa/xtns/wbases/claims/itms/Wbase_claim_monolingualtext_.java b/400_xowa/src/gplx/xowa/xtns/wbases/claims/itms/Wbase_claim_monolingualtext_.java
new file mode 100644
index 000000000..b50a7c95f
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/claims/itms/Wbase_claim_monolingualtext_.java
@@ -0,0 +1,42 @@
+/*
+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 .
+*/
+package gplx.xowa.xtns.wbases.claims.itms; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*; import gplx.xowa.xtns.wbases.claims.*;
+import gplx.xowa.xtns.wbases.claims.enums.*;
+public class Wbase_claim_monolingualtext_ {
+ public static final byte
+ 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")
+ ;
+ 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);}
+}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_claim_itm_quantity.java b/400_xowa/src/gplx/xowa/xtns/wbases/claims/itms/Wbase_claim_quantity.java
similarity index 59%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_claim_itm_quantity.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/claims/itms/Wbase_claim_quantity.java
index 78b06fe42..4cc1bb7dd 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_claim_itm_quantity.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/claims/itms/Wbase_claim_quantity.java
@@ -15,38 +15,40 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
-import gplx.xowa.xtns.wdatas.hwtrs.*;
-public class Wdata_claim_itm_quantity extends Wdata_claim_itm_core { public Wdata_claim_itm_quantity(int pid, byte snak_tid, byte[] amount, byte[] unit, byte[] ubound, byte[] lbound) {
- this.Ctor(pid, snak_tid);
+package gplx.xowa.xtns.wbases.claims.itms; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*; import gplx.xowa.xtns.wbases.claims.*;
+import gplx.xowa.xtns.wbases.claims.enums.*;
+public class Wbase_claim_quantity extends Wbase_claim_base {
+ public Wbase_claim_quantity(int pid, byte snak_tid, byte[] amount, byte[] unit, byte[] ubound, byte[] lbound) {super(pid, snak_tid);
this.amount = amount; this.unit = unit; this.ubound = ubound; this.lbound = lbound;
}
- @Override public byte Val_tid() {return Wdata_dict_val_tid.Tid_quantity;}
- public byte[] Amount() {return amount;} private final byte[] amount;
+ @Override public byte Val_tid() {return Wbase_claim_type_.Tid__quantity;}
+ public byte[] Amount() {return amount;} private final byte[] amount;
+ public byte[] Ubound() {return ubound;} private final byte[] ubound;
+ public byte[] Lbound() {return lbound;} private final byte[] lbound;
+ public byte[] Unit() {return unit;} private final byte[] unit;
+
public Decimal_adp Amount_as_num() {
if (amount_as_num == null) amount_as_num = To_decimal("amount", amount);
return amount_as_num;
} private Decimal_adp amount_as_num;
- public byte[] Ubound() {return ubound;} private final byte[] ubound;
public Decimal_adp Ubound_as_num() {
if (ubound_as_num == null) ubound_as_num = To_decimal("upper", ubound);
return ubound_as_num;
} private Decimal_adp ubound_as_num;
- public byte[] Lbound() {return lbound;} private final byte[] lbound;
public Decimal_adp Lbound_as_num() {
if (lbound_as_num == null) lbound_as_num = To_decimal("lower", lbound);
return lbound_as_num;
} private Decimal_adp lbound_as_num;
- public byte[] Unit() {return unit;} private final byte[] unit;
private Decimal_adp To_decimal(String type, byte[] v) {
if (v == null) throw Err_.new_("wbase", "value is null", "type", type);
int len = v.length; if (len == 0) throw Err_.new_("wbase", "value is empty", "type", type);
if (v[0] == Byte_ascii.Plus) v = Bry_.Mid(v, 1);
return Decimal_adp_.parse(String_.new_a7(v));
}
- @Override public void Welcome(Wdata_claim_visitor visitor) {visitor.Visit_quantity(this);}
+
+ @Override public void Welcome(Wbase_claim_visitor visitor) {visitor.Visit_quantity(this);}
@Override public String toString() {// TEST:
- return String_.Concat_with_str("|", Wdata_dict_snak_tid.Xto_str(this.Snak_tid()), Wdata_dict_val_tid.Xto_str(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_.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));
}
- public static final byte[] Unit_1 = Bry_.new_a7("1");
+ public static final byte[] Unit_1 = Bry_.new_a7("1");
}
diff --git a/400_xowa/src/gplx/xowa/xtns/wbases/claims/itms/Wbase_claim_quantity_.java b/400_xowa/src/gplx/xowa/xtns/wbases/claims/itms/Wbase_claim_quantity_.java
new file mode 100644
index 000000000..4cec8245f
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/claims/itms/Wbase_claim_quantity_.java
@@ -0,0 +1,49 @@
+/*
+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 .
+*/
+package gplx.xowa.xtns.wbases.claims.itms; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*; import gplx.xowa.xtns.wbases.claims.*;
+import gplx.xowa.xtns.wbases.claims.enums.*;
+public class Wbase_claim_quantity_ {
+ public static final byte
+ Tid__amount = 0
+ , Tid__unit = 1
+ , 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")
+ ;
+ 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);}
+}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_claim_itm_str.java b/400_xowa/src/gplx/xowa/xtns/wbases/claims/itms/Wbase_claim_string.java
similarity index 52%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_claim_itm_str.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/claims/itms/Wbase_claim_string.java
index 795692615..57bdbf274 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_claim_itm_str.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/claims/itms/Wbase_claim_string.java
@@ -15,16 +15,17 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
-import gplx.xowa.xtns.wdatas.hwtrs.*;
-public class Wdata_claim_itm_str extends Wdata_claim_itm_core { public Wdata_claim_itm_str(int pid, byte snak_tid, byte[] val) {
- this.Ctor(pid, snak_tid);
+package gplx.xowa.xtns.wbases.claims.itms; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*; import gplx.xowa.xtns.wbases.claims.*;
+import gplx.xowa.xtns.wbases.claims.enums.*;
+public class Wbase_claim_string extends Wbase_claim_base {
+ public Wbase_claim_string(int pid, byte snak_tid, byte[] val) {super(pid, snak_tid);
this.val = val;
}
- @Override public byte Val_tid() {return Wdata_dict_val_tid.Tid_string;}
- public byte[] Val_str() {return val;} private final byte[] val;
- @Override public void Welcome(Wdata_claim_visitor visitor) {visitor.Visit_str(this);}
+ @Override public byte Val_tid() {return Wbase_claim_type_.Tid__string;}
+ public byte[] Val_str() {return val;} private final byte[] val;
+
+ @Override public void Welcome(Wbase_claim_visitor visitor) {visitor.Visit_str(this);}
@Override public String toString() {// TEST:
- return String_.Concat_with_str("|", Wdata_dict_snak_tid.Xto_str(this.Snak_tid()), Wdata_dict_val_tid.Xto_str(this.Val_tid()), String_.new_u8(val));
+ 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));
}
}
diff --git a/400_xowa/src/gplx/xowa/xtns/wbases/claims/itms/Wbase_claim_time.java b/400_xowa/src/gplx/xowa/xtns/wbases/claims/itms/Wbase_claim_time.java
new file mode 100644
index 000000000..99fa9cd67
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/claims/itms/Wbase_claim_time.java
@@ -0,0 +1,107 @@
+/*
+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 .
+*/
+package gplx.xowa.xtns.wbases.claims.itms; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*; import gplx.xowa.xtns.wbases.claims.*;
+import gplx.core.brys.fmtrs.*;
+import gplx.xowa.xtns.wbases.claims.enums.*; import gplx.xowa.xtns.wbases.claims.itms.times.*; import gplx.xowa.xtns.wbases.hwtrs.*;
+public class Wbase_claim_time extends Wbase_claim_base {
+ public Wbase_claim_time(int pid, byte snak_tid, byte[] time, byte[] timezone, byte[] before, byte[] after, byte[] precision, byte[] calendar) {super(pid, snak_tid);
+ this.time = time; this.before = before; this.after = after; this.precision = precision; this.calendar = calendar;
+ }
+ @Override public byte Val_tid() {return Wbase_claim_type_.Tid__time;}
+ public byte[] Time() {return time;} private final byte[] time;
+ public byte[] Before() {return before;} private final byte[] before;
+ public byte[] After() {return after;} private final byte[] after;
+ public byte[] Precision() {return precision;} private final byte[] precision;
+ public byte[] Calendar() {return calendar;} private final byte[] calendar;
+ public byte[] Calendar_ttl() {return calendar_ttl;} private byte[] calendar_ttl;
+ public boolean Calendar_is_julian() {return Bry_.Eq(calendar, Calendar_julian);}
+
+ public void Calendar_ttl_(byte[] v) {calendar_ttl = v;}
+
+ public Wbase_date Time_as_date() {
+ if (time_as_date == null) time_as_date = Wbase_date.Parse(time, this.Precision_int(), this.Before_int(), this.After_int(), this.Calendar_is_julian());
+ return time_as_date;
+ } private Wbase_date time_as_date;
+ public int Precision_int() {
+ if (precision_int == Int_.Min_value) {
+ precision_int = Bry_.To_int_or(precision, -1);
+ if (precision_int == -1) {
+ precision_int = Wbase_date.Fmt_ymdhns;
+ Gfo_usr_dlg_.Instance.Warn_many("", "", "unknown precision: ~{0}", String_.new_u8(precision));
+ }
+ }
+ return precision_int;
+ } private int precision_int = Int_.Min_value;
+ public int Before_int() {
+ if (before_int == Int_.Min_value) {
+ before_int = Bry_.To_int_or(before, -1);
+ if (before_int == -1) {
+ before_int = 0;
+ Gfo_usr_dlg_.Instance.Warn_many("", "", "unknown before: ~{0}", String_.new_u8(before));
+ }
+ }
+ return before_int;
+ } private int before_int = Int_.Min_value;
+ public int After_int() {
+ if (after_int == Int_.Min_value) {
+ after_int = Bry_.To_int_or(after, -1);
+ if (after_int == -1) {
+ after_int = 0;
+ Gfo_usr_dlg_.Instance.Warn_many("", "", "unknown after: ~{0}", String_.new_u8(after));
+ }
+ }
+ return after_int;
+ } private int after_int = Int_.Min_value;
+
+ public void Write_to_bfr(Bry_bfr bfr, Bry_bfr tmp_time_bfr, Bry_fmtr tmp_time_fmtr, Wdata_hwtr_msgs msgs, byte[] ttl) {
+ try {
+ Wbase_date date = this.Time_as_date();
+ boolean calendar_is_julian = this.Calendar_is_julian();
+ byte[] calendar_display = null;
+ if (calendar_is_julian) {
+ date = Wbase_date.Xto_julian(date);
+ calendar_display = msgs.Time_julian();
+ }
+ Wbase_date.Xto_str(bfr, tmp_time_fmtr, tmp_time_bfr, msgs, date);
+ if (calendar_display != null)
+ bfr.Add_byte_space().Add(calendar_display);
+ } catch (Exception e) {
+ Xoa_app_.Usr_dlg().Warn_many("", "", "failed to write time; ttl=~{0} pid=~{1} err=~{2}", ttl, this.Pid(), Err_.Message_gplx_log(e));
+ }
+ }
+ public static void Write_to_bfr(Bry_bfr bfr, Bry_bfr tmp_time_bfr, Bry_fmtr tmp_time_fmtr, Wdata_hwtr_msgs msgs
+ , byte[] ttl, byte[] pid, Wbase_date date, boolean calendar_is_julian) {
+ try {
+ byte[] calendar_display = null;
+ if (calendar_is_julian) {
+ date = Wbase_date.Xto_julian(date);
+ calendar_display = msgs.Time_julian();
+ }
+ Wbase_date.Xto_str(bfr, tmp_time_fmtr, tmp_time_bfr, msgs, date);
+ if (calendar_display != null)
+ bfr.Add_byte_space().Add(calendar_display);
+ } catch (Exception e) {
+ Xoa_app_.Usr_dlg().Warn_many("", "", "failed to write time; ttl=~{0} pid=~{1} err=~{2}", ttl, pid, Err_.Message_gplx_log(e));
+ }
+ }
+ @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));
+ }
+ public static final byte[] Calendar_julian = Bry_.new_a7("http://www.wikidata.org/entity/Q1985786");
+}
diff --git a/400_xowa/src/gplx/xowa/xtns/wbases/claims/itms/Wbase_claim_time_.java b/400_xowa/src/gplx/xowa/xtns/wbases/claims/itms/Wbase_claim_time_.java
new file mode 100644
index 000000000..157616764
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/claims/itms/Wbase_claim_time_.java
@@ -0,0 +1,82 @@
+/*
+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 .
+*/
+package gplx.xowa.xtns.wbases.claims.itms; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*; import gplx.xowa.xtns.wbases.claims.*;
+import gplx.xowa.xtns.wbases.claims.enums.*; import gplx.xowa.xtns.wbases.claims.itms.times.*;
+public class Wbase_claim_time_ {
+ public static final byte
+ Tid__time = 0
+ , Tid__timezone = 1
+ , Tid__before = 2
+ , Tid__after = 3
+ , 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")
+ ;
+ 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)
+ , Dflt__after = Wbase_data_itm.New_int(0)
+ , Dflt__timezone = Wbase_data_itm.New_int(0)
+ , Dflt__calendarmodel = Wbase_data_itm.New_str("http://www.wikidata.org/entity/Q1985727")
+ ;
+
+ private static final byte[] Bry_year_prefix = Bry_.new_a7("+0000000");
+ public static byte[] To_bry(Bry_bfr bfr, String date) {return To_bry(bfr, DateAdp_.parse_fmt(date, "yyyy-MM-dd HH:mm:ss"));}
+ public static byte[] To_bry(Bry_bfr bfr, DateAdp date) {// +0000000yyyy-MM-ddTHH:mm:ssZ
+ bfr
+ .Add(Bry_year_prefix)
+ .Add_int_fixed(date.Year(), 4)
+ .Add_byte(Byte_ascii.Dash)
+ .Add_int_fixed(date.Month(), 2)
+ .Add_byte(Byte_ascii.Dash)
+ .Add_int_fixed(date.Day(), 2)
+ .Add_byte(Byte_ascii.Ltr_T)
+ .Add_int_fixed(date.Hour(), 2)
+ .Add_byte(Byte_ascii.Colon)
+ .Add_int_fixed(date.Minute(), 2)
+ .Add_byte(Byte_ascii.Colon)
+ .Add_int_fixed(date.Second(), 2)
+ .Add_byte(Byte_ascii.Ltr_Z)
+ ;
+ return bfr.To_bry_and_clear();
+ }
+}
diff --git a/400_xowa/src/gplx/xowa/xtns/wbases/claims/itms/Wbase_claim_value.java b/400_xowa/src/gplx/xowa/xtns/wbases/claims/itms/Wbase_claim_value.java
new file mode 100644
index 000000000..2a5827808
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/claims/itms/Wbase_claim_value.java
@@ -0,0 +1,33 @@
+/*
+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 .
+*/
+package gplx.xowa.xtns.wbases.claims.itms; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*; import gplx.xowa.xtns.wbases.claims.*;
+import gplx.xowa.xtns.wbases.claims.enums.*;
+public class Wbase_claim_value extends Wbase_claim_base {
+ public Wbase_claim_value(int pid, byte val_tid, byte snak_tid) {super(pid, snak_tid);
+ this.val_tid = val_tid;
+ }
+ @Override public byte Val_tid() {return val_tid;} private final byte val_tid;
+
+ @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()));
+ }
+
+ 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);}
+ public static Wbase_claim_value New_somevalue(int pid) {return new Wbase_claim_value(pid, Wbase_claim_type_.Tid__unknown , Wbase_claim_value_type_.Tid__somevalue);}
+}
diff --git a/400_xowa/src/gplx/xowa/xtns/wbases/claims/itms/times/Wbase_data_itm.java b/400_xowa/src/gplx/xowa/xtns/wbases/claims/itms/times/Wbase_data_itm.java
new file mode 100644
index 000000000..bfa52a027
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/claims/itms/times/Wbase_data_itm.java
@@ -0,0 +1,31 @@
+/*
+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 .
+*/
+package gplx.xowa.xtns.wbases.claims.itms.times; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*; import gplx.xowa.xtns.wbases.claims.*; import gplx.xowa.xtns.wbases.claims.itms.*;
+public class Wbase_data_itm {
+ public Wbase_data_itm(int val_int, String val_str, byte[] val_bry) {
+ this.val_int = val_int;
+ this.val_str = val_str;
+ this.val_bry = val_bry;
+ }
+ public int Val_int() {return val_int;} private final int val_int;
+ public String Val_str() {return val_str;} private final String val_str;
+ public byte[] Val_bry() {return val_bry;} private final byte[] val_bry;
+
+ public static Wbase_data_itm New_int(int val) {return new Wbase_data_itm(val, Int_.To_str(val), Int_.To_bry(val));}
+ public static Wbase_data_itm New_str(String val) {return new Wbase_data_itm( -1, val, Bry_.new_u8(val));}
+}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_date.java b/400_xowa/src/gplx/xowa/xtns/wbases/claims/itms/times/Wbase_date.java
similarity index 79%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_date.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/claims/itms/times/Wbase_date.java
index dea9acd60..230960cf0 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_date.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/claims/itms/times/Wbase_date.java
@@ -15,25 +15,25 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.claims.itms.times; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*; import gplx.xowa.xtns.wbases.claims.*; import gplx.xowa.xtns.wbases.claims.itms.*;
import gplx.core.brys.fmtrs.*;
-import gplx.xowa.xtns.wdatas.hwtrs.*;
-public class Wdata_date {
- public Wdata_date(long year, int month, int day, int hour, int minute, int second, int precision, int before, int after, boolean calendar_is_julian) {
+import gplx.xowa.xtns.wbases.hwtrs.*;
+public class Wbase_date {
+ public Wbase_date(long year, int month, int day, int hour, int minute, int second, int precision, int before, int after, boolean calendar_is_julian) {
this.year = year; this.month = month; this.day = day; this.hour = hour; this.minute = minute; this.second = second;
this.precision = precision; this.before = before; this.after = after; this.calendar_is_julian = calendar_is_julian;
}
- public long Year() {return year;} private final long year;
- public int Month() {return month;} private final int month;
- public int Day() {return day;} private final int day;
- public int Hour() {return hour;} private final int hour;
- public int Minute() {return minute;} private final int minute;
- public int Second() {return second;} private final int second;
- public int Precision() {return precision;} private final int precision;
- public int Before() {return before;} private final int before;
- public int After() {return after;} private final int after;
- public boolean Calendar_is_julian() {return calendar_is_julian;} private final boolean calendar_is_julian;
- public static Wdata_date parse(byte[] date, int precision, int before, int after, boolean calendar_is_julian) {// EX:+00000002001-02-03T04:05:06Z
+ public long Year() {return year;} private final long year;
+ public int Month() {return month;} private final int month;
+ public int Day() {return day;} private final int day;
+ public int Hour() {return hour;} private final int hour;
+ public int Minute() {return minute;} private final int minute;
+ public int Second() {return second;} private final int second;
+ public int Precision() {return precision;} private final int precision;
+ public int Before() {return before;} private final int before;
+ public int After() {return after;} private final int after;
+ public boolean Calendar_is_julian() {return calendar_is_julian;} private final boolean calendar_is_julian;
+ public static Wbase_date Parse(byte[] date, int precision, int before, int after, boolean calendar_is_julian) {// EX:+00000002001-02-03T04:05:06Z
int year_sign = 1;
switch (date[0]) {
case Byte_ascii.Plus: break;
@@ -47,9 +47,9 @@ public class Wdata_date {
int hour = Bry_.To_int_or(date, year_end + 7, year_end + 9, -1);
int minute = Bry_.To_int_or(date, year_end + 10, year_end + 12, -1);
int second = Bry_.To_int_or(date, year_end + 13, year_end + 15, -1);
- return new Wdata_date(year * year_sign, month, day, hour, minute, second, precision, before, after, calendar_is_julian);
+ return new Wbase_date(year * year_sign, month, day, hour, minute, second, precision, before, after, calendar_is_julian);
}
- public static Wdata_date Xto_julian(Wdata_date date) {
+ public static Wbase_date Xto_julian(Wbase_date date) {
int a = (int)Math_.Floor((14 - date.Month() / 12));
int y = (int)date.Year() + 4800 - a;
int m = date.Month() + 12 * a - 3;
@@ -61,9 +61,9 @@ public class Wdata_date {
int new_y = d - 4800 + (int)Math_.Floor(n / 10);
int new_m = n + 3 - 12 * (int)Math_.Floor(n / 10);
int new_d = e - (int)Math_.Floor((153 * n + 2) / 5) + 1;
- return new Wdata_date(new_y, new_m, new_d, date.Hour(), date.Minute(), date.Second(), date.precision, date.before, date.after, date.calendar_is_julian);
+ return new Wbase_date(new_y, new_m, new_d, date.Hour(), date.Minute(), date.Second(), date.precision, date.before, date.after, date.calendar_is_julian);
}
- public static void Xto_str(Bry_bfr bfr, Bry_fmtr tmp_fmtr, Bry_bfr tmp_bfr, Wdata_hwtr_msgs msgs, Wdata_date date) {
+ public static void Xto_str(Bry_bfr bfr, Bry_fmtr tmp_fmtr, Bry_bfr tmp_bfr, Wdata_hwtr_msgs msgs, Wbase_date date) {
boolean calendar_is_julian = date.calendar_is_julian;
if (calendar_is_julian)
date = Xto_julian(date);
@@ -73,19 +73,19 @@ public class Wdata_date {
int precision = date.precision;
byte[] time_spr = msgs.Sym_time_spr();
switch (precision) {
- case Wdata_date.Fmt_ym: // EX: "Feb 2001"
+ case Wbase_date.Fmt_ym: // EX: "Feb 2001"
bfr.Add(months[months_bgn + date.Month() - List_adp_.Base1]);
bfr.Add_byte_space();
bfr.Add_long_variable(year);
break;
- case Wdata_date.Fmt_ymd: // EX: "3 Feb 2001"
+ case Wbase_date.Fmt_ymd: // EX: "3 Feb 2001"
bfr.Add_int_variable(date.Day());
bfr.Add_byte_space();
bfr.Add(months[months_bgn + date.Month() - List_adp_.Base1]);
bfr.Add_byte_space();
bfr.Add_long_variable(date.Year());
break;
- case Wdata_date.Fmt_ymdh: // EX: "4:00 3 Feb 2011"
+ case Wbase_date.Fmt_ymdh: // EX: "4:00 3 Feb 2011"
bfr.Add_int_variable(date.Hour());
bfr.Add(time_spr);
bfr.Add_int_fixed(0, 2);
@@ -96,7 +96,7 @@ public class Wdata_date {
bfr.Add_byte_space();
bfr.Add_long_variable(date.Year());
break;
- case Wdata_date.Fmt_ymdhn: // EX: "4:05 3 Feb 2011"
+ case Wbase_date.Fmt_ymdhn: // EX: "4:05 3 Feb 2011"
bfr.Add_int_variable(date.Hour());
bfr.Add(time_spr);
bfr.Add_int_fixed(date.Minute(), 2);
@@ -129,7 +129,7 @@ public class Wdata_date {
bfr.Add(msgs.Time_julian());
Xto_str_beforeafter(bfr, tmp_fmtr, tmp_bfr, msgs, date);
}
- private static void Xto_str_beforeafter(Bry_bfr bfr, Bry_fmtr tmp_fmtr, Bry_bfr tmp_bfr, Wdata_hwtr_msgs msgs, Wdata_date date) {
+ private static void Xto_str_beforeafter(Bry_bfr bfr, Bry_fmtr tmp_fmtr, Bry_bfr tmp_bfr, Wdata_hwtr_msgs msgs, Wbase_date date) {
byte[] bry = null;
int before = date.before;
int after = date.after;
@@ -150,7 +150,7 @@ public class Wdata_date {
bfr.Add_byte_space().Add(bry);
}
}
- private static void Xto_str_fmt_y(Bry_bfr bfr, Bry_fmtr tmp_fmtr, Bry_bfr tmp_bfr, Wdata_hwtr_msgs msgs, Wdata_date date, int precision) {
+ private static void Xto_str_fmt_y(Bry_bfr bfr, Bry_fmtr tmp_fmtr, Bry_bfr tmp_bfr, Wdata_hwtr_msgs msgs, Wbase_date date, int precision) {
int year_pow = 9 - precision;
byte[] year_fmt = msgs.Ary()[msgs.Time_year_idx() + year_pow];
long year = date.Year();
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_date_tst.java b/400_xowa/src/gplx/xowa/xtns/wbases/claims/itms/times/Wbase_date_tst.java
similarity index 66%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_date_tst.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/claims/itms/times/Wbase_date_tst.java
index 6a12c2322..2b9fcb019 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_date_tst.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/claims/itms/times/Wbase_date_tst.java
@@ -15,11 +15,11 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.claims.itms.times; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*; import gplx.xowa.xtns.wbases.claims.*; import gplx.xowa.xtns.wbases.claims.itms.*;
import org.junit.*; import gplx.core.brys.fmtrs.*;
-import gplx.langs.jsons.*; import gplx.xowa.xtns.wdatas.core.*; import gplx.xowa.xtns.wdatas.parsers.*; import gplx.xowa.xtns.wdatas.hwtrs.*;
-public class Wdata_date_tst {
- @Before public void init() {fxt.Clear();} private Wdata_date_fxt fxt = new Wdata_date_fxt();
+import gplx.langs.jsons.*; import gplx.xowa.xtns.wbases.core.*; import gplx.xowa.xtns.wbases.parsers.*; import gplx.xowa.xtns.wbases.hwtrs.*;
+public class Wbase_date_tst {
+ @Before public void init() {fxt.Clear();} private Wbase_date_fxt fxt = new Wbase_date_fxt();
@Test public void Parse() {
fxt.Test_parse("+00000002001-02-03T04:05:06Z", 2001, 2, 3, 4, 5, 6);
fxt.Test_parse("-98765432109-02-03T04:05:06Z", -98765432109L, 2, 3, 4, 5, 6);
@@ -29,11 +29,11 @@ public class Wdata_date_tst {
}
@Test public void Xto_str() {
String date = "+00000002001-02-03T04:05:06Z";
- fxt.Test_xto_str(date, Wdata_date.Fmt_ym , "Feb 2001");
- fxt.Test_xto_str(date, Wdata_date.Fmt_ymd , "3 Feb 2001");
- fxt.Test_xto_str(date, Wdata_date.Fmt_ymdh , "4:00 3 Feb 2001");
- fxt.Test_xto_str(date, Wdata_date.Fmt_ymdhn , "4:05 3 Feb 2001");
- fxt.Test_xto_str(date, Wdata_date.Fmt_ymdhns , "4:05:06 3 Feb 2001");
+ fxt.Test_xto_str(date, Wbase_date.Fmt_ym , "Feb 2001");
+ fxt.Test_xto_str(date, Wbase_date.Fmt_ymd , "3 Feb 2001");
+ fxt.Test_xto_str(date, Wbase_date.Fmt_ymdh , "4:00 3 Feb 2001");
+ fxt.Test_xto_str(date, Wbase_date.Fmt_ymdhn , "4:05 3 Feb 2001");
+ fxt.Test_xto_str(date, Wbase_date.Fmt_ymdhns , "4:05:06 3 Feb 2001");
}
@Test public void Xto_str_year() {
fxt.Test_xto_str("+00000001970-01-01T00:00:00Z", 9, "1970");
@@ -45,30 +45,30 @@ public class Wdata_date_tst {
fxt.Test_xto_str("+00000123456-01-01T00:00:00Z", 4, "in 100,000 years");
}
@Test public void Xto_str_julian() {
- fxt.Init_calendar_is_julian_(Bool_.Y).Test_xto_str("+00000001600-01-02T00:00:00Z", Wdata_date.Fmt_ymd, "18 Jan 1600jul");
+ fxt.Init_calendar_is_julian_(Bool_.Y).Test_xto_str("+00000001600-01-02T00:00:00Z", Wbase_date.Fmt_ymd, "18 Jan 1600jul");
}
@Test public void Xto_str_before_after() {
String date = "+00000002001-02-03T04:05:06Z";
- fxt.Clear().Init_before_(1).Test_xto_str(date, Wdata_date.Fmt_ymd, "3 Feb 2001 (-1)");
- fxt.Clear().Init_after_ (1).Test_xto_str(date, Wdata_date.Fmt_ymd, "3 Feb 2001 (+1)");
- fxt.Clear().Init_before_(1).Init_after_(1).Test_xto_str(date, Wdata_date.Fmt_ymd, "3 Feb 2001 (±1)");
- fxt.Clear().Init_before_(1).Init_after_(2).Test_xto_str(date, Wdata_date.Fmt_ymd, "3 Feb 2001 (-1, +2)");
+ fxt.Clear().Init_before_(1).Test_xto_str(date, Wbase_date.Fmt_ymd, "3 Feb 2001 (-1)");
+ fxt.Clear().Init_after_ (1).Test_xto_str(date, Wbase_date.Fmt_ymd, "3 Feb 2001 (+1)");
+ fxt.Clear().Init_before_(1).Init_after_(1).Test_xto_str(date, Wbase_date.Fmt_ymd, "3 Feb 2001 (±1)");
+ fxt.Clear().Init_before_(1).Init_after_(2).Test_xto_str(date, Wbase_date.Fmt_ymd, "3 Feb 2001 (-1, +2)");
}
}
-class Wdata_date_fxt {
+class Wbase_date_fxt {
private Bry_bfr tmp_bfr = Bry_bfr_.New_w_size(16);
private Wdata_hwtr_msgs msgs;
private final Bry_fmtr tmp_time_fmtr = Bry_fmtr.new_(); private final Bry_bfr tmp_time_bfr = Bry_bfr_.New_w_size(32);
- public Wdata_date_fxt Clear() {
+ public Wbase_date_fxt Clear() {
init_before = init_after = 0;
init_calendar_is_julian = false;
return this;
}
- public boolean Init_calendar_is_julian() {return init_calendar_is_julian;} public Wdata_date_fxt Init_calendar_is_julian_(boolean v) {init_calendar_is_julian = v; return this;} private boolean init_calendar_is_julian;
- public int Init_before() {return init_before;} public Wdata_date_fxt Init_before_(int v) {init_before = v; return this;} private int init_before;
- public int Init_after() {return init_after;} public Wdata_date_fxt Init_after_(int v) {init_after = v; return this;} private int init_after;
+ public boolean Init_calendar_is_julian() {return init_calendar_is_julian;} public Wbase_date_fxt Init_calendar_is_julian_(boolean v) {init_calendar_is_julian = v; return this;} private boolean init_calendar_is_julian;
+ public int Init_before() {return init_before;} public Wbase_date_fxt Init_before_(int v) {init_before = v; return this;} private int init_before;
+ public int Init_after() {return init_after;} public Wbase_date_fxt Init_after_(int v) {init_after = v; return this;} private int init_after;
public void Test_parse(String raw, long expd_y, int expd_m, int expd_d, int expd_h, int expd_n, int expd_s) {
- Wdata_date actl_date = Wdata_date.parse(Bry_.new_a7(raw), Wdata_date.Fmt_ymdhns, init_before, init_after, init_calendar_is_julian);
+ Wbase_date actl_date = Wbase_date.Parse(Bry_.new_a7(raw), Wbase_date.Fmt_ymdhns, init_before, init_after, init_calendar_is_julian);
Tfds.Eq(expd_y, actl_date.Year());
Tfds.Eq(expd_m, actl_date.Month());
Tfds.Eq(expd_d, actl_date.Day());
@@ -77,16 +77,16 @@ class Wdata_date_fxt {
Tfds.Eq(expd_s, actl_date.Second());
}
public void Test_julian(int[] orig_ary, int[] expd) {
- Wdata_date orig = new Wdata_date(orig_ary[0], orig_ary[1], orig_ary[2], 0, 0, 0, 0, 0, 0, init_calendar_is_julian);
- Wdata_date actl = Wdata_date.Xto_julian(orig);
+ Wbase_date orig = new Wbase_date(orig_ary[0], orig_ary[1], orig_ary[2], 0, 0, 0, 0, 0, 0, init_calendar_is_julian);
+ Wbase_date actl = Wbase_date.Xto_julian(orig);
Tfds.Eq(expd[0], (int)actl.Year(), "y");
Tfds.Eq(expd[1], actl.Month(), "m");
Tfds.Eq(expd[2], actl.Day(), "d");
}
public void Test_xto_str(String raw, int precision, String expd) {
if (msgs == null) msgs = Wdata_hwtr_msgs.new_en_();
- Wdata_date date = Wdata_date.parse(Bry_.new_a7(raw), precision, init_before, init_after, init_calendar_is_julian);
- Wdata_date.Xto_str(tmp_bfr, tmp_time_fmtr, tmp_time_bfr, msgs, date);
+ Wbase_date date = Wbase_date.Parse(Bry_.new_a7(raw), precision, init_before, init_after, init_calendar_is_julian);
+ Wbase_date.Xto_str(tmp_bfr, tmp_time_fmtr, tmp_time_bfr, msgs, date);
Tfds.Eq(expd, tmp_bfr.To_str_and_clear());
}
}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_alias_itm.java b/400_xowa/src/gplx/xowa/xtns/wbases/core/Wdata_alias_itm.java
similarity index 90%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_alias_itm.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/core/Wdata_alias_itm.java
index 8ab94e7c0..33c7bddd4 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_alias_itm.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/core/Wdata_alias_itm.java
@@ -15,7 +15,7 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
import gplx.langs.jsons.*;
public class Wdata_alias_itm implements Wdata_lang_sortable {
public Wdata_alias_itm(byte[] lang, byte[][] vals) {this.lang = lang; this.vals = vals;}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_dict_claim.java b/400_xowa/src/gplx/xowa/xtns/wbases/core/Wdata_dict_claim.java
similarity index 89%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_dict_claim.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/core/Wdata_dict_claim.java
index 325e15a1c..052277582 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_dict_claim.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/core/Wdata_dict_claim.java
@@ -15,7 +15,7 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
public class Wdata_dict_claim {
public static final byte
Tid_mainsnak = 0
@@ -44,7 +44,7 @@ public class Wdata_dict_claim {
, 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()
+ 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)
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_dict_claim_v1.java b/400_xowa/src/gplx/xowa/xtns/wbases/core/Wdata_dict_claim_v1.java
similarity index 86%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_dict_claim_v1.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/core/Wdata_dict_claim_v1.java
index 285705888..c12a51c86 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_dict_claim_v1.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/core/Wdata_dict_claim_v1.java
@@ -15,7 +15,7 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
public class Wdata_dict_claim_v1 {
public static final String
Str_m = "m"
@@ -24,7 +24,7 @@ public class Wdata_dict_claim_v1 {
, Str_rank = "rank"
, Str_refs = "refs"
;
- public static final byte[]
+ public static final byte[]
Bry_m = Bry_.new_a7(Str_m)
, Bry_q = Bry_.new_a7(Str_q)
, Bry_g = Bry_.new_a7(Str_g)
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_dict_datavalue.java b/400_xowa/src/gplx/xowa/xtns/wbases/core/Wdata_dict_datavalue.java
similarity index 85%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_dict_datavalue.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/core/Wdata_dict_datavalue.java
index 77293b4d5..04bc61a06 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_dict_datavalue.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/core/Wdata_dict_datavalue.java
@@ -15,7 +15,7 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
public class Wdata_dict_datavalue {
public static final byte
Tid_value = 0
@@ -32,7 +32,7 @@ public class Wdata_dict_datavalue {
, 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()
+ 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)
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_dict_langtext.java b/400_xowa/src/gplx/xowa/xtns/wbases/core/Wdata_dict_langtext.java
similarity index 84%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_dict_langtext.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/core/Wdata_dict_langtext.java
index b8582fac5..5dde54700 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_dict_langtext.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/core/Wdata_dict_langtext.java
@@ -15,7 +15,7 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
public class Wdata_dict_langtext {
public static final byte
Tid_language = 0
@@ -29,7 +29,7 @@ public class Wdata_dict_langtext {
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()
+ 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)
;
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_dict_mainsnak.java b/400_xowa/src/gplx/xowa/xtns/wbases/core/Wdata_dict_mainsnak.java
similarity index 81%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_dict_mainsnak.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/core/Wdata_dict_mainsnak.java
index 5fd2e9b5e..eadebe054 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_dict_mainsnak.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/core/Wdata_dict_mainsnak.java
@@ -15,7 +15,7 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
public class Wdata_dict_mainsnak {
public static final byte
Tid_snaktype = 0
@@ -25,15 +25,17 @@ public class Wdata_dict_mainsnak {
, 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("datavalue")
+ , 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()
+ 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)
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_dict_reference.java b/400_xowa/src/gplx/xowa/xtns/wbases/core/Wdata_dict_reference.java
similarity index 90%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_dict_reference.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/core/Wdata_dict_reference.java
index dffa51d27..428d0ebff 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_dict_reference.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/core/Wdata_dict_reference.java
@@ -15,7 +15,7 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
public class Wdata_dict_reference {
public static final byte
Tid_hash = 0
@@ -27,7 +27,7 @@ public class Wdata_dict_reference {
, Str_snaks = "snaks"
, Str_snaks_order = "snaks-order"
;
- public static final byte[]
+ 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)
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_dict_sitelink.java b/400_xowa/src/gplx/xowa/xtns/wbases/core/Wdata_dict_sitelink.java
similarity index 85%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_dict_sitelink.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/core/Wdata_dict_sitelink.java
index 2a0c0720a..14b202862 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_dict_sitelink.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/core/Wdata_dict_sitelink.java
@@ -15,7 +15,7 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
public class Wdata_dict_sitelink {
public static final byte
Tid_site = 0
@@ -32,7 +32,7 @@ public class Wdata_dict_sitelink {
, 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()
+ 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)
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_dict_utl.java b/400_xowa/src/gplx/xowa/xtns/wbases/core/Wdata_dict_utl.java
similarity index 89%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_dict_utl.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/core/Wdata_dict_utl.java
index 5ccba8cf5..8694233cf 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_dict_utl.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/core/Wdata_dict_utl.java
@@ -15,7 +15,7 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
import gplx.core.primitives.*;
public class Wdata_dict_utl {
public static byte Get_tid_or_invalid(byte[] qid, Hash_adp_bry dict, byte[] key) {
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_lang_sortable.java b/400_xowa/src/gplx/xowa/xtns/wbases/core/Wdata_lang_sortable.java
similarity index 86%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_lang_sortable.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/core/Wdata_lang_sortable.java
index 9c77dd642..659d52b83 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_lang_sortable.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/core/Wdata_lang_sortable.java
@@ -15,7 +15,7 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
public interface Wdata_lang_sortable {
byte[] Lang_code();
int Lang_sort(); void Lang_sort_(int v);
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_lang_sorter.java b/400_xowa/src/gplx/xowa/xtns/wbases/core/Wdata_lang_sorter.java
similarity index 95%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_lang_sorter.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/core/Wdata_lang_sorter.java
index d399a11d3..51b08f16b 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_lang_sorter.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/core/Wdata_lang_sorter.java
@@ -15,7 +15,7 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
import gplx.xowa.apps.apis.xowa.xtns.*;
public class Wdata_lang_sorter implements Gfo_evt_itm, gplx.core.lists.ComparerAble {
private Hash_adp_bry hash = Hash_adp_bry.cs();
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_langtext_itm.java b/400_xowa/src/gplx/xowa/xtns/wbases/core/Wdata_langtext_itm.java
similarity index 85%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_langtext_itm.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/core/Wdata_langtext_itm.java
index 49758561f..2be01cfe8 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_langtext_itm.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/core/Wdata_langtext_itm.java
@@ -15,12 +15,12 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
import gplx.langs.jsons.*;
public class Wdata_langtext_itm implements Wdata_lang_sortable {
public Wdata_langtext_itm(byte[] lang, byte[] text) {this.lang = lang; this.text = text;}
- public byte[] Lang() {return lang;} private final byte[] lang;
- public byte[] Text() {return text;} private final byte[] text;
+ public byte[] Lang() {return lang;} private final byte[] lang;
+ public byte[] Text() {return text;} private final byte[] text;
public byte[] Lang_code() {return lang;}
public int Lang_sort() {return lang_sort;} public void Lang_sort_(int v) {lang_sort = v;} private int lang_sort = Wdata_lang_sorter.Sort_null;
@Override public String toString() {// TEST:
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_sitelink_itm.java b/400_xowa/src/gplx/xowa/xtns/wbases/core/Wdata_sitelink_itm.java
similarity index 83%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_sitelink_itm.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/core/Wdata_sitelink_itm.java
index 9eabba0cf..8ef09b7b4 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_sitelink_itm.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/core/Wdata_sitelink_itm.java
@@ -15,14 +15,14 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
import gplx.langs.jsons.*;
import gplx.xowa.wikis.domains.*;
public class Wdata_sitelink_itm implements Wdata_lang_sortable {
public Wdata_sitelink_itm(byte[] site, byte[] name, byte[][] badges) {this.site = site; this.name = name; this.badges = badges;}
- public byte[] Site() {return site;} private final byte[] site;
- public byte[] Name() {return name;} private final byte[] name;
- public byte[][] Badges() {return badges;} private final byte[][] badges;
+ public byte[] Site() {return site;} private final byte[] site;
+ public byte[] Name() {return name;} private final byte[] name;
+ public byte[][] Badges() {return badges;} private final byte[][] badges;
public byte[] Lang() {return lang;} public void Lang_(byte[] v) {lang = v;} private byte[] lang = Bry_.Empty;
public byte[] Lang_code() {return lang;}
public int Lang_sort() {return lang_sort;} public void Lang_sort_(int v) {lang_sort = v;} private int lang_sort = Wdata_lang_sorter.Sort_null;
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_fmtr__claim_grp.java b/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_fmtr__claim_grp.java
similarity index 88%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_fmtr__claim_grp.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_fmtr__claim_grp.java
index 6660bbad3..32f7f2ab4 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_fmtr__claim_grp.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_fmtr__claim_grp.java
@@ -15,9 +15,10 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.hwtrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.hwtrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
import gplx.core.brys.fmtrs.*;
-import gplx.xowa.xtns.wdatas.core.*; import gplx.xowa.apps.apis.xowa.html.*;
+import gplx.xowa.xtns.wbases.core.*; import gplx.xowa.xtns.wbases.claims.*; import gplx.xowa.xtns.wbases.claims.enums.*; import gplx.xowa.xtns.wbases.claims.itms.*;
+import gplx.xowa.apps.apis.xowa.html.*;
class Wdata_fmtr__claim_grp implements gplx.core.brys.Bfr_arg {
private Wdata_fmtr__claim_tbl fmtr_tbl = new Wdata_fmtr__claim_tbl(); private boolean is_empty;
private Xoapi_toggle_itm toggle_itm;
@@ -63,7 +64,7 @@ class Wdata_fmtr__claim_tbl implements gplx.core.brys.Bfr_arg {
public void Bfr_arg__add(Bry_bfr bfr) {
int len = list.Count();
for (int i = 0; i < len; ++i) {
- Wdata_claim_grp grp = (Wdata_claim_grp)list.Get_at(i);
+ Wbase_claim_grp grp = (Wbase_claim_grp)list.Get_at(i);
if (grp.Len() == 0) continue; // NOTE: group will be empty when claims are empty; EX: "claims": []; PAGE:wd.p:585; DATE:2014-10-03
int pid = grp.Id();
byte[] pid_lbl = lbl_mgr.Get_text__pid(pid);
@@ -88,7 +89,7 @@ class Wdata_fmtr__claim_row implements gplx.core.brys.Bfr_arg {
private Wdata_fmtr__qual_tbl fmtr_qual = new Wdata_fmtr__qual_tbl();
private Wdata_fmtr__ref_tbl fmtr_ref = new Wdata_fmtr__ref_tbl();
private Wdata_lbl_mgr lbl_mgr; private Wdata_hwtr_msgs msgs;
- private Wdata_claim_grp claim_grp; private Bry_bfr tmp_bfr = Bry_bfr_.Reset(255);
+ private Wbase_claim_grp claim_grp; private Bry_bfr tmp_bfr = Bry_bfr_.Reset(255);
public void Init_by_ctor(Wdata_lbl_mgr lbl_mgr) {
this.lbl_mgr = lbl_mgr;
fmtr_qual.Init_by_ctor(lbl_mgr);
@@ -99,19 +100,19 @@ class Wdata_fmtr__claim_row implements gplx.core.brys.Bfr_arg {
fmtr_qual.Init_by_lang(msgs);
fmtr_ref.Init_by_lang(msgs);
}
- public void Init_by_grp(byte[] ttl, Wdata_claim_grp claim_grp) {
+ public void Init_by_grp(byte[] ttl, Wbase_claim_grp claim_grp) {
this.ttl = ttl; this.claim_grp = claim_grp;
}
public void Bfr_arg__add(Bry_bfr bfr) {
int len = claim_grp.Len();
claim_html_wtr.Init(ttl, tmp_bfr, msgs, lbl_mgr);
for (int i = 0; i < len; ++i) {
- Wdata_claim_itm_core itm = claim_grp.Get_at(i);
+ Wbase_claim_base itm = claim_grp.Get_at(i);
itm.Welcome(claim_html_wtr);
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, Wdata_dict_rank.Xto_str(itm.Rank_tid()), val, fmtr_qual, fmtr_ref);
+ row_fmtr.Bld_bfr_many(bfr, Wbase_claim_rank_.To_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
@@ -145,12 +146,12 @@ class Wdata_fmtr__claim_row implements gplx.core.brys.Bfr_arg {
);
}
class Wdata_fmtr__qual_tbl implements gplx.core.brys.Bfr_arg {
- private Wdata_fmtr__qual_row fmtr_row = new Wdata_fmtr__qual_row(); private Wdata_claim_itm_core claim;
+ private Wdata_fmtr__qual_row fmtr_row = new Wdata_fmtr__qual_row(); private Wbase_claim_base claim;
public void Init_by_ctor(Wdata_lbl_mgr lbl_mgr) {fmtr_row.Init_by_ctor(lbl_mgr);}
public void Init_by_lang(Wdata_hwtr_msgs msgs) {
fmtr_row.Init_by_lang(msgs);
}
- public void Init_by_claim(byte[] ttl, Wdata_claim_itm_core claim) {
+ public void Init_by_claim(byte[] ttl, Wbase_claim_base claim) {
this.claim = claim;
fmtr_row.Init_by_grp(ttl, claim.Qualifiers());
}
@@ -169,18 +170,18 @@ class Wdata_fmtr__qual_tbl implements gplx.core.brys.Bfr_arg {
class Wdata_fmtr__qual_row implements gplx.core.brys.Bfr_arg {
private byte[] ttl; private Wdata_visitor__html_wtr claim_html_wtr = new Wdata_visitor__html_wtr();
private Wdata_lbl_mgr lbl_mgr; private Wdata_hwtr_msgs msgs;
- private Wdata_claim_grp_list quals; private Bry_bfr tmp_bfr = Bry_bfr_.Reset(255);
+ private Wbase_claim_grp_list quals; private Bry_bfr tmp_bfr = Bry_bfr_.Reset(255);
public void Init_by_ctor(Wdata_lbl_mgr lbl_mgr) {this.lbl_mgr = lbl_mgr;}
public void Init_by_lang(Wdata_hwtr_msgs msgs) {this.msgs = msgs;}
- public void Init_by_grp(byte[] ttl, Wdata_claim_grp_list quals) {this.ttl = ttl; this.quals = quals;}
+ public void Init_by_grp(byte[] ttl, Wbase_claim_grp_list quals) {this.ttl = ttl; this.quals = quals;}
public void Bfr_arg__add(Bry_bfr bfr) {
int len = quals.Len();
claim_html_wtr.Init(ttl, tmp_bfr, msgs, lbl_mgr);
for (int i = 0; i < len; ++i) {
- Wdata_claim_grp grp = quals.Get_at(i);
+ Wbase_claim_grp grp = quals.Get_at(i);
int grp_len = grp.Len();
for (int j = 0; j < grp_len; ++j) {
- Wdata_claim_itm_core itm = grp.Get_at(j);
+ Wbase_claim_base itm = grp.Get_at(j);
itm.Welcome(claim_html_wtr);
byte[] val = tmp_bfr.To_bry_and_clear();
row_fmtr.Bld_bfr_many(bfr, grp.Id(), lbl_mgr.Get_text__pid(grp.Id()), val);
@@ -209,12 +210,12 @@ class Wdata_fmtr__qual_row implements gplx.core.brys.Bfr_arg {
);
}
class Wdata_fmtr__ref_tbl implements gplx.core.brys.Bfr_arg {
- private Wdata_fmtr__ref_row fmtr_row = new Wdata_fmtr__ref_row(); private Wdata_claim_itm_core claim;
+ private Wdata_fmtr__ref_row fmtr_row = new Wdata_fmtr__ref_row(); private Wbase_claim_base claim;
public void Init_by_ctor(Wdata_lbl_mgr lbl_mgr) {fmtr_row.Init_by_ctor(lbl_mgr);}
public void Init_by_lang(Wdata_hwtr_msgs msgs) {
fmtr_row.Init_by_lang(msgs);
}
- public void Init_by_claim(byte[] ttl, Wdata_claim_itm_core claim) {
+ public void Init_by_claim(byte[] ttl, Wbase_claim_base claim) {
this.claim = claim;
fmtr_row.Init_by_grp(ttl, claim.References());
}
@@ -244,22 +245,22 @@ class Wdata_fmtr__ref_row implements gplx.core.brys.Bfr_arg {
private byte[] ttl; private Wdata_visitor__html_wtr claim_html_wtr = new Wdata_visitor__html_wtr();
private Wdata_lbl_mgr lbl_mgr; private Wdata_hwtr_msgs msgs;
private Bry_bfr tmp_bfr = Bry_bfr_.Reset(255);
- private Wdata_references_grp[] ref_grps;
+ private Wbase_references_grp[] ref_grps;
public void Init_by_ctor(Wdata_lbl_mgr lbl_mgr) {this.lbl_mgr = lbl_mgr;}
public void Init_by_lang(Wdata_hwtr_msgs msgs) {this.msgs = msgs;}
- public void Init_by_grp(byte[] ttl, Wdata_references_grp[] ref_grps) {this.ttl = ttl; this.ref_grps = ref_grps;}
+ public void Init_by_grp(byte[] ttl, Wbase_references_grp[] ref_grps) {this.ttl = ttl; this.ref_grps = ref_grps;}
public void Bfr_arg__add(Bry_bfr bfr) {
int len = ref_grps.length;
claim_html_wtr.Init(ttl, tmp_bfr, msgs, lbl_mgr);
for (int i = 0; i < len; ++i) {
- Wdata_references_grp grp_itm = ref_grps[i];
- Wdata_claim_grp_list grp = grp_itm.References();
+ Wbase_references_grp grp_itm = ref_grps[i];
+ Wbase_claim_grp_list grp = grp_itm.References();
int grp_len = grp.Len();
for (int j = 0; j < grp_len; ++j) {
- Wdata_claim_grp grp2 = grp.Get_at(j);
+ Wbase_claim_grp grp2 = grp.Get_at(j);
int grp2_len = grp2.Len();
for (int k = 0; k < grp2_len; ++k) {
- Wdata_claim_itm_core itm = grp2.Get_at(k);
+ Wbase_claim_base itm = grp2.Get_at(k);
itm.Welcome(claim_html_wtr);
byte[] val = tmp_bfr.To_bry_and_clear();
row_fmtr.Bld_bfr_many(bfr, grp2.Id(), lbl_mgr.Get_text__pid(grp2.Id()), val);
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_fmtr__json.java b/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_fmtr__json.java
similarity index 93%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_fmtr__json.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_fmtr__json.java
index 49dcafce1..331248348 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_fmtr__json.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_fmtr__json.java
@@ -15,7 +15,7 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.hwtrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.hwtrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
import gplx.core.brys.fmtrs.*;
import gplx.langs.jsons.*; import gplx.xowa.htmls.*; import gplx.xowa.apps.apis.xowa.html.*;
class Wdata_fmtr__json implements gplx.core.brys.Bfr_arg {
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_fmtr__langtext_tbl.java b/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_fmtr__langtext_tbl.java
similarity index 95%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_fmtr__langtext_tbl.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_fmtr__langtext_tbl.java
index dfcd486c3..c856e07df 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_fmtr__langtext_tbl.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_fmtr__langtext_tbl.java
@@ -15,10 +15,10 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.hwtrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.hwtrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
import gplx.core.brys.fmtrs.*;
import gplx.langs.htmls.*;
-import gplx.xowa.langs.*; import gplx.xowa.wikis.*; import gplx.xowa.xtns.wdatas.core.*; import gplx.xowa.apps.apis.xowa.html.*;
+import gplx.xowa.langs.*; import gplx.xowa.wikis.*; import gplx.xowa.xtns.wbases.core.*; import gplx.xowa.apps.apis.xowa.html.*;
class Wdata_fmtr__langtext_tbl implements gplx.core.brys.Bfr_arg {
private Wdata_toc_data toc_data; private Wdata_lang_sorter lang_sorter; private Xoapi_toggle_itm toggle_itm; private Wdata_fmtr__langtext_row fmtr_row;
private byte[] col_hdr_lang_name, col_hdr_lang_code, col_hdr_text; private int list_len;
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_fmtr__oview_tbl.java b/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_fmtr__oview_tbl.java
similarity index 93%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_fmtr__oview_tbl.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_fmtr__oview_tbl.java
index e5d96553b..f33b790bc 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_fmtr__oview_tbl.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_fmtr__oview_tbl.java
@@ -15,10 +15,10 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.hwtrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.hwtrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
import gplx.core.brys.fmtrs.*;
import gplx.langs.htmls.encoders.*;
-import gplx.xowa.xtns.wdatas.core.*; import gplx.xowa.apps.apis.xowa.xtns.*;
+import gplx.xowa.xtns.wbases.core.*; import gplx.xowa.apps.apis.xowa.xtns.*;
class Wdata_fmtr__oview_tbl implements gplx.core.brys.Bfr_arg {
private Xoapi_wikibase wikibase_api; private Gfo_url_encoder href_encoder;
private Wdata_fmtr__oview_alias_itm fmtr_aliases = new Wdata_fmtr__oview_alias_itm();
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_fmtr__slink.java b/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_fmtr__slink.java
similarity index 86%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_fmtr__slink.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_fmtr__slink.java
index 235af9325..4a68ca923 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_fmtr__slink.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_fmtr__slink.java
@@ -15,13 +15,13 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.hwtrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.hwtrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
import gplx.core.brys.fmtrs.*;
import gplx.langs.htmls.encoders.*; import gplx.langs.htmls.*;
-import gplx.xowa.langs.*; import gplx.xowa.xtns.wdatas.core.*;
+import gplx.xowa.langs.*; import gplx.xowa.xtns.wbases.core.*;
import gplx.xowa.wikis.domains.*; import gplx.xowa.apps.apis.xowa.html.*; import gplx.xowa.wikis.xwikis.*;
class Wdata_fmtr__slink_grp implements gplx.core.brys.Bfr_arg {
- private final Wdata_fmtr__slink_tbl fmtr_tbl = new Wdata_fmtr__slink_tbl(); private boolean is_empty;
+ private final Wdata_fmtr__slink_tbl fmtr_tbl = new Wdata_fmtr__slink_tbl(); private boolean is_empty;
public void Init_by_ctor(Wdata_lang_sorter lang_sorter, Xoapi_toggle_mgr toggle_mgr, Wdata_lbl_mgr lbl_regy, Gfo_url_encoder href_encoder, Wdata_fmtr__toc_div fmtr_toc, Xow_xwiki_mgr xwiki_mgr) {
fmtr_tbl.Init_by_ctor(lang_sorter, toggle_mgr, lbl_regy, href_encoder, fmtr_toc, xwiki_mgr);
}
@@ -34,7 +34,7 @@ class Wdata_fmtr__slink_grp implements gplx.core.brys.Bfr_arg {
if (is_empty) return;
fmtr.Bld_bfr_many(bfr, fmtr_tbl);
}
- private final Bry_fmtr fmtr = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last
+ private final Bry_fmtr fmtr = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last
( ""
, "
"
, "
~{grps}"
@@ -44,8 +44,8 @@ class Wdata_fmtr__slink_grp implements gplx.core.brys.Bfr_arg {
);
}
class Wdata_fmtr__slink_tbl implements gplx.core.brys.Bfr_arg {
- private final Wdata_fmtr__slink_row fmtr_row = new Wdata_fmtr__slink_row();
- private final Wdata_slink_grp[] grps = new Wdata_slink_grp[Wdata_slink_grp.Idx__len];
+ private final Wdata_fmtr__slink_row fmtr_row = new Wdata_fmtr__slink_row();
+ private final Wdata_slink_grp[] grps = new Wdata_slink_grp[Wdata_slink_grp.Idx__len];
private Wdata_lang_sorter lang_sorter; private Wdata_hwtr_msgs msgs;
public void Init_by_ctor(Wdata_lang_sorter lang_sorter, Xoapi_toggle_mgr toggle_mgr, Wdata_lbl_mgr lbl_regy, Gfo_url_encoder href_encoder, Wdata_fmtr__toc_div fmtr_toc, Xow_xwiki_mgr xwiki_mgr) {
this.lang_sorter = lang_sorter;
@@ -85,7 +85,7 @@ class Wdata_fmtr__slink_tbl implements gplx.core.brys.Bfr_arg {
fmtr.Bld_bfr_many(bfr, grp.Toc_data().Href(), grp.Toc_data().Text(), msgs.Langtext_col_lang_name(), msgs.Langtext_col_lang_code(), msgs.Slink_col_hdr_text(), toggle_itm.Html_toggle_btn(), toggle_itm.Html_toggle_hdr(), fmtr_row);
}
}
- private final Bry_fmtr fmtr = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last
+ private final Bry_fmtr fmtr = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last
( ""
, "
"
, "
"
@@ -100,7 +100,7 @@ class Wdata_fmtr__slink_tbl implements gplx.core.brys.Bfr_arg {
);
}
class Wdata_fmtr__slink_row implements gplx.core.brys.Bfr_arg {
- private final Wdata_fmtr__slink_badges fmtr_badges = new Wdata_fmtr__slink_badges(); private Xow_xwiki_mgr xwiki_mgr;
+ private final Wdata_fmtr__slink_badges fmtr_badges = new Wdata_fmtr__slink_badges(); private Xow_xwiki_mgr xwiki_mgr;
private Gfo_url_encoder href_encoder; private Ordered_hash list;
public void Init_by_ctor(Wdata_lbl_mgr lbl_regy, Gfo_url_encoder href_encoder, Xow_xwiki_mgr xwiki_mgr) {
this.href_encoder = href_encoder; this.xwiki_mgr = xwiki_mgr;
@@ -123,8 +123,8 @@ class Wdata_fmtr__slink_row implements gplx.core.brys.Bfr_arg {
fmtr_row.Bld_bfr_many(bfr, lang_name, lang_key, wmf_key, href_site, domain_bry, href_encoder.Encode(page_name), Gfh_utl.Escape_html_as_bry(itm.Name()), fmtr_badges);
}
}
- private static final byte[] Href_site_xowa = Bry_.new_a7("/site/"), Href_site_http = Bry_.new_a7("https://");
- private final Bry_fmtr fmtr_row = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last
+ private static final byte[] Href_site_xowa = Bry_.new_a7("/site/"), Href_site_http = Bry_.new_a7("https://");
+ private final Bry_fmtr fmtr_row = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last
( ""
, "
" // wikibase-sitelinkview-~{wmf_key} data-wb-siteid='~{wmf_key}'
, " "
@@ -159,7 +159,7 @@ class Wdata_fmtr__slink_badges implements gplx.core.brys.Bfr_arg {
fmtr_row.Bld_bfr_many(bfr, ttl, cls, name);
}
}
- private final Bry_fmtr fmtr_row = Bry_fmtr.new_
+ private final Bry_fmtr fmtr_row = Bry_fmtr.new_
( "\n "
, "ttl", "cls", "name"
);
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_fmtr__toc_div.java b/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_fmtr__toc_div.java
similarity index 93%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_fmtr__toc_div.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_fmtr__toc_div.java
index 85e5454b8..84bcc4fa0 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_fmtr__toc_div.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_fmtr__toc_div.java
@@ -15,7 +15,7 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.hwtrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.hwtrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
import gplx.core.brys.fmtrs.*;
import gplx.langs.htmls.encoders.*;
import gplx.xowa.wikis.pages.wtxts.*;
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_hwtr_mgr.java b/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_hwtr_mgr.java
similarity index 95%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_hwtr_mgr.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_hwtr_mgr.java
index de5821ddb..676e4074c 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_hwtr_mgr.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_hwtr_mgr.java
@@ -15,10 +15,10 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.hwtrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.hwtrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
import gplx.core.brys.fmtrs.*;
import gplx.langs.htmls.encoders.*;
-import gplx.xowa.xtns.wdatas.core.*; import gplx.xowa.apps.apis.xowa.html.*; import gplx.xowa.wikis.xwikis.*; import gplx.xowa.apps.apis.xowa.xtns.*;
+import gplx.xowa.xtns.wbases.core.*; import gplx.xowa.apps.apis.xowa.html.*; import gplx.xowa.wikis.xwikis.*; import gplx.xowa.apps.apis.xowa.xtns.*;
public class Wdata_hwtr_mgr {
private final Bry_bfr bfr = Bry_bfr_.Reset(Io_mgr.Len_mb);
@gplx.Internal protected Wdata_fmtr__toc_div Fmtr_toc() {return fmtr_toc;} private final Wdata_fmtr__toc_div fmtr_toc = new Wdata_fmtr__toc_div();
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_hwtr_mgr_tst.java b/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_hwtr_mgr_tst.java
similarity index 93%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_hwtr_mgr_tst.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_hwtr_mgr_tst.java
index 2b17c3331..b8d7e5738 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_hwtr_mgr_tst.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_hwtr_mgr_tst.java
@@ -15,9 +15,10 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.hwtrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.hwtrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
import org.junit.*;
-import gplx.langs.jsons.*; import gplx.langs.htmls.encoders.*; import gplx.xowa.xtns.wdatas.core.*; import gplx.xowa.xtns.wdatas.parsers.*; import gplx.xowa.apps.apis.xowa.html.*; import gplx.xowa.wikis.xwikis.*; import gplx.xowa.apps.apis.xowa.xtns.*;
+import gplx.langs.jsons.*; import gplx.langs.htmls.encoders.*;
+import gplx.xowa.xtns.wbases.core.*; import gplx.xowa.xtns.wbases.claims.*; import gplx.xowa.xtns.wbases.claims.itms.*; import gplx.xowa.xtns.wbases.parsers.*; import gplx.xowa.apps.apis.xowa.html.*; import gplx.xowa.wikis.xwikis.*; import gplx.xowa.apps.apis.xowa.xtns.*;
public class Wdata_hwtr_mgr_tst {
@Before public void init() {fxt.init();} private Wdata_hwtr_mgr_fxt fxt = new Wdata_hwtr_mgr_fxt();
@Test public void Stub() {}
@@ -238,7 +239,7 @@ public class Wdata_hwtr_mgr_tst {
// .Init_resolved_pid(1, "prop_1")
// .Test_doc(fxt.Wdoc_bldr()
// .Add_claims
-// ( mkr.Make_claim_str(1, "abc").Qualifiers_(mkr.Make_qualifiers(mkr.Make_qualifiers_grp(2, mkr.Make_claim_str(2, "qual_2"))))
+// ( mkr.Make_claim_string(1, "abc").Qualifiers_(mkr.Make_qualifiers(mkr.Make_qualifiers_grp(2, mkr.Make_claim_string(2, "qual_2"))))
// ).Xto_wdoc(), String_.Concat_lines_nl_skip_last
// ( ""
// , "
Claims
"
@@ -304,7 +305,7 @@ class Wdata_hwtr_mgr_fxt {
byte[] actl = doc_hwtr.Write(wdoc);
Tfds.Eq_str_lines(expd, String_.new_u8(actl));
}
- public void Test_claim_val(Wdata_claim_itm_core claim, String expd) {
+ public void Test_claim_val(Wbase_claim_base claim, String expd) {
doc_hwtr.Init_by_wdoc(wdoc_bldr.Add_claims(claim).Xto_wdoc());
Bry_bfr tmp_bfr = Bry_bfr_.New();
Wdata_visitor__html_wtr html_wtr = new Wdata_visitor__html_wtr().Init(Bry_.Empty, tmp_bfr, doc_hwtr.Msgs(), doc_hwtr.Lbl_mgr());
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_hwtr_msgs.java b/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_hwtr_msgs.java
similarity index 97%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_hwtr_msgs.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_hwtr_msgs.java
index 9ff286b5e..c65969ae7 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_hwtr_msgs.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_hwtr_msgs.java
@@ -15,7 +15,7 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.hwtrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.hwtrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
import gplx.core.brys.fmtrs.*;
import gplx.xowa.langs.msgs.*;
import gplx.xowa.wikis.domains.*;
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_lbl_itm.java b/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_lbl_itm.java
similarity index 75%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_lbl_itm.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_lbl_itm.java
index 1b3b1e2b9..8eed76cd0 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_lbl_itm.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_lbl_itm.java
@@ -15,16 +15,16 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.hwtrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
-import gplx.xowa.xtns.wdatas.core.*;
+package gplx.xowa.xtns.wbases.hwtrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
+import gplx.xowa.xtns.wbases.core.*;
public class Wdata_lbl_itm {
public Wdata_lbl_itm(boolean is_pid, int id, boolean text_en_enabled) {
this.is_pid = is_pid; this.id = id; this.text_en_enabled = text_en_enabled;
this.ttl = Make_ttl(is_pid, id);
}
- public boolean Is_pid() {return is_pid;} private final boolean is_pid;
- public int Id() {return id;} private final int id;
- public byte[] Ttl() {return ttl;} private final byte[] ttl;
+ public boolean Is_pid() {return is_pid;} private final boolean is_pid;
+ public int Id() {return id;} private final int id;
+ public byte[] Ttl() {return ttl;} private final byte[] ttl;
public byte[] Lang() {return lang;} private byte[] lang;
public byte[] Text() {return text;} private byte[] text;
public byte[] Text_en() {return text_en;} public void Text_en_(byte[] v) {text_en = v;} private byte[] text_en = Bry_.Empty;
@@ -36,8 +36,8 @@ public class Wdata_lbl_itm {
: Bry_.Add(Ttl_prefix_qid, Int_.To_bry(id))
;
}
- private static final byte[] Ttl_prefix_pid = Bry_.new_a7("Property:P"), Ttl_prefix_qid = Bry_.new_a7("Q");
- private static final byte[] Extract_ttl_qid = Bry_.new_a7("http://www.wikidata.org/entity/");
+ private static final byte[] Ttl_prefix_pid = Bry_.new_a7("Property:P"), Ttl_prefix_qid = Bry_.new_a7("Q");
+ private static final byte[] Extract_ttl_qid = Bry_.new_a7("http://www.wikidata.org/entity/");
public static byte[] Extract_ttl(byte[] href) {
if (Bry_.Has_at_bgn(href, Extract_ttl_qid)) // qid
return Bry_.Mid(href, Extract_ttl_qid.length, href.length);
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_lbl_mgr.java b/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_lbl_mgr.java
similarity index 85%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_lbl_mgr.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_lbl_mgr.java
index 1fe647928..6d005bfa7 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_lbl_mgr.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_lbl_mgr.java
@@ -15,9 +15,9 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.hwtrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.hwtrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
import gplx.core.primitives.*;
-import gplx.xowa.xtns.wdatas.core.*;
+import gplx.xowa.xtns.wbases.core.*; import gplx.xowa.xtns.wbases.claims.*; import gplx.xowa.xtns.wbases.claims.itms.*;
public class Wdata_lbl_mgr {
private Hash_adp_bry ttl_hash = Hash_adp_bry.ci_a7();
private Hash_adp qid_hash = Hash_adp_.New(), pid_hash = Hash_adp_.New(); private Int_obj_ref int_hash_key = Int_obj_ref.New_neg1();
@@ -79,37 +79,37 @@ public class Wdata_lbl_mgr {
Ordered_hash claim_list = wdoc.Claim_list();
int len = claim_list.Count();
for (int i = 0; i < len; ++i) {
- Wdata_claim_grp grp = (Wdata_claim_grp)claim_list.Get_at(i);
+ Wbase_claim_grp grp = (Wbase_claim_grp)claim_list.Get_at(i);
int grp_len = grp.Len();
for (int j = 0; j < grp_len; ++j) {
- Wdata_claim_itm_core itm = (Wdata_claim_itm_core)grp.Get_at(j);
+ Wbase_claim_base itm = (Wbase_claim_base)grp.Get_at(j);
this.Queue_if_missing__pid(itm.Pid());
itm.Welcome(lbl_gatherer);
- Wdata_claim_grp_list qual_list = itm.Qualifiers();
+ Wbase_claim_grp_list qual_list = itm.Qualifiers();
if (qual_list != null) {
int qual_list_len = qual_list.Len();
for (int k = 0; k < qual_list_len; ++k) {
- Wdata_claim_grp qual_grp = qual_list.Get_at(k);
+ Wbase_claim_grp qual_grp = qual_list.Get_at(k);
int qual_grp_len = qual_grp.Len();
for (int m = 0; m < qual_grp_len; ++m) {
- Wdata_claim_itm_base qual = qual_grp.Get_at(m);
+ Wbase_claim_base qual = qual_grp.Get_at(m);
this.Queue_if_missing__pid(qual.Pid());
qual.Welcome(lbl_gatherer);
}
}
}
- Wdata_references_grp[] ref_grp_ary = itm.References();
+ Wbase_references_grp[] ref_grp_ary = itm.References();
if (ref_grp_ary != null) {
int ref_grp_ary_len = ref_grp_ary.length;
for (int k = 0; k < ref_grp_ary_len; ++k) {
- Wdata_references_grp ref_grp = ref_grp_ary[k];
- Wdata_claim_grp_list ref_list = ref_grp.References();
+ Wbase_references_grp ref_grp = ref_grp_ary[k];
+ Wbase_claim_grp_list ref_list = ref_grp.References();
int ref_list_len = ref_list.Len();
for (int m = 0; m < ref_list_len; ++m) {
- Wdata_claim_grp claim_grp = ref_list.Get_at(m);
+ Wbase_claim_grp claim_grp = ref_list.Get_at(m);
int claim_grp_len = claim_grp.Len();
for (int n = 0; n < claim_grp_len; ++n) {
- Wdata_claim_itm_core claim = claim_grp.Get_at(n);
+ Wbase_claim_base claim = claim_grp.Get_at(n);
this.Queue_if_missing__pid(claim.Pid());
claim.Welcome(lbl_gatherer);
}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_lbl_wkr.java b/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_lbl_wkr.java
similarity index 82%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_lbl_wkr.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_lbl_wkr.java
index 956d20dc2..4bc6ef5ba 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_lbl_wkr.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_lbl_wkr.java
@@ -15,8 +15,8 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.hwtrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
-import gplx.xowa.xtns.wdatas.core.*;
+package gplx.xowa.xtns.wbases.hwtrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
+import gplx.xowa.xtns.wbases.core.*;
public interface Wdata_lbl_wkr {
void Resolve(Wdata_lbl_mgr lbl_mgr, Wdata_lang_sorter sorter);
}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_lbl_wkr_wiki.java b/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_lbl_wkr_wiki.java
similarity index 90%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_lbl_wkr_wiki.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_lbl_wkr_wiki.java
index 3ab9d06b4..4cbb165c4 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_lbl_wkr_wiki.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_lbl_wkr_wiki.java
@@ -15,9 +15,9 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.hwtrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.hwtrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
import gplx.xowa.langs.*;
-import gplx.xowa.xtns.wdatas.core.*; import gplx.xowa.apps.apis.xowa.xtns.*;
+import gplx.xowa.xtns.wbases.core.*; import gplx.xowa.apps.apis.xowa.xtns.*;
public class Wdata_lbl_wkr_wiki implements Wdata_lbl_wkr {
private Wdata_wiki_mgr wdata_mgr;
private Xoapi_wikibase wikibase_api;
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_slink_grp.java b/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_slink_grp.java
similarity index 84%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_slink_grp.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_slink_grp.java
index 1bfda90f9..2d4a67173 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_slink_grp.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_slink_grp.java
@@ -15,18 +15,18 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.hwtrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
-import gplx.xowa.xtns.wdatas.core.*; import gplx.xowa.apps.apis.xowa.html.*;
+package gplx.xowa.xtns.wbases.hwtrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
+import gplx.xowa.xtns.wbases.core.*; import gplx.xowa.apps.apis.xowa.html.*;
import gplx.xowa.wikis.domains.*;
class Wdata_slink_grp {
public Wdata_slink_grp(int tid, byte[] wiki_name, Xoapi_toggle_itm toggle_itm, Wdata_toc_data toc_data) {
this.tid = tid; this.wiki_name = wiki_name; this.toggle_itm = toggle_itm; this.toc_data = toc_data;
}
- public int Tid() {return tid;} private final int tid;
- public byte[] Wiki_name() {return wiki_name;} private final byte[] wiki_name;
- public Wdata_toc_data Toc_data() {return toc_data;} private final Wdata_toc_data toc_data;
+ public int Tid() {return tid;} private final int tid;
+ public byte[] Wiki_name() {return wiki_name;} private final byte[] wiki_name;
+ public Wdata_toc_data Toc_data() {return toc_data;} private final Wdata_toc_data toc_data;
public Xoapi_toggle_itm Toggle_itm() {return toggle_itm;} private Xoapi_toggle_itm toggle_itm;
- public Ordered_hash Rows() {return rows;} private final Ordered_hash rows = Ordered_hash_.New();
+ public Ordered_hash Rows() {return rows;} private final Ordered_hash rows = Ordered_hash_.New();
public static void Sift(Wdata_slink_grp[] rv, Ordered_hash list) {
for (int i = 0; i < Idx__len; ++i)
rv[i].Rows().Clear();
@@ -79,5 +79,5 @@ class Wdata_slink_grp {
}
}
public static final int Idx__len = 9, Idx_w = 0, Idx_d = 1, Idx_s = 2, Idx_v = 3, Idx_q = 4, Idx_b = 5, Idx_u = 6, Idx_n = 7, Idx_x = 8;
- private static final byte[] Name_special = Bry_.new_a7("special");
+ private static final byte[] Name_special = Bry_.new_a7("special");
}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_toc_data.java b/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_toc_data.java
similarity index 92%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_toc_data.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_toc_data.java
index fcfb6e400..b62aa6d6f 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_toc_data.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_toc_data.java
@@ -15,7 +15,7 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.hwtrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.hwtrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
import gplx.core.brys.fmtrs.*;
import gplx.langs.htmls.encoders.*;
class Wdata_toc_data {
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_visitor__html_wtr.java b/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_visitor__html_wtr.java
similarity index 78%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_visitor__html_wtr.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_visitor__html_wtr.java
index 76a814cc4..4eaa2922e 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_visitor__html_wtr.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_visitor__html_wtr.java
@@ -15,20 +15,20 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.hwtrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.hwtrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
import gplx.core.brys.fmtrs.*;
-import gplx.xowa.xtns.wdatas.core.*;
-class Wdata_visitor__html_wtr implements Wdata_claim_visitor {
+import gplx.xowa.xtns.wbases.core.*; import gplx.xowa.xtns.wbases.claims.*; import gplx.xowa.xtns.wbases.claims.enums.*; import gplx.xowa.xtns.wbases.claims.itms.*;
+class Wdata_visitor__html_wtr implements Wbase_claim_visitor {
private byte[] ttl; private Bry_bfr tmp_bfr; private Wdata_hwtr_msgs msgs; private Wdata_lbl_mgr lbl_mgr;
private final Bry_fmtr tmp_time_fmtr = Bry_fmtr.new_(); private final Bry_bfr tmp_time_bfr = Bry_bfr_.New_w_size(32);
public Wdata_visitor__html_wtr Init(byte[] ttl, Bry_bfr tmp_bfr, Wdata_hwtr_msgs msgs, Wdata_lbl_mgr lbl_mgr) {
this.ttl = ttl; this.tmp_bfr = tmp_bfr; this.msgs = msgs; this.lbl_mgr = lbl_mgr;
return this;
}
- public void Visit_str(Wdata_claim_itm_str itm) {
+ public void Visit_str(Wbase_claim_string itm) {
tmp_bfr.Add(itm.Val_str());
}
- public void Visit_entity(Wdata_claim_itm_entity itm) {
+ public void Visit_entity(Wbase_claim_entity itm) {
int entity_id = itm.Entity_id();
byte[] text = itm.Entity_tid_is_qid() ? lbl_mgr.Get_text__qid(entity_id) : lbl_mgr.Get_text__pid(entity_id);
if (text == null) {// handle incomplete wikidata dumps; DATE:2015-06-11
@@ -37,11 +37,11 @@ class Wdata_visitor__html_wtr implements Wdata_claim_visitor {
}
Wdata_hwtr_mgr.Write_link_wikidata(tmp_bfr, itm.Page_ttl_gui(), text);
}
- public void Visit_monolingualtext(Wdata_claim_itm_monolingualtext itm) {
+ public void Visit_monolingualtext(Wbase_claim_monolingualtext itm) {
tmp_bfr.Add(itm.Text());
tmp_bfr.Add_byte(Byte_ascii.Space).Add_byte(Byte_ascii.Brack_bgn).Add(itm.Lang()).Add_byte(Byte_ascii.Brack_end);
}
- public void Visit_quantity(Wdata_claim_itm_quantity itm) {
+ public void Visit_quantity(Wbase_claim_quantity itm) {
try {
Decimal_adp val = itm.Amount_as_num();
Decimal_adp hi = itm.Ubound_as_num();
@@ -64,14 +64,14 @@ class Wdata_visitor__html_wtr implements Wdata_claim_visitor {
}
}
byte[] unit = itm.Unit();
- if (!Bry_.Eq(unit, Wdata_claim_itm_quantity.Unit_1))
+ if (!Bry_.Eq(unit, Wbase_claim_quantity.Unit_1))
tmp_bfr.Add_byte_space().Add(unit);
} catch (Exception e) {
Gfo_usr_dlg_.Instance.Warn_many("", "", "failed to write quantity; ttl=~{0} pid=~{1} err=~{2}", ttl, itm.Pid(), Err_.Message_gplx_full(e));
}
} private static final byte[] Time_plus_minus_spr = Bry_.new_a7(" / ");
- public void Visit_time(Wdata_claim_itm_time itm) {itm.Write_to_bfr(tmp_bfr, tmp_time_bfr, tmp_time_fmtr, msgs, ttl);}
- public void Visit_globecoordinate(Wdata_claim_itm_globecoordinate itm) {
+ public void Visit_time(Wbase_claim_time itm) {itm.Write_to_bfr(tmp_bfr, tmp_time_bfr, tmp_time_fmtr, msgs, ttl);}
+ public void Visit_globecoordinate(Wbase_claim_globecoordinate itm) {
try {
Decimal_adp precision_frac = itm.Prc_as_num(); // precision is a decimal; EX: .00027777
int precision_int = Math_.Log10(Decimal_adp_.One.Divide(precision_frac).To_int()); // convert precision to log10 integer; EX: .00027777 -> 3600 -> 3
@@ -89,10 +89,10 @@ class Wdata_visitor__html_wtr implements Wdata_claim_visitor {
Gfo_usr_dlg_.Instance.Warn_many("", "", "failed to write globecoordinate; ttl=~{0} pid=~{1} err=~{2}", ttl, itm.Pid(), Err_.Message_gplx_full(e));
}
}
- public void Visit_system(Wdata_claim_itm_system itm) {
+ public void Visit_system(Wbase_claim_value itm) {
switch (itm.Snak_tid()) {
- case Wdata_dict_snak_tid.Tid_somevalue: tmp_bfr.Add(msgs.Val_tid_somevalue()); break;
- case Wdata_dict_snak_tid.Tid_novalue: tmp_bfr.Add(msgs.Val_tid_novalue()); break;
+ case Wbase_claim_value_type_.Tid__somevalue: tmp_bfr.Add(msgs.Val_tid_somevalue()); break;
+ case Wbase_claim_value_type_.Tid__novalue: tmp_bfr.Add(msgs.Val_tid_novalue()); break;
}
}
}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_visitor__html_wtr_tst.java b/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_visitor__html_wtr_tst.java
similarity index 84%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_visitor__html_wtr_tst.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_visitor__html_wtr_tst.java
index 8c035348a..2f6b89029 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_visitor__html_wtr_tst.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_visitor__html_wtr_tst.java
@@ -15,9 +15,9 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.hwtrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.hwtrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
import org.junit.*;
-import gplx.langs.jsons.*; import gplx.xowa.xtns.wdatas.core.*; import gplx.xowa.xtns.wdatas.parsers.*; import gplx.xowa.apps.apis.xowa.html.*;
+import gplx.langs.jsons.*; import gplx.xowa.xtns.wbases.core.*; import gplx.xowa.xtns.wbases.claims.itms.times.*; import gplx.xowa.xtns.wbases.parsers.*; import gplx.xowa.apps.apis.xowa.html.*;
public class Wdata_visitor__html_wtr_tst {
@Before public void init() {fxt.init();} private Wdata_hwtr_mgr_fxt fxt = new Wdata_hwtr_mgr_fxt();
@Test public void Monolingualtext() {
@@ -30,7 +30,7 @@ public class Wdata_visitor__html_wtr_tst {
@Test public void Time() {
fxt
.Test_claim_val
- ( fxt.Wdata_fxt().Make_claim_time(1, "2001-02-03 04:05:06", Wdata_date.Fmt_ymdhns)
+ ( fxt.Wdata_fxt().Make_claim_time(1, "2001-02-03 04:05:06", Wbase_date.Fmt_ymdhns)
, "4:05:06 3 Feb 2001"
);
}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_visitor__lbl_gatherer.java b/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_visitor__lbl_gatherer.java
similarity index 62%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_visitor__lbl_gatherer.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_visitor__lbl_gatherer.java
index 06aa8d2fd..54a4d4605 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/hwtrs/Wdata_visitor__lbl_gatherer.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_visitor__lbl_gatherer.java
@@ -15,29 +15,29 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.hwtrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
-import gplx.xowa.xtns.wdatas.core.*;
-class Wdata_visitor__lbl_gatherer implements Wdata_claim_visitor {
+package gplx.xowa.xtns.wbases.hwtrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
+import gplx.xowa.xtns.wbases.core.*; import gplx.xowa.xtns.wbases.claims.*; import gplx.xowa.xtns.wbases.claims.itms.*;
+class Wdata_visitor__lbl_gatherer implements Wbase_claim_visitor {
private Wdata_lbl_mgr lbl_mgr;
public Wdata_visitor__lbl_gatherer(Wdata_lbl_mgr lbl_mgr) {this.lbl_mgr = lbl_mgr;}
- public void Visit_entity(Wdata_claim_itm_entity itm) {
+ public void Visit_entity(Wbase_claim_entity itm) {
if (itm.Entity_tid_is_qid())
lbl_mgr.Queue_if_missing__qid(itm.Entity_id());
else
lbl_mgr.Queue_if_missing__pid(itm.Entity_id());
}
- public void Visit_time(Wdata_claim_itm_time itm) {
+ public void Visit_time(Wbase_claim_time itm) {
byte[] ttl = Wdata_lbl_itm.Extract_ttl(itm.Calendar());
itm.Calendar_ttl_(ttl);
lbl_mgr.Queue_if_missing__ttl(ttl);
}
- public void Visit_globecoordinate(Wdata_claim_itm_globecoordinate itm) {
+ public void Visit_globecoordinate(Wbase_claim_globecoordinate itm) {
byte[] ttl = Wdata_lbl_itm.Extract_ttl(itm.Glb());
itm.Glb_ttl_(ttl);
lbl_mgr.Queue_if_missing__ttl(ttl);
}
- public void Visit_str(Wdata_claim_itm_str itm) {}
- public void Visit_monolingualtext(Wdata_claim_itm_monolingualtext itm) {}
- public void Visit_quantity(Wdata_claim_itm_quantity itm) {}
- public void Visit_system(Wdata_claim_itm_system itm) {}
+ public void Visit_str(Wbase_claim_string itm) {}
+ public void Visit_monolingualtext(Wbase_claim_monolingualtext itm) {}
+ public void Visit_quantity(Wbase_claim_quantity itm) {}
+ public void Visit_system(Wbase_claim_value itm) {}
}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Io_stream_rdr_mgr.java b/400_xowa/src/gplx/xowa/xtns/wbases/imports/Io_stream_rdr_mgr.java
similarity index 94%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/imports/Io_stream_rdr_mgr.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/imports/Io_stream_rdr_mgr.java
index 80728a704..8aa151692 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Io_stream_rdr_mgr.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/imports/Io_stream_rdr_mgr.java
@@ -15,7 +15,7 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.imports; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.imports; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
import gplx.core.ios.*; import gplx.core.ios.streams.*; import gplx.core.criterias.*; import gplx.core.envs.*;
class Io_stream_rdr_mgr {
public static Io_stream_rdr Get_rdr_or_null(Io_url src_fil, Io_url src_dir, Io_stream_unzip_mgr unzip_mgr, String... filter_ary) {
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Wdata_idx_mgr_base.java b/400_xowa/src/gplx/xowa/xtns/wbases/imports/Wdata_idx_mgr_base.java
similarity index 89%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/imports/Wdata_idx_mgr_base.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/imports/Wdata_idx_mgr_base.java
index ea5c18313..6cde487c1 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Wdata_idx_mgr_base.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/imports/Wdata_idx_mgr_base.java
@@ -15,11 +15,11 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.imports; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.imports; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
import gplx.langs.jsons.*; import gplx.core.ios.*;
import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.wkrs.*;
import gplx.xowa.langs.*; import gplx.xowa.langs.parsers.*;
-import gplx.xowa.xtns.wdatas.imports.*;
+import gplx.xowa.xtns.wbases.imports.*;
abstract class Wdata_idx_mgr_base {
public void Ctor(Xob_itm_dump_base wkr, Xob_bldr bldr, Xowe_wiki wiki, int dump_fil_len) {
this.wkr = wkr; this.wiki = wiki; this.bldr = bldr; this.dump_fil_len = dump_fil_len;
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Wdata_idx_wtr.java b/400_xowa/src/gplx/xowa/xtns/wbases/imports/Wdata_idx_wtr.java
similarity index 95%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/imports/Wdata_idx_wtr.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/imports/Wdata_idx_wtr.java
index caae30313..be172fd47 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Wdata_idx_wtr.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/imports/Wdata_idx_wtr.java
@@ -15,7 +15,7 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.imports; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.imports; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
import gplx.core.ios.*;
import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.cmds.texts.tdbs.*;
class Wdata_idx_wtr {
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wbase_json_dump_cmd.java b/400_xowa/src/gplx/xowa/xtns/wbases/imports/Xob_wbase_json_dump_cmd.java
similarity index 91%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wbase_json_dump_cmd.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/imports/Xob_wbase_json_dump_cmd.java
index 01a91b2dd..fce46d25c 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wbase_json_dump_cmd.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/imports/Xob_wbase_json_dump_cmd.java
@@ -15,7 +15,7 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.imports; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.imports; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.wkrs.*;
public class Xob_wbase_json_dump_cmd implements Xob_cmd {
private final Xob_wbase_json_dump_parser json_dump_parser;
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wbase_json_dump_db.java b/400_xowa/src/gplx/xowa/xtns/wbases/imports/Xob_wbase_json_dump_db.java
similarity index 91%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wbase_json_dump_db.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/imports/Xob_wbase_json_dump_db.java
index 571d75334..5cbcce7bd 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wbase_json_dump_db.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/imports/Xob_wbase_json_dump_db.java
@@ -15,14 +15,14 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.imports; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.imports; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
import gplx.core.ios.*;
import gplx.langs.jsons.*;
import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.cmds.*; import gplx.xowa.bldrs.cmds.texts.sqls.*;
import gplx.xowa.wikis.nss.*;
import gplx.xowa.wikis.*; import gplx.xowa.wikis.data.*; import gplx.xowa.wikis.data.tbls.*;
import gplx.xowa.apps.apis.xowa.bldrs.imports.*;
-import gplx.xowa.xtns.wdatas.core.*; import gplx.xowa.xtns.wdatas.parsers.*;
+import gplx.xowa.xtns.wbases.core.*; import gplx.xowa.xtns.wbases.parsers.*;
class Xob_wbase_json_dump_db {
private final Gfo_usr_dlg usr_dlg; private final Xoae_app app; private final Xowe_wiki wiki; private final Xob_bldr bldr;
private final Json_parser json_parser;
@@ -49,10 +49,10 @@ class Xob_wbase_json_dump_db {
wiki.Ns_mgr().Init();
Xoapi_import import_cfg = app.Api_root().Bldr().Wiki().Import();
this.ns_to_db_mgr = new Xob_ns_to_db_mgr(new Xob_ns_to_db_wkr__text(), db_mgr, import_cfg.Text_db_max());
- this.text_zip_mgr = Xoa_app_.Utl__zip_mgr(); text_zip_tid = import_cfg.Zip_tid_text();
+ this.text_zip_mgr = wiki.Utl__zip_mgr(); text_zip_tid = import_cfg.Zip_tid_text();
byte[] ns_file_map = import_cfg.New_ns_file_map(src_fil_len);
Xob_ns_file_itm.Init_ns_bldr_data(Xow_db_file_.Tid__text, wiki.Ns_mgr(), ns_file_map);
- this.page_modified_on = DateAdp_.Now();
+ this.page_modified_on = Datetime_now.Get();
this.page_core_tbl = db_mgr.Tbl__page();
page_tbl.Insert_bgn();
qid_cmd.Page_wkr__bgn();
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wbase_json_dump_parser.java b/400_xowa/src/gplx/xowa/xtns/wbases/imports/Xob_wbase_json_dump_parser.java
similarity index 95%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wbase_json_dump_parser.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/imports/Xob_wbase_json_dump_parser.java
index 9ba7ea39c..84daa37af 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wbase_json_dump_parser.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/imports/Xob_wbase_json_dump_parser.java
@@ -15,7 +15,7 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.imports; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.imports; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
import gplx.core.ios.*; import gplx.core.ios.streams.*;
import gplx.xowa.bldrs.*;
import gplx.xowa.wikis.data.tbls.*;
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wbase_ns_parser.java b/400_xowa/src/gplx/xowa/xtns/wbases/imports/Xob_wbase_ns_parser.java
similarity index 89%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wbase_ns_parser.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/imports/Xob_wbase_ns_parser.java
index 1bb559cc8..438398987 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wbase_ns_parser.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/imports/Xob_wbase_ns_parser.java
@@ -15,14 +15,14 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.imports; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.imports; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
import gplx.dbs.*;
import gplx.xowa.wikis.nss.*;
import gplx.xowa.wikis.domains.*;
import gplx.xowa.bldrs.wms.sites.*;
class Xob_wbase_ns_parser {
- private final Hash_adp_bry ns_mgr_hash = Hash_adp_bry.cs();
- private final Site_core_db core_db;
+ private final Hash_adp_bry ns_mgr_hash = Hash_adp_bry.cs();
+ private final Site_core_db core_db;
public Xob_wbase_ns_parser(Io_url url) {
this.core_db = new Site_core_db(url);
}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_db_cmd.java b/400_xowa/src/gplx/xowa/xtns/wbases/imports/Xob_wdata_db_cmd.java
similarity index 90%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_db_cmd.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/imports/Xob_wdata_db_cmd.java
index ed4f40e19..2c1e4c119 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_db_cmd.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/imports/Xob_wdata_db_cmd.java
@@ -15,13 +15,14 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.imports; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.imports; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
import gplx.dbs.*; import gplx.dbs.cfgs.*; import gplx.dbs.engines.sqlite.*; import gplx.xowa.bldrs.*; import gplx.xowa.files.fsdb.*; import gplx.xowa.files.origs.*;
import gplx.xowa.bldrs.wkrs.*;
-import gplx.langs.jsons.*; import gplx.xowa.xtns.wdatas.*; import gplx.xowa.xtns.wdatas.core.*;
+import gplx.langs.jsons.*;
import gplx.xowa.langs.*;
import gplx.xowa.wikis.nss.*;
import gplx.xowa.bldrs.cmds.*; import gplx.xowa.wikis.data.tbls.*;
+import gplx.xowa.xtns.wbases.*; import gplx.xowa.xtns.wbases.core.*; import gplx.xowa.xtns.wbases.claims.*; import gplx.xowa.xtns.wbases.claims.itms.*;
public class Xob_wdata_db_cmd extends Xob_dump_mgr_base implements Xob_cmd {
private Wdata_tbl_mgr tbl_mgr = new Wdata_tbl_mgr();
private Wdata_wiki_mgr wdata_mgr; private Json_parser json_parser;
@@ -68,9 +69,9 @@ class Wdata_tbl_mgr {
public Wdata_alias_tbl Alias_tbl() {return alias_tbl;} private Wdata_alias_tbl alias_tbl = new Wdata_alias_tbl();
public Wdata_description_tbl Description_tbl() {return description_tbl;} private Wdata_description_tbl description_tbl = new Wdata_description_tbl();
public Wdata_link_tbl Link_tbl() {return link_tbl;} private Wdata_link_tbl link_tbl = new Wdata_link_tbl();
- public Wdata_claim_tbl Claim_tbl() {return claim_tbl;} private Wdata_claim_tbl claim_tbl = new Wdata_claim_tbl();
- public Wdata_claim_time_tbl Claim_time_tbl() {return claim_time_tbl;} private Wdata_claim_time_tbl claim_time_tbl = new Wdata_claim_time_tbl();
- public Wdata_claim_geo_tbl Claim_geo_tbl() {return claim_geo_tbl;} private Wdata_claim_geo_tbl claim_geo_tbl = new Wdata_claim_geo_tbl();
+ public Wbase_claim_tbl Claim_tbl() {return claim_tbl;} private Wbase_claim_tbl claim_tbl = new Wbase_claim_tbl();
+ public Wbase_claim_time_tbl Claim_time_tbl() {return claim_time_tbl;} private Wbase_claim_time_tbl claim_time_tbl = new Wbase_claim_time_tbl();
+ public Wbase_claim_geo_tbl Claim_geo_tbl() {return claim_geo_tbl;} private Wbase_claim_geo_tbl claim_geo_tbl = new Wbase_claim_geo_tbl();
public void Init(Db_conn conn) {
this.conn = conn;
for (int i = 0; i < tbls_len; i++)
@@ -224,7 +225,7 @@ class Wdata_link_tbl extends Wdata_tbl_base {
}
private static final String Fld_page_id = "page_id", Fld_wiki_key = "wiki_key", Fld_val = "val";
}
-class Wdata_claim_tbl extends Wdata_tbl_base {
+class Wbase_claim_tbl extends Wdata_tbl_base {
@Override public String Tbl_name() {return "wdata_claim";}
@Override public String Tbl_create_sql() {
return String_.Concat_lines_nl
@@ -257,12 +258,12 @@ class Wdata_claim_tbl extends Wdata_tbl_base {
Ordered_hash list = wdoc.Claim_list();
int list_len = list.Count();
for (int i = 0; i < list_len; i++) {
- Wdata_claim_grp claim_grp = (Wdata_claim_grp)list.Get_at(i);
+ Wbase_claim_grp claim_grp = (Wbase_claim_grp)list.Get_at(i);
int itms_len = claim_grp.Len();
int entity_id = -1;
byte[] claim_val = Bry_.Empty;
for (int j = 0; j < itms_len; j++) {
- Wdata_claim_itm_core claim = claim_grp.Get_at(j);
+ Wbase_claim_base claim = claim_grp.Get_at(j);
claim.Welcome(visitor);
claim_val = visitor.Rv();
Exec_insert(++next_claim_id, page_id, claim_grp.Id(), claim.Val_tid(), claim.Snak_tid(), entity_id, claim_val, claim.Wguid(), claim.Rank_tid(), 0, 0);
@@ -290,7 +291,7 @@ class Wdata_claim_tbl extends Wdata_tbl_base {
, Fld_guid = "guid", Fld_rank = "rank", Fld_ref_count = "ref_count", Fld_qual_count = "qual_count"
;
}
-class Wdata_claim_time_tbl extends Wdata_tbl_base {
+class Wbase_claim_time_tbl extends Wdata_tbl_base {
@Override public String Tbl_name() {return "wdata_claim_time";}
@Override public String Tbl_create_sql() {
return String_.Concat_lines_nl
@@ -324,7 +325,7 @@ class Wdata_claim_time_tbl extends Wdata_tbl_base {
}
private static final String Fld_claim_id = "claim_id", Fld_time_val = "time_val", Fld_time_tz = "time_tz", Fld_time_before = "time_before", Fld_time_after = "time_after", Fld_time_precision = "time_precision", Fld_time_model = "time_model";
}
-class Wdata_claim_geo_tbl extends Wdata_tbl_base {
+class Wbase_claim_geo_tbl extends Wdata_tbl_base {
@Override public String Tbl_name() {return "wdata_claim_geo";}
@Override public String Tbl_create_sql() {
return String_.Concat_lines_nl
@@ -405,18 +406,18 @@ class Wdata_qual_tbl extends Wdata_tbl_base {
}
private static final String Fld_qual_id = "qual_id", Fld_page_id = "page_id", Fld_val_text = "val_text";
}
-class Xob_wdata_db_visitor implements Wdata_claim_visitor {
+class Xob_wdata_db_visitor implements Wbase_claim_visitor {
private final Wdata_wiki_mgr wdata_mgr; private byte[] lang_key;
public Xob_wdata_db_visitor(Wdata_wiki_mgr wdata_mgr) {this.wdata_mgr = wdata_mgr;}
public void Init(byte[] lang_key) {this.lang_key = lang_key;}
public byte[] Rv() {return rv;} private byte[] rv;
- public void Visit_str(Wdata_claim_itm_str itm) {rv = itm.Val_str();}
- public void Visit_monolingualtext(Wdata_claim_itm_monolingualtext itm) {rv = Bry_.Add_w_dlm(Byte_ascii.Pipe, itm.Lang(), itm.Text());}
- public void Visit_quantity(Wdata_claim_itm_quantity itm) {rv = itm.Amount();}
- public void Visit_time(Wdata_claim_itm_time itm) {rv = itm.Time();}
- public void Visit_globecoordinate(Wdata_claim_itm_globecoordinate itm) {rv = Bry_.Add_w_dlm(Byte_ascii.Comma, itm.Lat(), itm.Lng());}
- public void Visit_system(Wdata_claim_itm_system itm) {rv = Bry_.Empty;}
- public void Visit_entity(Wdata_claim_itm_entity itm) {
+ public void Visit_str(Wbase_claim_string itm) {rv = itm.Val_str();}
+ public void Visit_monolingualtext(Wbase_claim_monolingualtext itm) {rv = Bry_.Add_w_dlm(Byte_ascii.Pipe, itm.Lang(), itm.Text());}
+ public void Visit_quantity(Wbase_claim_quantity itm) {rv = itm.Amount();}
+ public void Visit_time(Wbase_claim_time itm) {rv = itm.Time();}
+ public void Visit_globecoordinate(Wbase_claim_globecoordinate itm) {rv = Bry_.Add_w_dlm(Byte_ascii.Comma, itm.Lat(), itm.Lng());}
+ public void Visit_system(Wbase_claim_value itm) {rv = Bry_.Empty;}
+ public void Visit_entity(Wbase_claim_entity itm) {
Wdata_doc entity_doc = wdata_mgr.Doc_mgr.Get_by_xid_or_null(itm.Page_ttl_db());
rv = entity_doc == null ? Bry_.Empty : entity_doc.Label_list__get(lang_key);
}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_pid_base.java b/400_xowa/src/gplx/xowa/xtns/wbases/imports/Xob_wdata_pid_base.java
similarity index 89%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_pid_base.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/imports/Xob_wdata_pid_base.java
index bfdbc69b2..7ee738e80 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_pid_base.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/imports/Xob_wdata_pid_base.java
@@ -15,8 +15,8 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.imports; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
-import gplx.langs.jsons.*; import gplx.xowa.xtns.wdatas.core.*; import gplx.xowa.xtns.wdatas.parsers.*; import gplx.xowa.wikis.data.tbls.*;
+package gplx.xowa.xtns.wbases.imports; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
+import gplx.langs.jsons.*; import gplx.xowa.xtns.wbases.core.*; import gplx.xowa.xtns.wbases.parsers.*; import gplx.xowa.wikis.data.tbls.*;
import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.wkrs.*;
public abstract class Xob_wdata_pid_base extends Xob_itm_dump_base implements Xob_page_wkr, Gfo_invk {
private Json_parser parser;
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_pid_base_tst.java b/400_xowa/src/gplx/xowa/xtns/wbases/imports/Xob_wdata_pid_base_tst.java
similarity index 93%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_pid_base_tst.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/imports/Xob_wdata_pid_base_tst.java
index a631f477f..6dac8a508 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_pid_base_tst.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/imports/Xob_wdata_pid_base_tst.java
@@ -15,7 +15,7 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.imports; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.imports; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
import org.junit.*;
import gplx.xowa.wikis.*; import gplx.xowa.wikis.tdbs.*;
public class Xob_wdata_pid_base_tst {
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_pid_sql.java b/400_xowa/src/gplx/xowa/xtns/wbases/imports/Xob_wdata_pid_sql.java
similarity index 90%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_pid_sql.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/imports/Xob_wdata_pid_sql.java
index 70d056c88..28ece7f8d 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_pid_sql.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/imports/Xob_wdata_pid_sql.java
@@ -15,7 +15,7 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.imports; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.imports; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
import gplx.xowa.wikis.data.*; import gplx.dbs.*; import gplx.xowa.wikis.dbs.*; import gplx.xowa.wikis.data.tbls.*;
public class Xob_wdata_pid_sql extends Xob_wdata_pid_base {
private Xowd_wbase_pid_tbl tbl;
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_pid_txt.java b/400_xowa/src/gplx/xowa/xtns/wbases/imports/Xob_wdata_pid_txt.java
similarity index 92%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_pid_txt.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/imports/Xob_wdata_pid_txt.java
index 914f3615f..83a6defc0 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_pid_txt.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/imports/Xob_wdata_pid_txt.java
@@ -15,7 +15,7 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.imports; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.imports; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.wkrs.*;
public class Xob_wdata_pid_txt extends Xob_wdata_pid_base {
@Override public String Page_wkr__key() {return gplx.xowa.bldrs.Xob_cmd_keys.Key_tdb_text_wdata_pid;}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_qid_base.java b/400_xowa/src/gplx/xowa/xtns/wbases/imports/Xob_wdata_qid_base.java
similarity index 93%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_qid_base.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/imports/Xob_wdata_qid_base.java
index 275e3d7b5..f0767bc0c 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_qid_base.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/imports/Xob_wdata_qid_base.java
@@ -15,8 +15,8 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.imports; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
-import gplx.langs.jsons.*; import gplx.core.ios.*; import gplx.xowa.xtns.wdatas.core.*; import gplx.xowa.xtns.wdatas.parsers.*; import gplx.xowa.wikis.data.tbls.*;
+package gplx.xowa.xtns.wbases.imports; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
+import gplx.langs.jsons.*; import gplx.core.ios.*; import gplx.xowa.xtns.wbases.core.*; import gplx.xowa.xtns.wbases.parsers.*; import gplx.xowa.wikis.data.tbls.*;
import gplx.xowa.wikis.nss.*;
import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.wkrs.*;
import gplx.xowa.bldrs.wms.sites.*;
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_qid_base_tst.java b/400_xowa/src/gplx/xowa/xtns/wbases/imports/Xob_wdata_qid_base_tst.java
similarity index 94%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_qid_base_tst.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/imports/Xob_wdata_qid_base_tst.java
index 0c618b3ee..630f52815 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_qid_base_tst.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/imports/Xob_wdata_qid_base_tst.java
@@ -15,7 +15,7 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.imports; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.imports; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
import org.junit.*;
import gplx.xowa.wikis.nss.*;
import gplx.xowa.wikis.*; import gplx.xowa.wikis.tdbs.*; import gplx.dbs.*;
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_qid_sql.java b/400_xowa/src/gplx/xowa/xtns/wbases/imports/Xob_wdata_qid_sql.java
similarity index 91%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_qid_sql.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/imports/Xob_wdata_qid_sql.java
index 5c9ead929..dda098bef 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_qid_sql.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/imports/Xob_wdata_qid_sql.java
@@ -15,7 +15,7 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.imports; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.imports; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
import gplx.xowa.wikis.data.*; import gplx.dbs.*; import gplx.xowa.wikis.dbs.*; import gplx.xowa.wikis.data.tbls.*;
public class Xob_wdata_qid_sql extends Xob_wdata_qid_base {
private Xowd_wbase_qid_tbl tbl;
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_qid_txt.java b/400_xowa/src/gplx/xowa/xtns/wbases/imports/Xob_wdata_qid_txt.java
similarity index 92%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_qid_txt.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/imports/Xob_wdata_qid_txt.java
index 7d3f23840..691189ae9 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/imports/Xob_wdata_qid_txt.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/imports/Xob_wdata_qid_txt.java
@@ -15,7 +15,7 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.imports; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.imports; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
import gplx.xowa.bldrs.*;
public class Xob_wdata_qid_txt extends Xob_wdata_qid_base {
private Wdata_idx_bldr_qid qid_bldr;
diff --git a/400_xowa/src/gplx/xowa/xtns/wbases/parsers/Wbase_claim_factory.java b/400_xowa/src/gplx/xowa/xtns/wbases/parsers/Wbase_claim_factory.java
new file mode 100644
index 000000000..76ca1ae7d
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/parsers/Wbase_claim_factory.java
@@ -0,0 +1,117 @@
+/*
+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 .
+*/
+package gplx.xowa.xtns.wbases.parsers; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
+import gplx.langs.jsons.*;
+import gplx.xowa.xtns.wbases.core.*; import gplx.xowa.xtns.wbases.claims.*; import gplx.xowa.xtns.wbases.claims.enums.*; import gplx.xowa.xtns.wbases.claims.itms.*;
+public class Wbase_claim_factory {
+ public Wbase_claim_base Parse(byte[] qid, int pid, byte snak_tid, Json_nde nde, byte value_tid, Json_itm value_itm) {
+ switch (value_tid) {
+ case Wbase_claim_type_.Tid__string: return new Wbase_claim_string(pid, snak_tid, value_itm.Data_bry());
+ case Wbase_claim_type_.Tid__entity: return Parse_datavalue_entity (qid, pid, snak_tid, Json_nde.cast(value_itm));
+ case Wbase_claim_type_.Tid__time: return Parse_datavalue_time (qid, pid, snak_tid, Json_nde.cast(value_itm));
+ case Wbase_claim_type_.Tid__quantity: return Parse_datavalue_quantity (qid, pid, snak_tid, Json_nde.cast(value_itm));
+ case Wbase_claim_type_.Tid__globecoordinate: return Parse_datavalue_globecoordinate (qid, pid, snak_tid, Json_nde.cast(value_itm));
+ case Wbase_claim_type_.Tid__monolingualtext: return Parse_datavalue_monolingualtext (qid, pid, snak_tid, Json_nde.cast(value_itm));
+ default: throw Err_.new_unhandled_default(value_tid);
+ }
+ }
+ private Wbase_claim_entity Parse_datavalue_entity(byte[] qid, int pid, byte snak_tid, Json_nde nde) {
+ int len = nde.Len();
+ byte entity_tid = Byte_.Max_value_127;
+ 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;
+ 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__numeric_id: entity_id_bry = sub.Val().Data_bry(); break;
+ }
+ }
+ if (entity_id_bry == null) throw Err_.new_wo_type("pid is invalid entity", "pid", pid);
+ return new Wbase_claim_entity(pid, snak_tid, entity_tid, entity_id_bry);
+ }
+ private Wbase_claim_monolingualtext Parse_datavalue_monolingualtext(byte[] qid, int pid, byte snak_tid, Json_nde nde) {
+ int len = nde.Len();
+ 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[] sub_val_bry = sub.Val().Data_bry();
+ switch (tid) {
+ case Wbase_claim_monolingualtext_.Tid__text: text = sub_val_bry; break;
+ case Wbase_claim_monolingualtext_.Tid__language: lang = sub_val_bry; break;
+ }
+ }
+ if (lang == null || text == null) throw Err_.new_wo_type("pid is invalid monolingualtext", "pid", pid);
+ return new Wbase_claim_monolingualtext(pid, snak_tid, lang, text);
+ }
+ private Wbase_claim_globecoordinate Parse_datavalue_globecoordinate(byte[] qid, int pid, byte snak_tid, Json_nde nde) {
+ int len = nde.Len();
+ 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[] sub_val_bry = sub.Val().Data_bry();
+ switch (tid) {
+ case Wbase_claim_globecoordinate_.Tid__latitude: lat = sub_val_bry; break;
+ case Wbase_claim_globecoordinate_.Tid__longitude: lng = sub_val_bry; break;
+ case Wbase_claim_globecoordinate_.Tid__altitude: alt = sub_val_bry; break;
+ case Wbase_claim_globecoordinate_.Tid__precision: prc = sub_val_bry; break;
+ case Wbase_claim_globecoordinate_.Tid__globe: glb = sub_val_bry; break;
+ }
+ }
+ if (lat == null || lng == null) throw Err_.new_wo_type("pid is invalid globecoordinate", "pid", pid);
+ return new Wbase_claim_globecoordinate(pid, snak_tid, lat, lng, alt, prc, glb);
+ }
+ private Wbase_claim_quantity Parse_datavalue_quantity(byte[] qid, int pid, byte snak_tid, Json_nde nde) {
+ int len = nde.Len();
+ 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[] sub_val_bry = sub.Val().Data_bry();
+ switch (tid) {
+ case Wbase_claim_quantity_.Tid__amount: amount = sub_val_bry; break;
+ case Wbase_claim_quantity_.Tid__unit: unit = sub_val_bry; break;
+ case Wbase_claim_quantity_.Tid__upperbound: ubound = sub_val_bry; break;
+ case Wbase_claim_quantity_.Tid__lowerbound: lbound = sub_val_bry; break;
+ }
+ }
+ if (amount == null) throw Err_.new_wo_type("pid is invalid quantity", "pid", pid);
+ return new Wbase_claim_quantity(pid, snak_tid, amount, unit, ubound, lbound);
+ }
+ private Wbase_claim_time Parse_datavalue_time(byte[] qid, int pid, byte snak_tid, Json_nde nde) {
+ int len = nde.Len();
+ 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[] sub_val_bry = sub.Val().Data_bry();
+ switch (tid) {
+ case Wbase_claim_time_.Tid__time: time = sub_val_bry; break;
+ case Wbase_claim_time_.Tid__timezone: timezone = sub_val_bry; break;
+ case Wbase_claim_time_.Tid__before: before = sub_val_bry; break;
+ case Wbase_claim_time_.Tid__after: after = sub_val_bry; break;
+ case Wbase_claim_time_.Tid__precision: precision = sub_val_bry; break;
+ case Wbase_claim_time_.Tid__calendarmodel: calendarmodel = sub_val_bry; break;
+ }
+ }
+ if (time == null) throw Err_.new_wo_type("pid is invalid time", "pid", pid);
+ return new Wbase_claim_time(pid, snak_tid, time, timezone, before, after, precision, calendarmodel);
+ }
+}
diff --git a/400_xowa/src/gplx/xowa/xtns/wbases/parsers/Wdata_claims_parser_v2.java b/400_xowa/src/gplx/xowa/xtns/wbases/parsers/Wdata_claims_parser_v2.java
new file mode 100644
index 000000000..129b52aa9
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/parsers/Wdata_claims_parser_v2.java
@@ -0,0 +1,151 @@
+/*
+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 .
+*/
+package gplx.xowa.xtns.wbases.parsers; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
+import gplx.core.primitives.*;
+import gplx.langs.jsons.*; import gplx.xowa.xtns.wbases.core.*; import gplx.xowa.xtns.wbases.claims.*; import gplx.xowa.xtns.wbases.claims.enums.*; import gplx.xowa.xtns.wbases.claims.itms.*;
+class Wdata_claims_parser_v2 {
+ private final Wbase_claim_factory factory = new Wbase_claim_factory();
+ public void Make_claim_itms(byte[] qid, List_adp claim_itms_list, byte[] src, Json_kv claim_grp) {
+ Json_ary claim_itms_ary = Json_ary.cast_or_null(claim_grp.Val());
+ int claim_itms_len = claim_itms_ary.Len();
+ int pid = Parse_pid(claim_grp.Key().Data_bry());
+ for (int i = 0; i < claim_itms_len; ++i) {
+ Json_nde claim_itm_nde = Json_nde.cast(claim_itms_ary.Get_at(i));
+ Wbase_claim_base itm = Parse_claim_itm(qid, claim_itm_nde, pid);
+ if (itm != null) // HACK: itm can be null if value is "somevalue"; DATE:2014-09-20
+ claim_itms_list.Add(itm);
+ }
+ }
+ 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;
+ 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"
+ }
+ }
+ if (claim_itm != null) {
+ claim_itm.Rank_tid_(rank_tid);
+ if (qualifiers != null) claim_itm.Qualifiers_(qualifiers);
+ if (qualifiers_order != null) claim_itm.Qualifiers_order_(qualifiers_order);
+ if (snaks_grp != null) claim_itm.References_(snaks_grp);
+ }
+ return claim_itm;
+ }
+ public Wbase_references_grp[] Parse_references(byte[] qid, Json_ary owner) {
+ int len = owner.Len();
+ Wbase_references_grp[] rv = new Wbase_references_grp[len];
+ for (int i = 0; i < len; ++i) {
+ Json_nde grp_nde = Json_nde.cast(owner.Get_at(i));
+ rv[i] = Parse_references_grp(qid, grp_nde);
+ }
+ return rv;
+ }
+ 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;
+ 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;
+ }
+ }
+ return new Wbase_references_grp(snaks, snaks_order);
+ }
+ public Wbase_claim_grp_list Parse_qualifiers(byte[] qid, Json_nde qualifiers_nde) {
+ Wbase_claim_grp_list rv = new Wbase_claim_grp_list();
+ if (qualifiers_nde == null) return rv; // NOTE:sometimes references can have 0 snaks; return back an empty Wbase_claim_grp_list, not null; PAGE:Птичкин,_Евгений_Николаевич; DATE:2015-02-16
+ int len = qualifiers_nde.Len();
+ for (int i = 0; i < len; ++i) {
+ Json_kv qualifier_kv = Json_kv.cast(qualifiers_nde.Get_at(i));
+ int pid = Parse_pid(qualifier_kv.Key().Data_bry());
+ Wbase_claim_grp claims_grp = Parse_props_grp(qid, pid, Json_ary.cast_or_null(qualifier_kv.Val()));
+ rv.Add(claims_grp);
+ }
+ return rv;
+ }
+ public int[] Parse_pid_order(Json_ary ary) {
+ int len = ary.Len();
+ int[] rv = new int[len];
+ for (int i = 0; i < len; ++i) {
+ Json_itm pid_itm = ary.Get_at(i);
+ rv[i] = Parse_pid(pid_itm.Data_bry());
+ }
+ return rv;
+ }
+ private Wbase_claim_grp Parse_props_grp(byte[] qid, int pid, Json_ary props_ary) {
+ List_adp list = List_adp_.New();
+ int len = props_ary.Len();
+ for (int i = 0; i < len; ++i) {
+ Json_nde qualifier_nde = Json_nde.cast(props_ary.Get_at(i));
+ Wbase_claim_base qualifier_itm = Parse_mainsnak(qid, qualifier_nde, pid);
+ list.Add(qualifier_itm);
+ }
+ return new Wbase_claim_grp(Int_obj_ref.New(pid), (Wbase_claim_base[])list.To_ary_and_clear(Wbase_claim_base.class));
+ }
+ 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;
+ 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"
+ }
+ }
+ 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;
+ 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"
+ }
+ }
+ return factory.Parse(qid, pid, snak_tid, nde, value_tid, value_itm);
+ }
+ private static int Parse_pid(byte[] pid_bry) {
+ int rv = Bry_.To_int_or(pid_bry, 1, pid_bry.length, -1); if (rv == -1) throw Err_.new_wo_type("invalid pid", "pid", String_.new_u8(pid_bry));
+ return rv;
+ }
+}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/parsers/Wdata_doc_parser.java b/400_xowa/src/gplx/xowa/xtns/wbases/parsers/Wdata_doc_parser.java
similarity index 68%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/parsers/Wdata_doc_parser.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/parsers/Wdata_doc_parser.java
index c2e82de8b..9cc0b786b 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/parsers/Wdata_doc_parser.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/parsers/Wdata_doc_parser.java
@@ -15,16 +15,16 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.parsers; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
-import gplx.langs.jsons.*; import gplx.xowa.xtns.wdatas.core.*;
+package gplx.xowa.xtns.wbases.parsers; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
+import gplx.langs.jsons.*; import gplx.xowa.xtns.wbases.core.*; import gplx.xowa.xtns.wbases.claims.*; import gplx.xowa.xtns.wbases.claims.itms.*;
public interface Wdata_doc_parser {
byte[] Parse_qid(Json_doc doc);
Ordered_hash Parse_sitelinks(byte[] qid, Json_doc doc);
Ordered_hash Parse_langvals(byte[] qid, Json_doc doc, boolean label_or_description);
Ordered_hash Parse_aliases(byte[] qid, Json_doc doc);
Ordered_hash Parse_claims(byte[] qid, Json_doc doc);
- Wdata_claim_itm_base Parse_claims_data(byte[] qid, int pid, byte snak_tid, Json_nde nde);
- Wdata_claim_grp_list Parse_qualifiers(byte[] qid, Json_nde nde);
+ Wbase_claim_base Parse_claims_data(byte[] qid, int pid, byte snak_tid, Json_nde nde);
+ Wbase_claim_grp_list Parse_qualifiers(byte[] qid, Json_nde nde);
int[] Parse_pid_order(byte[] qid, Json_ary ary);
- Wdata_references_grp[] Parse_references(byte[] qid, Json_ary owner);
+ Wbase_references_grp[] Parse_references(byte[] qid, Json_ary owner);
}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/parsers/Wdata_doc_parser_fxt_base.java b/400_xowa/src/gplx/xowa/xtns/wbases/parsers/Wdata_doc_parser_fxt_base.java
similarity index 55%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/parsers/Wdata_doc_parser_fxt_base.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/parsers/Wdata_doc_parser_fxt_base.java
index d9c5cb55d..dcea15c96 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/parsers/Wdata_doc_parser_fxt_base.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/parsers/Wdata_doc_parser_fxt_base.java
@@ -15,11 +15,12 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.parsers; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
-import gplx.langs.jsons.*; import gplx.xowa.xtns.wdatas.core.*;
+package gplx.xowa.xtns.wbases.parsers; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
+import gplx.langs.jsons.*; import gplx.xowa.xtns.wbases.core.*; import gplx.xowa.xtns.wbases.claims.*; import gplx.xowa.xtns.wbases.claims.enums.*; import gplx.xowa.xtns.wbases.claims.itms.*;
abstract class Wdata_doc_parser_fxt_base {
protected Wdata_doc_parser wdoc_parser;
private final Json_parser json_parser = new Json_parser();
+ private final Bry_bfr tmp_time_bfr = Bry_bfr_.New();
public void Init() {
if (wdoc_parser == null) wdoc_parser = Make_parser();
}
@@ -27,14 +28,15 @@ abstract class Wdata_doc_parser_fxt_base {
public Wdata_sitelink_itm Make_sitelink(String site, String name, String... badges) {return new Wdata_sitelink_itm(Bry_.new_u8(site), Bry_.new_u8(name), Bry_.Ary(badges));}
public Wdata_langtext_itm Make_langval(String lang, String text) {return new Wdata_langtext_itm(Bry_.new_u8(lang), Bry_.new_u8(text));}
public Wdata_alias_itm Make_alias(String lang, String... vals) {return new Wdata_alias_itm(Bry_.new_u8(lang), Bry_.Ary(vals));}
- public Wdata_claim_itm_core Make_claim_str(int pid, String val) {return new Wdata_claim_itm_str(pid, Wdata_dict_snak_tid.Tid_value, Bry_.new_u8(val));}
- public Wdata_claim_itm_core Make_claim_entity_qid(int pid, int entityId) {return new Wdata_claim_itm_entity(pid, Wdata_dict_snak_tid.Tid_value, Wdata_dict_value_entity_tid.Tid_item, Int_.To_bry(entityId));}
- public Wdata_claim_itm_core Make_claim_entity_pid(int pid, int entityId) {return new Wdata_claim_itm_entity(pid, Wdata_dict_snak_tid.Tid_value, Wdata_dict_value_entity_tid.Tid_property, Int_.To_bry(entityId));}
- public Wdata_claim_itm_core Make_claim_monolingualtext(int pid, String lang, String text) {return new Wdata_claim_itm_monolingualtext(pid, Wdata_dict_snak_tid.Tid_value, Bry_.new_u8(lang), Bry_.new_u8(text));}
- public Wdata_claim_itm_core Make_claim_globecoordinate(int pid, String lat, String lng, String prc) {return new Wdata_claim_itm_globecoordinate(pid, Wdata_dict_snak_tid.Tid_value, Bry_.new_u8(lat), Bry_.new_u8(lng), Object_.Bry__null, Bry_.new_u8(prc), Bry_.new_a7("http://www.wikidata.org/entity/Q2"));}
- public Wdata_claim_itm_core Make_claim_quantity(int pid, int val, int unit, int ubound, int lbound) {return new Wdata_claim_itm_quantity(pid, Wdata_dict_snak_tid.Tid_value, Bry_.new_u8(Int_.To_str(val)), Bry_.new_u8(Int_.To_str(unit)), Bry_.new_u8(Int_.To_str(ubound)), Bry_.new_u8(Int_.To_str(lbound)));}
- public Wdata_claim_itm_core Make_claim_time(int pid, String val) {return new Wdata_claim_itm_time(pid, Wdata_dict_snak_tid.Tid_value, Wdata_dict_value_time.Xto_time(val), Wdata_dict_value_time.Val_timezone_bry, Wdata_dict_value_time.Val_before_bry, Wdata_dict_value_time.Val_after_bry, Wdata_dict_value_time.Val_precision_bry, Wdata_dict_value_time.Val_calendarmodel_bry);}
- public Wdata_claim_itm_core Make_claim_novalue(int pid) {return new Wdata_claim_itm_system(pid, Wdata_dict_val_tid.Tid_unknown, Wdata_dict_snak_tid.Tid_novalue);}
+ public Wbase_claim_base Make_claim_string (int pid, String val) {return new Wbase_claim_string(pid, Wbase_claim_value_type_.Tid__value, Bry_.new_u8(val));}
+ public Wbase_claim_base Make_claim_entity_qid (int pid, int eid) {return new Wbase_claim_entity(pid, Wbase_claim_value_type_.Tid__value, Wbase_claim_entity_type_.Tid__item, Int_.To_bry(eid));}
+ public Wbase_claim_base Make_claim_entity_pid (int pid, int eid) {return new Wbase_claim_entity(pid, Wbase_claim_value_type_.Tid__value, Wbase_claim_entity_type_.Tid__property, Int_.To_bry(eid));}
+ public Wbase_claim_base Make_claim_monolingualtext (int pid, String lang, String text) {return new Wbase_claim_monolingualtext(pid, Wbase_claim_value_type_.Tid__value, Bry_.new_u8(lang), Bry_.new_u8(text));}
+ public Wbase_claim_base Make_claim_globecoordinate (int pid, String lat, String lng, String prc) {return new Wbase_claim_globecoordinate(pid, Wbase_claim_value_type_.Tid__value, Bry_.new_u8(lat), Bry_.new_u8(lng), Object_.Bry__null, Bry_.new_u8(prc), Bry_.new_a7("http://www.wikidata.org/entity/Q2"));}
+ public Wbase_claim_base Make_claim_quantity (int pid, int val, int unit, int ubound, int lbound) {return new Wbase_claim_quantity(pid, Wbase_claim_value_type_.Tid__value, Bry_.new_u8(Int_.To_str(val)), Bry_.new_u8(Int_.To_str(unit)), Bry_.new_u8(Int_.To_str(ubound)), Bry_.new_u8(Int_.To_str(lbound)));}
+ public Wbase_claim_base Make_claim_time (int pid, String val) {return new Wbase_claim_time(pid, Wbase_claim_value_type_.Tid__value, Wbase_claim_time_.To_bry(tmp_time_bfr, val), Wbase_claim_time_.Dflt__timezone.Val_bry(), Wbase_claim_time_.Dflt__before.Val_bry(), Wbase_claim_time_.Dflt__after.Val_bry(), Wbase_claim_time_.Dflt__precision.Val_bry(), Wbase_claim_time_.Dflt__calendarmodel.Val_bry());}
+ public Wbase_claim_base Make_claim_novalue (int pid) {return new Wbase_claim_value(pid, Wbase_claim_type_.Tid__unknown, Wbase_claim_value_type_.Tid__novalue);}
+
public void Test_entity(String raw, String expd) {Tfds.Eq(expd, String_.new_u8(wdoc_parser.Parse_qid(json_parser.Parse_by_apos(raw))));}
public void Test_sitelinks(String raw, Wdata_sitelink_itm... expd) {
Ordered_hash actl_hash = wdoc_parser.Parse_sitelinks(Q1_bry, json_parser.Parse_by_apos(raw));
@@ -50,27 +52,27 @@ abstract class Wdata_doc_parser_fxt_base {
Ordered_hash actl_hash = wdoc_parser.Parse_aliases(Q1_bry, json_parser.Parse_by_apos(raw));
Tfds.Eq_ary_str((Wdata_alias_itm[])actl_hash.To_ary(Wdata_alias_itm.class), expd);
}
- public void Test_claims(String raw, Wdata_claim_itm_core... expd) {
+ public void Test_claims(String raw, Wbase_claim_base... expd) {
Ordered_hash actl_hash = wdoc_parser.Parse_claims(Q1_bry, json_parser.Parse_by_apos(raw));
- List_adp actl_list = Wdata_claim_grp.Xto_list(actl_hash);
- Tfds.Eq_ary_str((Wdata_claim_itm_core[])actl_list.To_ary(Wdata_claim_itm_core.class), expd);
+ List_adp actl_list = Wbase_claim_grp.Xto_list(actl_hash);
+ Tfds.Eq_ary_str((Wbase_claim_base[])actl_list.To_ary(Wbase_claim_base.class), expd);
}
- public void Test_claims_data(String raw, Wdata_claim_itm_core expd) {
+ public void Test_claims_data(String raw, Wbase_claim_base expd) {
Json_doc jdoc = json_parser.Parse_by_apos(raw);
- Wdata_claim_itm_base actl = wdoc_parser.Parse_claims_data(Q1_bry, 1, Wdata_dict_snak_tid.Tid_value, jdoc.Root_nde());
+ Wbase_claim_base actl = wdoc_parser.Parse_claims_data(Q1_bry, 1, Wbase_claim_value_type_.Tid__value, jdoc.Root_nde());
Tfds.Eq(expd.toString(), actl.toString());
}
- public void Test_qualifiers(String raw, Wdata_claim_itm_base... expd_itms) {
+ public void Test_qualifiers(String raw, Wbase_claim_base... expd_itms) {
Json_doc jdoc = json_parser.Parse_by_apos(raw);
Json_nde qualifiers_nde = Json_nde.cast(Json_kv.cast(jdoc.Root_nde().Get_at(0)).Val());
- Wdata_claim_grp_list actl = wdoc_parser.Parse_qualifiers(Q1_bry, qualifiers_nde);
+ Wbase_claim_grp_list actl = wdoc_parser.Parse_qualifiers(Q1_bry, qualifiers_nde);
Tfds.Eq_ary_str(expd_itms, To_ary(actl));
}
- public void Test_references(String raw, int[] expd_order, Wdata_claim_itm_base... expd_itms) {
+ public void Test_references(String raw, int[] expd_order, Wbase_claim_base... expd_itms) {
Json_doc jdoc = json_parser.Parse_by_apos(raw);
Json_ary owner = Json_ary.cast_or_null(Json_kv.cast(jdoc.Root_nde().Get_at(0)).Val());
- Wdata_references_grp[] actl = wdoc_parser.Parse_references(Q1_bry, owner);
- Wdata_references_grp actl_grp = actl[0];
+ Wbase_references_grp[] actl = wdoc_parser.Parse_references(Q1_bry, owner);
+ Wbase_references_grp actl_grp = actl[0];
Tfds.Eq_ary(expd_order, actl_grp.References_order());
Tfds.Eq_ary_str(expd_itms, To_ary(actl_grp.References()));
}
@@ -80,18 +82,18 @@ abstract class Wdata_doc_parser_fxt_base {
int[] actl = wdoc_parser.Parse_pid_order(Q1_bry, nde);
Tfds.Eq_ary(expd, actl);
}
- Wdata_claim_itm_base[] To_ary(Wdata_claim_grp_list list) {
+ Wbase_claim_base[] To_ary(Wbase_claim_grp_list list) {
List_adp rv = List_adp_.New();
int list_len = list.Len();
for (int i = 0; i < list_len; ++i) {
- Wdata_claim_grp grp = list.Get_at(i);
+ Wbase_claim_grp grp = list.Get_at(i);
int grp_len = grp.Len();
for (int j = 0; j < grp_len; ++j) {
- Wdata_claim_itm_core itm = grp.Get_at(j);
+ Wbase_claim_base itm = grp.Get_at(j);
rv.Add(itm);
}
}
- return (Wdata_claim_itm_base[])rv.To_ary_and_clear(Wdata_claim_itm_base.class);
+ return (Wbase_claim_base[])rv.To_ary_and_clear(Wbase_claim_base.class);
}
private static final byte[] Q1_bry = Bry_.new_a7("Q1");
}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/parsers/Wdata_doc_parser_v1.java b/400_xowa/src/gplx/xowa/xtns/wbases/parsers/Wdata_doc_parser_v1.java
similarity index 78%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/parsers/Wdata_doc_parser_v1.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/parsers/Wdata_doc_parser_v1.java
index 7c0cae537..0cb9ebd5a 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/parsers/Wdata_doc_parser_v1.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/parsers/Wdata_doc_parser_v1.java
@@ -15,8 +15,9 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.parsers; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
-import gplx.core.primitives.*; import gplx.langs.jsons.*; import gplx.xowa.xtns.wdatas.core.*;
+package gplx.xowa.xtns.wbases.parsers; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
+import gplx.core.primitives.*; import gplx.langs.jsons.*;
+import gplx.xowa.xtns.wbases.core.*; import gplx.xowa.xtns.wbases.claims.*; import gplx.xowa.xtns.wbases.claims.enums.*; import gplx.xowa.xtns.wbases.claims.itms.*;
public class Wdata_doc_parser_v1 implements Wdata_doc_parser {
public Wdata_doc_parser_v1(Gfo_usr_dlg usr_dlg) {this.usr_dlg = usr_dlg;} private Gfo_usr_dlg usr_dlg;
public Wdata_doc_parser_v1() {}
@@ -118,20 +119,20 @@ public class Wdata_doc_parser_v1 implements Wdata_doc_parser {
int len = list_nde.Len();
for (int i = 0; i < len; i++) {
Json_nde claim_nde = Json_nde.cast(list_nde.Get_at(i));
- Wdata_claim_itm_core claim_itm = Make_claim_itm(src, claim_nde);
+ Wbase_claim_base claim_itm = Make_claim_itm(src, claim_nde);
temp_list.Add(claim_itm);
}
return Claims_list_to_hash(temp_list);
} catch (Exception e) {throw Err_.new_exc(e, "xo", "failed to parse claims", "qid", String_.new_u8(doc.Src()));}
}
- public Wdata_claim_itm_base Parse_claims_data(byte[] qid, int pid, byte snak_tid, Json_nde nde) {throw Err_.new_unimplemented();}
+ public Wbase_claim_base Parse_claims_data(byte[] qid, int pid, byte snak_tid, Json_nde nde) {throw Err_.new_unimplemented();}
public static Ordered_hash Claims_list_to_hash(List_adp full_list) {
full_list.Sort();
Ordered_hash rv = Ordered_hash_.New(); List_adp temp_itms = List_adp_.New();
int prv_pid = -1;
int len = full_list.Count();
for (int i = 0; i < len; ++i) {
- Wdata_claim_itm_core claim_itm = (Wdata_claim_itm_core)full_list.Get_at(i);
+ Wbase_claim_base claim_itm = (Wbase_claim_base)full_list.Get_at(i);
int cur_pid = claim_itm.Pid();
if (prv_pid != cur_pid && prv_pid != -1)
Claims_list_to_hash__add(rv, prv_pid, temp_itms);
@@ -144,12 +145,12 @@ public class Wdata_doc_parser_v1 implements Wdata_doc_parser {
private static void Claims_list_to_hash__add(Ordered_hash rv, int pid, List_adp temp_itms) {
if (temp_itms.Count() == 0) return; // NOTE: will be empty when claims are empty; EX: "claims": []; PAGE:wd.p:585; DATE:2014-10-03
Int_obj_ref claim_grp_key = Int_obj_ref.New(pid);
- Wdata_claim_grp claim_grp = new Wdata_claim_grp(claim_grp_key, (Wdata_claim_itm_core[])temp_itms.To_ary_and_clear(Wdata_claim_itm_core.class));
+ Wbase_claim_grp claim_grp = new Wbase_claim_grp(claim_grp_key, (Wbase_claim_base[])temp_itms.To_ary_and_clear(Wbase_claim_base.class));
rv.Add(claim_grp_key, claim_grp);
}
- private Wdata_claim_itm_core Make_claim_itm(byte[] src, Json_nde prop_nde) {
+ private Wbase_claim_base Make_claim_itm(byte[] src, Json_nde prop_nde) {
int len = prop_nde.Len(); // should have 5 (m, q, g, rank, refs), but don't enforce (can rely on keys)
- Wdata_claim_itm_core rv = null;
+ Wbase_claim_base rv = null;
for (int i = 0; i < len; i++) {
Json_kv kv = Json_kv.cast(prop_nde.Get_at(i));
Json_itm kv_key = kv.Key();
@@ -175,41 +176,41 @@ public class Wdata_doc_parser_v1 implements Wdata_doc_parser {
}
return rv;
}
- private Wdata_claim_itm_core New_prop_by_m(byte[] src, Json_ary ary) {
- byte snak_tid = Wdata_dict_snak_tid.Xto_tid(ary.Get_at(0).Data_bry());
+ 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());
int pid = Json_itm_int.cast(ary.Get_at(1)).Data_as_int();
switch (snak_tid) {
- case Wdata_dict_snak_tid.Tid_novalue : return Wdata_claim_itm_system.new_novalue(pid);
- case Wdata_dict_snak_tid.Tid_somevalue : return Wdata_claim_itm_system.new_somevalue(pid);
+ 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 = Wdata_dict_val_tid.Xto_tid(src, val_tid_itm.Src_bgn(), val_tid_itm.Src_end());
+ byte val_tid = Wbase_claim_type_.To_tid_or_unknown(src, val_tid_itm.Src_bgn(), val_tid_itm.Src_end());
return Make_itm(pid, snak_tid, val_tid, ary);
}
- private Wdata_claim_itm_core Make_itm(int pid, byte snak_tid, byte val_tid, Json_ary ary) {
+ private Wbase_claim_base Make_itm(int pid, byte snak_tid, byte val_tid, Json_ary ary) {
switch (val_tid) {
- case Wdata_dict_val_tid.Tid_string:
- return new Wdata_claim_itm_str(pid, snak_tid, ary.Get_at(3).Data_bry());
- case Wdata_dict_val_tid.Tid_entity: {
+ case Wbase_claim_type_.Tid__string:
+ return new Wbase_claim_string(pid, snak_tid, ary.Get_at(3).Data_bry());
+ case Wbase_claim_type_.Tid__entity: {
Json_nde sub_nde = Json_nde.cast(ary.Get_at(3));
Json_kv entity_kv = Json_kv.cast(sub_nde.Get_at(1));
- return new Wdata_claim_itm_entity(pid, snak_tid, Wdata_dict_value_entity_tid.Tid_item, entity_kv.Val().Data_bry());
+ return new Wbase_claim_entity(pid, snak_tid, Wbase_claim_entity_type_.Tid__item, entity_kv.Val().Data_bry());
}
- case Wdata_dict_val_tid.Tid_time: {
+ case Wbase_claim_type_.Tid__time: {
Json_nde sub_nde = Json_nde.cast(ary.Get_at(3));
- return new Wdata_claim_itm_time(pid, snak_tid, Get_val(sub_nde, 0), Get_val(sub_nde, 1), Get_val(sub_nde, 2), Get_val(sub_nde, 3), Get_val(sub_nde, 4), Get_val(sub_nde, 5));
+ return new Wbase_claim_time(pid, snak_tid, Get_val(sub_nde, 0), Get_val(sub_nde, 1), Get_val(sub_nde, 2), Get_val(sub_nde, 3), Get_val(sub_nde, 4), Get_val(sub_nde, 5));
}
- case Wdata_dict_val_tid.Tid_globecoordinate: case Wdata_dict_val_tid.Tid_bad: {
+ case Wbase_claim_type_.Tid__globecoordinate: case Wbase_claim_type_.Tid__bad: {
Json_nde sub_nde = Json_nde.cast(ary.Get_at(3));
- return new Wdata_claim_itm_globecoordinate(pid, snak_tid, Get_val(sub_nde, 0), Get_val(sub_nde, 1), Get_val(sub_nde, 2), Get_val(sub_nde, 3), Get_val(sub_nde, 4));
+ return new Wbase_claim_globecoordinate(pid, snak_tid, Get_val(sub_nde, 0), Get_val(sub_nde, 1), Get_val(sub_nde, 2), Get_val(sub_nde, 3), Get_val(sub_nde, 4));
}
- case Wdata_dict_val_tid.Tid_quantity: {
+ case Wbase_claim_type_.Tid__quantity: {
Json_nde sub_nde = Json_nde.cast(ary.Get_at(3));
- return new Wdata_claim_itm_quantity(pid, snak_tid, Get_val(sub_nde, 0), Get_val(sub_nde, 1), Get_val(sub_nde, 2), Get_val(sub_nde, 3));
+ return new Wbase_claim_quantity(pid, snak_tid, Get_val(sub_nde, 0), Get_val(sub_nde, 1), Get_val(sub_nde, 2), Get_val(sub_nde, 3));
}
- case Wdata_dict_val_tid.Tid_monolingualtext: {
+ case Wbase_claim_type_.Tid__monolingualtext: {
Json_nde sub_nde = Json_nde.cast(ary.Get_at(3));
- return new Wdata_claim_itm_monolingualtext(pid, snak_tid, Get_val(sub_nde, 1), Get_val(sub_nde, 0));
+ return new Wbase_claim_monolingualtext(pid, snak_tid, Get_val(sub_nde, 1), Get_val(sub_nde, 0));
}
default: {throw Err_.new_unhandled(val_tid);}
}
@@ -238,8 +239,8 @@ public class Wdata_doc_parser_v1 implements Wdata_doc_parser {
}
return rv;
}
- public Wdata_claim_grp_list Parse_qualifiers(byte[] qid, Json_nde nde) {throw Err_.new_unimplemented();}
- public Wdata_references_grp[] Parse_references(byte[] qid, Json_ary owner) {throw Err_.new_unimplemented();}
+ public Wbase_claim_grp_list Parse_qualifiers(byte[] qid, Json_nde nde) {throw Err_.new_unimplemented();}
+ public Wbase_references_grp[] Parse_references(byte[] qid, Json_ary owner) {throw Err_.new_unimplemented();}
public int[] Parse_pid_order(byte[] qid, Json_ary ary) {throw Err_.new_unimplemented();}
public static final String
Str_entity = "entity"
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/parsers/Wdata_doc_parser_v1_tst.java b/400_xowa/src/gplx/xowa/xtns/wbases/parsers/Wdata_doc_parser_v1_tst.java
similarity index 92%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/parsers/Wdata_doc_parser_v1_tst.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/parsers/Wdata_doc_parser_v1_tst.java
index d01eac347..8f2f9cbc1 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/parsers/Wdata_doc_parser_v1_tst.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/parsers/Wdata_doc_parser_v1_tst.java
@@ -15,9 +15,9 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.parsers; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.parsers; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
import org.junit.*;
-import gplx.langs.jsons.*; import gplx.xowa.xtns.wdatas.core.*;
+import gplx.langs.jsons.*; import gplx.xowa.xtns.wbases.core.*;
public class Wdata_doc_parser_v1_tst {
@Before public void init() {fxt.Init();} private Wdata_doc_parser_v1_fxt fxt = new Wdata_doc_parser_v1_fxt();
@Test public void Entity_v1_1() {
@@ -154,7 +154,7 @@ public class Wdata_doc_parser_v1_tst {
, " ]"
, "}"
)
- , fxt.Make_claim_str(1, "abc")
+ , fxt.Make_claim_string(1, "abc")
);
}
@Test public void Claim_bad() { // wikidata flags several entries as "bad"; https://www.wikidata.org/wiki/Wikidata:Project_chat/Archive/2013/10
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/parsers/Wdata_doc_parser_v2.java b/400_xowa/src/gplx/xowa/xtns/wbases/parsers/Wdata_doc_parser_v2.java
similarity index 87%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/parsers/Wdata_doc_parser_v2.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/parsers/Wdata_doc_parser_v2.java
index dc64e13fc..4571deef5 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/parsers/Wdata_doc_parser_v2.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/parsers/Wdata_doc_parser_v2.java
@@ -15,8 +15,9 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.parsers; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
-import gplx.langs.jsons.*; import gplx.xowa.xtns.wdatas.core.*; import gplx.core.btries.*;
+package gplx.xowa.xtns.wbases.parsers; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
+import gplx.langs.jsons.*; import gplx.core.btries.*;
+import gplx.xowa.xtns.wbases.core.*; import gplx.xowa.xtns.wbases.claims.*; import gplx.xowa.xtns.wbases.claims.enums.*; import gplx.xowa.xtns.wbases.claims.itms.*;
public class Wdata_doc_parser_v2 implements Wdata_doc_parser {
private Wdata_claims_parser_v2 claims_parser = new Wdata_claims_parser_v2();
public byte[] Parse_qid(Json_doc doc) {
@@ -38,7 +39,7 @@ 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 == Wdata_dict_utl.Tid_invalid) continue;
+ byte tid = Wdata_dict_utl.Get_tid_or_invalid(qid, dict, sub.Key().Data_bry()); if (tid == Wbase_claim_enum_.Tid__invalid) 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;
@@ -66,7 +67,7 @@ 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 == Wdata_dict_utl.Tid_invalid) continue;
+ byte tid = Wdata_dict_utl.Get_tid_or_invalid(qid, dict, sub.Key().Data_bry()); if (tid == Wbase_claim_enum_.Tid__invalid) continue;
switch (tid) {
case Wdata_dict_langtext.Tid_language: break;
case Wdata_dict_langtext.Tid_value: text_kv = Json_kv.cast(sub); break;
@@ -95,7 +96,7 @@ 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 == Wdata_dict_utl.Tid_invalid) continue;
+ byte tid = Wdata_dict_utl.Get_tid_or_invalid(qid, dict, sub.Key().Data_bry()); if (tid == Wbase_claim_enum_.Tid__invalid) continue;
switch (tid) {
case Wdata_dict_langtext.Tid_language: break;
case Wdata_dict_langtext.Tid_value: vals[j] = sub.Val().Data_bry(); break;
@@ -124,9 +125,9 @@ public class Wdata_doc_parser_v2 implements Wdata_doc_parser {
} catch (Exception e) {throw Err_.new_exc(e, "xo", "failed to parse claims", "qid", String_.new_u8(doc.Src()));}
}
}
- public Wdata_claim_itm_base Parse_claims_data(byte[] qid, int pid, byte snak_tid, Json_nde nde) {return claims_parser.Parse_datavalue(qid, pid, snak_tid, nde);}
- public Wdata_claim_grp_list Parse_qualifiers(byte[] qid, Json_nde nde) {return claims_parser.Parse_qualifiers(qid, nde);}
- public Wdata_references_grp[] Parse_references(byte[] qid, Json_ary owner) {return claims_parser.Parse_references(qid, owner);}
+ public Wbase_claim_base Parse_claims_data(byte[] qid, int pid, byte snak_tid, Json_nde nde) {return claims_parser.Parse_datavalue(qid, pid, snak_tid, nde);}
+ public Wbase_claim_grp_list Parse_qualifiers(byte[] qid, Json_nde nde) {return claims_parser.Parse_qualifiers(qid, nde);}
+ public Wbase_references_grp[] Parse_references(byte[] qid, Json_ary owner) {return claims_parser.Parse_references(qid, owner);}
public int[] Parse_pid_order(byte[] qid, Json_ary ary) {return claims_parser.Parse_pid_order(ary);}
public static final String
Str_id = "id"
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/parsers/Wdata_doc_parser_v2_tst.java b/400_xowa/src/gplx/xowa/xtns/wbases/parsers/Wdata_doc_parser_v2__basic__tst.java
similarity index 62%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/parsers/Wdata_doc_parser_v2_tst.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/parsers/Wdata_doc_parser_v2__basic__tst.java
index 8491c3f6f..7d7db0104 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/parsers/Wdata_doc_parser_v2_tst.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/parsers/Wdata_doc_parser_v2__basic__tst.java
@@ -15,10 +15,10 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.parsers; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.parsers; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
import org.junit.*;
-import gplx.langs.jsons.*; import gplx.xowa.xtns.wdatas.core.*;
-public class Wdata_doc_parser_v2_tst {
+import gplx.langs.jsons.*; import gplx.xowa.xtns.wbases.core.*;
+public class Wdata_doc_parser_v2__basic__tst {
@Before public void init() {fxt.Init();} private Wdata_doc_parser_v2_fxt fxt = new Wdata_doc_parser_v2_fxt();
@Test public void Entity() {
fxt.Test_entity("{ 'id':'Q2' }", "q2");
@@ -144,139 +144,6 @@ public class Wdata_doc_parser_v2_tst {
, fxt.Make_alias("fr", "fr_val_1")
);
}
- @Test public void Claims() {
- fxt.Test_claims(String_.Concat_lines_nl_skip_last
- ( "{ 'claims':"
- , " { 'P1':"
- , " ["
- , " { 'mainsnak':"
- , " { 'snaktype':'value'"
- , " , 'property':'P1'"
- , " , 'hash':'84487fc3f93b4f74ab1cc5a47d78f596f0b49390'"
- , " , 'datavalue':"
- , " { 'value':'abc'"
- , " , 'type':'string'"
- , " }"
- , " }"
- , " , 'type':'statement'"
- , " , 'id':'Q2$e8ba1188-4aec-9e37-a75e-f79466c1913e'"
- , " , 'rank':'normal'"
- , " }"
- , " ]"
- , " }"
- , "}"
- )
- , fxt.Make_claim_str(1, "abc")
- );
- }
- @Test public void Claims_novalue() {
- fxt.Test_claims(String_.Concat_lines_nl_skip_last
- ( "{ 'claims':"
- , " { 'P1':"
- , " ["
- , " { 'mainsnak':"
- , " { 'snaktype':'novalue'"
- , " , 'property':'P1'"
- , " , 'hash':'84487fc3f93b4f74ab1cc5a47d78f596f0b49390'"
- , " }"
- , " }"
- , " ]"
- , " }"
- , "}"
- )
- , fxt.Make_claim_novalue(1)
- );
- }
- @Test public void Claims_data_string() {
- fxt.Test_claims_data(String_.Concat_lines_nl_skip_last
- ( "{ 'value':'abc'"
- , ", 'type':'string'"
- , "}"
- )
- , fxt.Make_claim_str(1, "abc")
- );
- }
- @Test public void Claims_data_entity() {
- fxt.Test_claims_data(String_.Concat_lines_nl_skip_last
- ( "{ 'value':"
- , " { 'entity-type':'item'"
- , " , 'numeric-id':'123'"
- , " }"
- , ", 'type':'wikibase-entityid'"
- , "}"
- )
- , fxt.Make_claim_entity_qid(1, 123)
- );
- }
- @Test public void Claims_data_property() {
- fxt.Test_claims_data(String_.Concat_lines_nl_skip_last
- ( "{ 'value':"
- , " { 'entity-type':'property'"
- , " , 'numeric-id':'398'"
- , " }"
- , ", 'type':'wikibase-entityid'"
- , "}"
- )
- , fxt.Make_claim_entity_pid(1, 398)
- );
- }
- @Test public void Claims_data_monolingualtext() {
- fxt.Test_claims_data(String_.Concat_lines_nl_skip_last
- ( "{ 'value':"
- , " { 'text':'en_text'"
- , " , 'language':'en'"
- , " }"
- , ", 'type':'monolingualtext'"
- , "}"
- )
- , fxt.Make_claim_monolingualtext(1, "en", "en_text")
- );
- }
- @Test public void Claims_data_globecoordinate() {
- fxt.Test_claims_data(String_.Concat_lines_nl_skip_last
- ( "{ 'value':"
- , " { 'latitude':1.2"
- , " , 'longitude':3.4"
- , " , 'altitude':null"
- , " , 'precision':0.0002"
- , " , 'globe':'http:\\/\\/www.wikidata.org\\/entity\\/Q2'"
- , " }"
- , ", 'type':'globecoordinate'"
- , "}"
- )
- , fxt.Make_claim_globecoordinate(1, "1.2", "3.4", "0.0002")
- );
- }
- @Test public void Claims_data_quantity() {
- fxt.Test_claims_data(String_.Concat_lines_nl_skip_last
- ( "{ 'value':"
- , " { 'amount':'123'"
- , " , 'unit':'2'"
- , " , 'upperBound':'125'"
- , " , 'lowerBound':'121'"
- , " }"
- , ", 'type':'quantity'"
- , "}"
- )
- , fxt.Make_claim_quantity(1, 123, 2, 125, 121)
- );
- }
- @Test public void Claims_data_time() {
- fxt.Test_claims_data(String_.Concat_lines_nl_skip_last
- ( "{ 'value':"
- , " { 'time':'+00000002001-02-03T04:05:06Z'"
- , " , 'timezone':0"
- , " , 'before':0"
- , " , 'after':0"
- , " , 'precision':11"
- , " , 'calendarmodel':'http:\\/\\/www.wikidata.org\\/entity\\/Q1985727'"
- , " }"
- , ", 'type':'time'"
- , "}"
- )
- , fxt.Make_claim_time(1, "2001-02-03 04:05:06")
- );
- }
@Test public void Qualifiers() {
fxt.Test_qualifiers(String_.Concat_lines_nl_skip_last
( "{ 'qualifiers':"
@@ -377,7 +244,7 @@ public class Wdata_doc_parser_v2_tst {
), Int_.Ary(2, 3), fxt.Make_claim_entity_qid(2, 21), fxt.Make_claim_entity_qid(3, 31))
;
}
- @Test public void References_empty() { // PURPOSE:sometimes references can have 0 snaks; return back an empty Wdata_claim_grp_list, not null; PAGE:Птичкин,_Евгений_Николаевич; DATE:2015-02-16
+ @Test public void References_empty() { // PURPOSE:sometimes references can have 0 snaks; return back an empty Wbase_claim_grp_list, not null; PAGE:Птичкин,_Евгений_Николаевич; DATE:2015-02-16
fxt.Test_references(String_.Concat_lines_nl_skip_last
( "{ 'references':"
, " [ "
diff --git a/400_xowa/src/gplx/xowa/xtns/wbases/parsers/Wdata_doc_parser_v2__claims__tst.java b/400_xowa/src/gplx/xowa/xtns/wbases/parsers/Wdata_doc_parser_v2__claims__tst.java
new file mode 100644
index 000000000..f7895ef01
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/parsers/Wdata_doc_parser_v2__claims__tst.java
@@ -0,0 +1,193 @@
+/*
+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 .
+*/
+package gplx.xowa.xtns.wbases.parsers; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
+import org.junit.*;
+import gplx.langs.jsons.*; import gplx.xowa.xtns.wbases.core.*;
+public class Wdata_doc_parser_v2__claims__tst {
+ @Before public void init() {fxt.Init();} private Wdata_doc_parser_v2_fxt fxt = new Wdata_doc_parser_v2_fxt();
+ @Test public void Full__string() {
+ fxt.Test_claims(String_.Concat_lines_nl_skip_last
+ ( "{ 'claims':"
+ , " { 'P1':"
+ , " ["
+ , " { 'mainsnak':"
+ , " { 'snaktype':'value'"
+ , " , 'property':'P1'"
+ , " , 'hash':'84487fc3f93b4f74ab1cc5a47d78f596f0b49390'"
+ , " , 'datavalue':"
+ , " { 'value':'abc'"
+ , " , 'type':'string'"
+ , " }"
+ , " }"
+ , " , 'type':'statement'"
+ , " , 'id':'Q2$e8ba1188-4aec-9e37-a75e-f79466c1913e'"
+ , " , 'rank':'normal'"
+ , " }"
+ , " ]"
+ , " }"
+ , "}"
+ )
+ , fxt.Make_claim_string(1, "abc")
+ );
+ }
+ @Test public void Full__novalue() {
+ fxt.Test_claims(String_.Concat_lines_nl_skip_last
+ ( "{ 'claims':"
+ , " { 'P1':"
+ , " ["
+ , " { 'mainsnak':"
+ , " { 'snaktype':'novalue'"
+ , " , 'property':'P1'"
+ , " , 'hash':'84487fc3f93b4f74ab1cc5a47d78f596f0b49390'"
+ , " }"
+ , " }"
+ , " ]"
+ , " }"
+ , "}"
+ )
+ , fxt.Make_claim_novalue(1)
+ );
+ }
+ @Test public void Data__string() {
+ fxt.Test_claims_data(String_.Concat_lines_nl_skip_last
+ ( "{ 'value':'abc'"
+ , ", 'type':'string'"
+ , "}"
+ )
+ , fxt.Make_claim_string(1, "abc")
+ );
+ }
+ @Test public void Data__item() {
+ fxt.Test_claims_data(String_.Concat_lines_nl_skip_last
+ ( "{ 'value':"
+ , " { 'entity-type':'item'"
+ , " , 'numeric-id':'123'"
+ , " }"
+ , ", 'type':'wikibase-entityid'"
+ , "}"
+ )
+ , fxt.Make_claim_entity_qid(1, 123)
+ );
+ }
+ @Test public void Data__property() {
+ fxt.Test_claims_data(String_.Concat_lines_nl_skip_last
+ ( "{ 'value':"
+ , " { 'entity-type':'property'"
+ , " , 'numeric-id':'398'"
+ , " }"
+ , ", 'type':'wikibase-entityid'"
+ , "}"
+ )
+ , fxt.Make_claim_entity_pid(1, 398)
+ );
+ }
+ @Test public void Data__monolingualtext() {
+ fxt.Test_claims_data(String_.Concat_lines_nl_skip_last
+ ( "{ 'value':"
+ , " { 'text':'en_text'"
+ , " , 'language':'en'"
+ , " }"
+ , ", 'type':'monolingualtext'"
+ , "}"
+ )
+ , fxt.Make_claim_monolingualtext(1, "en", "en_text")
+ );
+ }
+ @Test public void Data__globecoordinate() {
+ fxt.Test_claims_data(String_.Concat_lines_nl_skip_last
+ ( "{ 'value':"
+ , " { 'latitude':1.2"
+ , " , 'longitude':3.4"
+ , " , 'altitude':null"
+ , " , 'precision':0.0002"
+ , " , 'globe':'http:\\/\\/www.wikidata.org\\/entity\\/Q2'"
+ , " }"
+ , ", 'type':'globecoordinate'"
+ , "}"
+ )
+ , fxt.Make_claim_globecoordinate(1, "1.2", "3.4", "0.0002")
+ );
+ }
+ @Test public void Data__quantity() {
+ fxt.Test_claims_data(String_.Concat_lines_nl_skip_last
+ ( "{ 'value':"
+ , " { 'amount':'123'"
+ , " , 'unit':'2'"
+ , " , 'upperBound':'125'"
+ , " , 'lowerBound':'121'"
+ , " }"
+ , ", 'type':'quantity'"
+ , "}"
+ )
+ , fxt.Make_claim_quantity(1, 123, 2, 125, 121)
+ );
+ }
+ @Test public void Data__time() {
+ fxt.Test_claims_data(String_.Concat_lines_nl_skip_last
+ ( "{ 'value':"
+ , " { 'time':'+00000002001-02-03T04:05:06Z'"
+ , " , 'timezone':0"
+ , " , 'before':0"
+ , " , 'after':0"
+ , " , 'precision':11"
+ , " , 'calendarmodel':'http:\\/\\/www.wikidata.org\\/entity\\/Q1985727'"
+ , " }"
+ , ", 'type':'time'"
+ , "}"
+ )
+ , fxt.Make_claim_time(1, "2001-02-03 04:05:06")
+ );
+ }
+ @Test public void Data__url() { // NOTE:has "String" property-type; EX:wd:Q23548; DATE:2016-07-28
+ fxt.Test_claims_data(String_.Concat_lines_nl_skip_last
+ ( "{ 'value':'http:\\/\\/www.nasa.gov\\/rss\\/dyn\\/breaking_news.rss'"
+ , ", 'type':'string'"
+ , "}"
+ )
+ , fxt.Make_claim_string(1, "http://www.nasa.gov/rss/dyn/breaking_news.rss")
+ );
+ }
+ @Test public void Data__commonsMedia() { // NOTE:has "String" property-type; EX:wd:Q327162; DATE:2016-07-28
+ fxt.Test_claims_data(String_.Concat_lines_nl_skip_last
+ ( "{ 'value':'Tabliczka E40.svg'"
+ , ", 'type':'string'"
+ , "}"
+ )
+ , fxt.Make_claim_string(1, "Tabliczka E40.svg")
+ );
+ }
+ @Test public void Data__externalid() { // NOTE:has "String" property-type; EX:wd:Q77177; DATE:2016-07-28
+ fxt.Test_claims_data(String_.Concat_lines_nl_skip_last
+ ( "{ 'value':'000331371'"
+ , ", 'type':'string'"
+ , "}"
+ )
+ , fxt.Make_claim_string(1, "000331371")
+ );
+ }
+ @Test public void Data__math() { // NOTE:has "String" property-type; EX:wd:Q11518; DATE:2016-07-28
+ fxt.Test_claims_data(String_.Concat_lines_nl_skip_last
+ ( "{ 'value':'a^2+b^2=c^2'"
+ , ", 'type':'string'"
+ , "}"
+ )
+ , fxt.Make_claim_string(1, "a^2+b^2=c^2")
+ );
+ }
+ // www.wikidata.org/wiki/Q11518
+}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/pfuncs/Wdata_external_lang_links_data.java b/400_xowa/src/gplx/xowa/xtns/wbases/pfuncs/Wdata_external_lang_links_data.java
similarity index 94%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/pfuncs/Wdata_external_lang_links_data.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/pfuncs/Wdata_external_lang_links_data.java
index 56ff173ea..a25fdc188 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/pfuncs/Wdata_external_lang_links_data.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/pfuncs/Wdata_external_lang_links_data.java
@@ -15,7 +15,7 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.pfuncs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.pfuncs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
import gplx.xowa.xtns.pfuncs.*;
import gplx.xowa.parsers.*; import gplx.xowa.parsers.tmpls.*;
public class Wdata_external_lang_links_data {
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/pfuncs/Wdata_pf_noExternalLangLinks.java b/400_xowa/src/gplx/xowa/xtns/wbases/pfuncs/Wdata_pf_noExternalLangLinks.java
similarity index 91%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/pfuncs/Wdata_pf_noExternalLangLinks.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/pfuncs/Wdata_pf_noExternalLangLinks.java
index 7ab057fc2..701655acf 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/pfuncs/Wdata_pf_noExternalLangLinks.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/pfuncs/Wdata_pf_noExternalLangLinks.java
@@ -15,7 +15,7 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.pfuncs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.pfuncs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
import gplx.langs.jsons.*;
import gplx.xowa.langs.*; import gplx.xowa.langs.kwds.*;
import gplx.xowa.xtns.pfuncs.*;
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/pfuncs/Wdata_pf_noExternalLangLinks_tst.java b/400_xowa/src/gplx/xowa/xtns/wbases/pfuncs/Wdata_pf_noExternalLangLinks_tst.java
similarity index 94%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/pfuncs/Wdata_pf_noExternalLangLinks_tst.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/pfuncs/Wdata_pf_noExternalLangLinks_tst.java
index 3bdaa32bb..89431879f 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/pfuncs/Wdata_pf_noExternalLangLinks_tst.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/pfuncs/Wdata_pf_noExternalLangLinks_tst.java
@@ -15,7 +15,7 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.pfuncs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.pfuncs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
import org.junit.*;
public class Wdata_pf_noExternalLangLinks_tst {
@Before public void init() {fxt.Clear();} Wdata_pf_noExternalLangLinks_fxt fxt = new Wdata_pf_noExternalLangLinks_fxt();
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/pfuncs/Wdata_pf_property.java b/400_xowa/src/gplx/xowa/xtns/wbases/pfuncs/Wdata_pf_property.java
similarity index 92%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/pfuncs/Wdata_pf_property.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/pfuncs/Wdata_pf_property.java
index 1973b2363..5a0b5310d 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/pfuncs/Wdata_pf_property.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/pfuncs/Wdata_pf_property.java
@@ -15,10 +15,10 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.pfuncs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.pfuncs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
import gplx.core.envs.*;
import gplx.core.primitives.*;
-import gplx.xowa.parsers.logs.*; import gplx.xowa.xtns.pfuncs.*; import gplx.xowa.xtns.wdatas.core.*;
+import gplx.xowa.parsers.logs.*; import gplx.xowa.xtns.pfuncs.*; import gplx.xowa.xtns.wbases.core.*; import gplx.xowa.xtns.wbases.claims.*;
import gplx.xowa.langs.kwds.*;
import gplx.xowa.parsers.*; import gplx.xowa.parsers.tmpls.*;
public class Wdata_pf_property extends Pf_func_base {
@@ -55,13 +55,13 @@ public class Wdata_pf_property extends Pf_func_base {
if (doc == null) return; // NOTE: some pages will not have a qid; EX: "Some_unknown_page" will not have a qid in wikidata; if no qid, then all {{#property:p###}} will have no prop_val
// get val based on pid and doc; EX: {{#property:p123|of=Earth}} -> doc=Q2; pid=123 -> "value of p123 in Q2"
- Wdata_claim_grp claim_grp = doc.Claim_list_get(pid_int);
+ Wbase_claim_grp claim_grp = doc.Claim_list_get(pid_int);
if (claim_grp == null) return;// NOTE: some props may not exist; EX: "Some_known_page" has a qid of 123 but does not have pid 345 required by {{#property:P345|q=123}}
wdata_mgr.Resolve_to_bfr(bfr, claim_grp, wiki.Wdata_wiki_lang()); // NOTE: was ctx.Page().Lang().Key_bry(), but fails in simplewiki; DATE:2013-12-02
if (property_wkr != null) property_wkr.Eval_end(ctx.Page(), pid_ttl, log_time_bgn);
}
}
- public static int Parse_pid(Number_parser num_parser, byte[] bry) {
+ public static int Parse_pid(Gfo_number_parser num_parser, byte[] bry) {
int bry_len = bry.length;
if (bry_len < 2) return Wdata_wiki_mgr.Pid_null; // must have at least 2 chars; p#
byte b_0 = bry[0];
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/pfuncs/Wdata_pf_property__basic__tst.java b/400_xowa/src/gplx/xowa/xtns/wbases/pfuncs/Wdata_pf_property__basic__tst.java
similarity index 89%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/pfuncs/Wdata_pf_property__basic__tst.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/pfuncs/Wdata_pf_property__basic__tst.java
index 605457672..da88cb666 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/pfuncs/Wdata_pf_property__basic__tst.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/pfuncs/Wdata_pf_property__basic__tst.java
@@ -15,13 +15,13 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.pfuncs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.pfuncs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
import org.junit.*; import gplx.xowa.parsers.*; import gplx.xowa.parsers.tmpls.*;
public class Wdata_pf_property__basic__tst {
@Before public void init() {fxt.Init();} private final Wdata_wiki_mgr_fxt fxt = new Wdata_wiki_mgr_fxt();
@Test public void String() {
fxt.Init_links_add("enwiki", "Test_page", "q1");
- fxt.Init__docs__add(fxt.doc_("q1", fxt.Make_claim_str(1, "a")));
+ fxt.Init__docs__add(fxt.doc_("q1", fxt.Make_claim_string(1, "a")));
fxt.Test_parse("{{#property:p1}}", "a");
fxt.Test_parse("{{#property:p2}}", "");
}
@@ -85,34 +85,34 @@ public class Wdata_pf_property__basic__tst {
}
@Test public void Multiple() {
fxt.Init_links_add("enwiki", "Test_page", "q1");
- fxt.Init__docs__add(fxt.doc_("q1", fxt.Make_claim_str(1, "a"), fxt.Make_claim_str(1, "b")));
+ fxt.Init__docs__add(fxt.doc_("q1", fxt.Make_claim_string(1, "a"), fxt.Make_claim_string(1, "b")));
fxt.Test_parse("{{#property:p1}}", "a"); // only take first; DATE:2015-08-02
}
@Test public void Q() {
fxt.Init_links_add("enwiki", "Test_page", "q2");
- fxt.Init__docs__add(fxt.doc_("q2", fxt.Make_claim_str(1, "a")));
+ fxt.Init__docs__add(fxt.doc_("q2", fxt.Make_claim_string(1, "a")));
fxt.Test_parse("{{#property:p1|q=q2}}", "a");
}
@Test public void Of() {
fxt.Init_links_add("enwiki", "Of_page", "q2");
- fxt.Init__docs__add(fxt.doc_("q2", fxt.Make_claim_str(1, "a")));
+ fxt.Init__docs__add(fxt.doc_("q2", fxt.Make_claim_string(1, "a")));
fxt.Test_parse("{{#property:p1|of=Of_page}}", "a");
}
@Test public void From() {
- fxt.Init__docs__add(fxt.doc_("Property:p2", fxt.Make_claim_str(1, "a")));
+ fxt.Init__docs__add(fxt.doc_("Property:p2", fxt.Make_claim_string(1, "a")));
fxt.Test_parse("{{#property:p1|from=p2}}", "a");
fxt.Test_parse("{{#property:p1|from=}}", "");
}
@Test public void Pid_as_name() {
fxt.Init_links_add("enwiki", "Test_page", "q2");
fxt.Init_pids_add("en", "astronomic symbol", 1);
- fxt.Init__docs__add(fxt.doc_("q2", fxt.Make_claim_str(1, "a")));
+ fxt.Init__docs__add(fxt.doc_("q2", fxt.Make_claim_string(1, "a")));
fxt.Test_parse("{{#property:astronomic symbol}}", "a");
}
@Test public void Empty_arg() { // PURPOSE: {{#property:p1|}} should not fail / warn; DATE:2013-11-15
fxt.Init_links_add("enwiki", "Test_page", "q2");
fxt.Init_pids_add("en", "astronomic symbol", 1);
- fxt.Init__docs__add(fxt.doc_("q2", fxt.Make_claim_str(1, "a")));
+ fxt.Init__docs__add(fxt.doc_("q2", fxt.Make_claim_string(1, "a")));
fxt.Test_parse("{{#property:p1|}}", "a");
}
@Test public void Parse_pid() {
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/pfuncs/Wdata_pf_property__parse__tst.java b/400_xowa/src/gplx/xowa/xtns/wbases/pfuncs/Wdata_pf_property__parse__tst.java
similarity index 93%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/pfuncs/Wdata_pf_property__parse__tst.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/pfuncs/Wdata_pf_property__parse__tst.java
index c2aaa284d..6e45d5c7a 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/pfuncs/Wdata_pf_property__parse__tst.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/pfuncs/Wdata_pf_property__parse__tst.java
@@ -15,7 +15,7 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.pfuncs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.pfuncs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
import org.junit.*; import gplx.xowa.parsers.*; import gplx.xowa.parsers.tmpls.*;
public class Wdata_pf_property__parse__tst {
@Before public void init() {fxt.Init();} private final Wdata_pf_property_data_fxt fxt = new Wdata_pf_property_data_fxt();
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/pfuncs/Wdata_pf_property_data.java b/400_xowa/src/gplx/xowa/xtns/wbases/pfuncs/Wdata_pf_property_data.java
similarity index 94%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/pfuncs/Wdata_pf_property_data.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/pfuncs/Wdata_pf_property_data.java
index e330fc342..81711755f 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/pfuncs/Wdata_pf_property_data.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/pfuncs/Wdata_pf_property_data.java
@@ -15,7 +15,7 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.pfuncs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.pfuncs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
import gplx.core.primitives.*;
import gplx.xowa.parsers.*; import gplx.xowa.parsers.tmpls.*;
public class Wdata_pf_property_data {
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/pfuncs/Wdata_pf_property_fmt.java b/400_xowa/src/gplx/xowa/xtns/wbases/pfuncs/Wdata_pf_property_fmt.java
similarity index 94%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/pfuncs/Wdata_pf_property_fmt.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/pfuncs/Wdata_pf_property_fmt.java
index 3bca226f5..e733101ca 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/pfuncs/Wdata_pf_property_fmt.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/pfuncs/Wdata_pf_property_fmt.java
@@ -15,7 +15,7 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.pfuncs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.pfuncs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
public class Wdata_pf_property_fmt {
public byte[] Separator() {return separator;} private byte[] separator;
public byte[] Value_template() {return value_template;} private byte[] value_template;
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/pfuncs/Wdata_pf_wbreponame.java b/400_xowa/src/gplx/xowa/xtns/wbases/pfuncs/Wdata_pf_wbreponame.java
similarity index 86%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/pfuncs/Wdata_pf_wbreponame.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/pfuncs/Wdata_pf_wbreponame.java
index 8d952ff8d..b9f4c21fa 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/pfuncs/Wdata_pf_wbreponame.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/pfuncs/Wdata_pf_wbreponame.java
@@ -15,7 +15,7 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.pfuncs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.pfuncs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
import gplx.langs.jsons.*;
import gplx.xowa.langs.*; import gplx.xowa.langs.kwds.*;
import gplx.xowa.xtns.pfuncs.*;
@@ -25,5 +25,5 @@ public class Wdata_pf_wbreponame extends Pf_func_base {
@Override public Pf_func New(int id, byte[] name) {return new Wdata_pf_wbreponame().Name_(name);}
@Override public void Func_evaluate(Bry_bfr bfr, Xop_ctx ctx, Xot_invk caller, Xot_invk self, byte[] src) {
bfr.Add(Reponame); // NOTE: MW has logic to look for message named "wbreponame", and returning it if it exists; only applies to non-WMF Wikidatas; DATE:2014-09-07
- } private static final byte[] Reponame = Bry_.new_a7("Wikidata");
+ } private static final byte[] Reponame = Bry_.new_a7("Wikidata");
}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/pfuncs/Wdata_pf_wbreponame_tst.java b/400_xowa/src/gplx/xowa/xtns/wbases/pfuncs/Wdata_pf_wbreponame_tst.java
similarity index 89%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/pfuncs/Wdata_pf_wbreponame_tst.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/pfuncs/Wdata_pf_wbreponame_tst.java
index 600f20e41..cb68c5eaa 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/pfuncs/Wdata_pf_wbreponame_tst.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/pfuncs/Wdata_pf_wbreponame_tst.java
@@ -15,7 +15,7 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.pfuncs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.pfuncs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
import org.junit.*;
public class Wdata_pf_wbreponame_tst {
@Before public void init() {fxt.Clear();} private Wdata_pf_wbreponame_fxt fxt = new Wdata_pf_wbreponame_fxt();
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/specials/Wdata_itemByTitle_cfg.java b/400_xowa/src/gplx/xowa/xtns/wbases/specials/Wdata_itemByTitle_cfg.java
similarity index 90%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/specials/Wdata_itemByTitle_cfg.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/specials/Wdata_itemByTitle_cfg.java
index 107d62d09..300058705 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/specials/Wdata_itemByTitle_cfg.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/specials/Wdata_itemByTitle_cfg.java
@@ -15,7 +15,7 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.specials; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.specials; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
public class Wdata_itemByTitle_cfg implements Gfo_invk {
public byte[] Site_default() {return site_default;} private byte[] site_default = Bry_.new_a7("enwiki");
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/specials/Wdata_itemByTitle_page.java b/400_xowa/src/gplx/xowa/xtns/wbases/specials/Wdata_itemByTitle_page.java
similarity index 96%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/specials/Wdata_itemByTitle_page.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/specials/Wdata_itemByTitle_page.java
index 90d1fed16..dffdb020e 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/specials/Wdata_itemByTitle_page.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/specials/Wdata_itemByTitle_page.java
@@ -15,7 +15,7 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.specials; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.specials; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
import gplx.core.net.*; import gplx.core.net.qargs.*; import gplx.core.brys.fmtrs.*;
import gplx.xowa.wikis.domains.*; import gplx.xowa.specials.*;
import gplx.xowa.apps.urls.*;
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/specials/Wdata_itemByTitle_page_tst.java b/400_xowa/src/gplx/xowa/xtns/wbases/specials/Wdata_itemByTitle_page_tst.java
similarity index 94%
rename from 400_xowa/src/gplx/xowa/xtns/wdatas/specials/Wdata_itemByTitle_page_tst.java
rename to 400_xowa/src/gplx/xowa/xtns/wbases/specials/Wdata_itemByTitle_page_tst.java
index 070d911d2..19e8676ca 100644
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/specials/Wdata_itemByTitle_page_tst.java
+++ b/400_xowa/src/gplx/xowa/xtns/wbases/specials/Wdata_itemByTitle_page_tst.java
@@ -15,7 +15,7 @@ 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 .
*/
-package gplx.xowa.xtns.wdatas.specials; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
+package gplx.xowa.xtns.wbases.specials; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*;
import org.junit.*; import gplx.xowa.wikis.domains.*;
public class Wdata_itemByTitle_page_tst {
@Before public void init() {fxt.Clear();} private Wdata_itemByTitle_page_fxt fxt = new Wdata_itemByTitle_page_fxt();
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_claim_itm_base.java b/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_claim_itm_base.java
deleted file mode 100644
index a8b589d2a..000000000
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_claim_itm_base.java
+++ /dev/null
@@ -1,35 +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 .
-*/
-package gplx.xowa.xtns.wdatas.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
-import gplx.xowa.xtns.wdatas.hwtrs.*;
-public abstract class Wdata_claim_itm_base implements CompareAble {
- public Wdata_claim_itm_base Ctor(int pid, byte snak_tid) {
- this.pid = pid;
- this.snak_tid = snak_tid;
- return this;
- }
- public int Pid() {return pid;} private int pid;
- public abstract byte Val_tid();
- public byte Snak_tid() {return snak_tid;} private byte snak_tid = Wdata_dict_snak_tid.Tid_value;
- public byte Rank_tid() {return rank_tid;} public void Rank_tid_(byte v) {this.rank_tid = v;} private byte rank_tid = Wdata_dict_rank.Tid_normal; // TEST: default to normal for tests
- public abstract void Welcome(Wdata_claim_visitor visitor);
- public int compareTo(Object obj) {
- Wdata_claim_itm_base comp = (Wdata_claim_itm_base)obj;
- return Int_.Compare(pid, comp.pid);
- }
-}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_claim_itm_core.java b/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_claim_itm_core.java
deleted file mode 100644
index c92bd5211..000000000
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_claim_itm_core.java
+++ /dev/null
@@ -1,26 +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 .
-*/
-package gplx.xowa.xtns.wdatas.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
-import gplx.xowa.xtns.wdatas.hwtrs.*;
-public abstract class Wdata_claim_itm_core extends Wdata_claim_itm_base {
- public byte[] Wguid() {return wguid;} public void Wguid_(byte[] v) {this.wguid = v;} private byte[] wguid;
- public String Prop_type() {return Prop_type_statement;} private static final String Prop_type_statement = "statement";
- public Wdata_claim_grp_list Qualifiers() {return qualifiers;} public Wdata_claim_itm_core Qualifiers_(Wdata_claim_grp_list v) {qualifiers = v; return this;} private Wdata_claim_grp_list qualifiers;
- public int[] Qualifiers_order() {return qualifiers_order;} public void Qualifiers_order_(int[] v) {qualifiers_order = v;} private int[] qualifiers_order;
- public Wdata_references_grp[] References() {return references;} public void References_(Wdata_references_grp[] v) {references = v;} private Wdata_references_grp[] references;
-}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_claim_itm_entity.java b/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_claim_itm_entity.java
deleted file mode 100644
index 8fbfaeb7c..000000000
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_claim_itm_entity.java
+++ /dev/null
@@ -1,49 +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 .
-*/
-package gplx.xowa.xtns.wdatas.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
-import gplx.xowa.xtns.wdatas.hwtrs.*;
-public class Wdata_claim_itm_entity extends Wdata_claim_itm_core { public Wdata_claim_itm_entity(int pid, byte snak_tid, byte entity_tid, byte[] entity_id_bry) {
- this.Ctor(pid, snak_tid);
- this.entity_tid = entity_tid;
- this.entity_id_bry = entity_id_bry;
- this.entity_id = Bry_.To_int(entity_id_bry);
- }
- @Override public byte Val_tid() {return Wdata_dict_val_tid.Tid_entity;}
- public int Entity_id() {return entity_id;} private final int entity_id;
- 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 == Wdata_dict_value_entity_tid.Tid_item;}
- public String Entity_tid_str() {return Wdata_dict_value_entity_tid.Xto_str(entity_tid);}
- public byte[] Entity_tid_bry() {return Wdata_dict_value_entity_tid.Xto_bry(entity_tid);}
- public byte[] Page_ttl_db() {
- return entity_tid == Wdata_dict_value_entity_tid.Tid_item
- ? Bry_.Add(Wdata_wiki_mgr.Ttl_prefix_qid_bry_db, entity_id_bry)
- : Bry_.Add(Wdata_wiki_mgr.Ttl_prefix_pid_bry, entity_id_bry)
- ;
- }
- public byte[] Page_ttl_gui() {
- return entity_tid == Wdata_dict_value_entity_tid.Tid_item
- ? Bry_.Add(Wdata_wiki_mgr.Ttl_prefix_qid_bry_gui, entity_id_bry)
- : Bry_.Add(Wdata_wiki_mgr.Ttl_prefix_pid_bry, entity_id_bry)
- ;
- }
- @Override public void Welcome(Wdata_claim_visitor visitor) {visitor.Visit_entity(this);}
- @Override public String toString() {// TEST:
- return String_.Concat_with_str("|", Wdata_dict_snak_tid.Xto_str(this.Snak_tid()), Wdata_dict_val_tid.Xto_str(this.Val_tid()), this.Entity_tid_str(), Int_.To_str(entity_id));
- }
-}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_claim_itm_globecoordinate.java b/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_claim_itm_globecoordinate.java
deleted file mode 100644
index 9c7497534..000000000
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_claim_itm_globecoordinate.java
+++ /dev/null
@@ -1,40 +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 .
-*/
-package gplx.xowa.xtns.wdatas.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
-import gplx.xowa.xtns.wdatas.hwtrs.*;
-public class Wdata_claim_itm_globecoordinate extends Wdata_claim_itm_core { public Wdata_claim_itm_globecoordinate(int pid, byte snak_tid, byte[] lat, byte[] lng, byte[] alt, byte[] prc, byte[] glb) {
- this.Ctor(pid, snak_tid);
- this.lat = lat; this.lng = lng; this.alt = alt; this.prc = prc; this.glb = glb;
- }
- @Override public byte Val_tid() {return Wdata_dict_val_tid.Tid_globecoordinate;}
- public byte[] Lat() {return lat;} private final byte[] lat;
- public byte[] Lng() {return lng;} private final byte[] lng;
- public byte[] Alt() {return alt;} private final byte[] alt;
- public byte[] Prc() {return prc;} private final byte[] prc;
- public Decimal_adp Prc_as_num() {
- if (prc_as_num == null)
- prc_as_num = Bry_.Eq(prc, Object_.Bry__null) ? Decimal_adp_.One : Decimal_adp_.parse(String_.new_a7(prc));
- return prc_as_num;
- } private Decimal_adp prc_as_num;
- public byte[] Glb() {return glb;} private final byte[] glb;
- public byte[] Glb_ttl() {return glb_ttl;} public void Glb_ttl_(byte[] v) {glb_ttl = v;} private byte[] glb_ttl;
- @Override public void Welcome(Wdata_claim_visitor visitor) {visitor.Visit_globecoordinate(this);}
- @Override public String toString() {// TEST:
- return String_.Concat_with_str("|", Wdata_dict_snak_tid.Xto_str(this.Snak_tid()), Wdata_dict_val_tid.Xto_str(this.Val_tid()), String_.new_u8(lat), String_.new_u8(lng), String_.new_u8(alt), String_.new_u8(prc), String_.new_u8(glb));
- }
-}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_claim_itm_monolingualtext.java b/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_claim_itm_monolingualtext.java
deleted file mode 100644
index b226637a1..000000000
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_claim_itm_monolingualtext.java
+++ /dev/null
@@ -1,31 +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 .
-*/
-package gplx.xowa.xtns.wdatas.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
-import gplx.xowa.xtns.wdatas.hwtrs.*;
-public class Wdata_claim_itm_monolingualtext extends Wdata_claim_itm_core { public Wdata_claim_itm_monolingualtext(int pid, byte snak_tid, byte[] lang, byte[] text) {
- this.Ctor(pid, snak_tid);
- this.lang = lang; this.text = text;
- }
- @Override public byte Val_tid() {return Wdata_dict_val_tid.Tid_monolingualtext;}
- public byte[] Lang() {return lang;} private final byte[] lang;
- public byte[] Text() {return text;} private final byte[] text;
- @Override public void Welcome(Wdata_claim_visitor visitor) {visitor.Visit_monolingualtext(this);}
- @Override public String toString() {// TEST:
- return String_.Concat_with_str("|", Wdata_dict_snak_tid.Xto_str(this.Snak_tid()), Wdata_dict_val_tid.Xto_str(this.Val_tid()), String_.new_u8(lang), String_.new_u8(text));
- }
-}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_claim_itm_system.java b/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_claim_itm_system.java
deleted file mode 100644
index ebe086e26..000000000
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_claim_itm_system.java
+++ /dev/null
@@ -1,31 +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 .
-*/
-package gplx.xowa.xtns.wdatas.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
-import gplx.xowa.xtns.wdatas.hwtrs.*;
-public class Wdata_claim_itm_system extends Wdata_claim_itm_core { public Wdata_claim_itm_system(int pid, byte val_tid, byte snak_tid) {
- this.Ctor(pid, snak_tid);
- this.val_tid = val_tid;
- }
- @Override public byte Val_tid() {return val_tid;} private byte val_tid;
- @Override public String toString() {// TEST:
- return String_.Concat_with_str("|", Wdata_dict_snak_tid.Xto_str(this.Snak_tid()), Wdata_dict_val_tid.Xto_str(this.Val_tid()));
- }
- @Override public void Welcome(Wdata_claim_visitor visitor) {visitor.Visit_system(this);}
- public static Wdata_claim_itm_system new_novalue(int pid) {return new Wdata_claim_itm_system(pid, Wdata_dict_val_tid.Tid_unknown , Wdata_dict_snak_tid.Tid_novalue);}
- public static Wdata_claim_itm_system new_somevalue(int pid) {return new Wdata_claim_itm_system(pid, Wdata_dict_val_tid.Tid_unknown , Wdata_dict_snak_tid.Tid_somevalue);}
-}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_claim_itm_time.java b/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_claim_itm_time.java
deleted file mode 100644
index 53af16032..000000000
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_claim_itm_time.java
+++ /dev/null
@@ -1,88 +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 .
-*/
-package gplx.xowa.xtns.wdatas.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
-import gplx.core.brys.fmtrs.*;
-import gplx.xowa.xtns.wdatas.hwtrs.*;
-public class Wdata_claim_itm_time extends Wdata_claim_itm_core { public Wdata_claim_itm_time(int pid, byte snak_tid, byte[] time, byte[] timezone, byte[] before, byte[] after, byte[] precision, byte[] calendar) {
- this.Ctor(pid, snak_tid);
- this.time = time; this.before = before; this.after = after; this.precision = precision; this.calendar = calendar;
- }
- @Override public byte Val_tid() {return Wdata_dict_val_tid.Tid_time;}
- public byte[] Time() {return time;} private final byte[] time;
- public Wdata_date Time_as_date() {
- if (time_as_date == null) time_as_date = Wdata_date.parse(time, this.Precision_int(), this.Before_int(), this.After_int(), this.Calendar_is_julian());
- return time_as_date;
- } private Wdata_date time_as_date;
- public byte[] Before() {return before;} private final byte[] before;
- public byte[] After() {return after;} private final byte[] after;
- public byte[] Precision() {return precision;} private final byte[] precision;
- public int Precision_int() {
- if (precision_int == Int_.Min_value) {
- precision_int = Bry_.To_int_or(precision, -1);
- if (precision_int == -1) {
- precision_int = Wdata_date.Fmt_ymdhns;
- Gfo_usr_dlg_.Instance.Warn_many("", "", "unknown precision: ~{0}", String_.new_u8(precision));
- }
- }
- return precision_int;
- } private int precision_int = Int_.Min_value;
- public int Before_int() {
- if (before_int == Int_.Min_value) {
- before_int = Bry_.To_int_or(before, -1);
- if (before_int == -1) {
- before_int = 0;
- Gfo_usr_dlg_.Instance.Warn_many("", "", "unknown before: ~{0}", String_.new_u8(before));
- }
- }
- return before_int;
- } private int before_int = Int_.Min_value;
- public int After_int() {
- if (after_int == Int_.Min_value) {
- after_int = Bry_.To_int_or(after, -1);
- if (after_int == -1) {
- after_int = 0;
- Gfo_usr_dlg_.Instance.Warn_many("", "", "unknown after: ~{0}", String_.new_u8(after));
- }
- }
- return after_int;
- } private int after_int = Int_.Min_value;
- public byte[] Calendar() {return calendar;} private final byte[] calendar;
- public byte[] Calendar_ttl() {return calendar_ttl;} public void Calendar_ttl_(byte[] v) {calendar_ttl = v;} private byte[] calendar_ttl;
- public boolean Calendar_is_julian() {return Bry_.Eq(calendar, Calendar_julian);}
- @Override public String toString() {// TEST:
- return String_.Concat_with_str("|", Wdata_dict_snak_tid.Xto_str(this.Snak_tid()), Wdata_dict_val_tid.Xto_str(this.Val_tid()), String_.new_u8(time), String_.new_u8(before), String_.new_u8(after), String_.new_u8(precision), String_.new_u8(calendar));
- }
- @Override public void Welcome(Wdata_claim_visitor visitor) {visitor.Visit_time(this);}
- public void Write_to_bfr(Bry_bfr bfr, Bry_bfr tmp_time_bfr, Bry_fmtr tmp_time_fmtr, Wdata_hwtr_msgs msgs, byte[] ttl) {
- try {
- Wdata_date date = this.Time_as_date();
- boolean calendar_is_julian = this.Calendar_is_julian();
- byte[] calendar_display = null;
- if (calendar_is_julian) {
- date = Wdata_date.Xto_julian(date);
- calendar_display = msgs.Time_julian();
- }
- Wdata_date.Xto_str(bfr, tmp_time_fmtr, tmp_time_bfr, msgs, date);
- if (calendar_display != null)
- bfr.Add_byte_space().Add(calendar_display);
- } catch (Exception e) {
- Xoa_app_.Usr_dlg().Warn_many("", "", "failed to write time; ttl=~{0} pid=~{1} err=~{2}", ttl, this.Pid(), Err_.Message_gplx_log(e));
- }
- }
- private static final byte[] Calendar_julian = Bry_.new_a7("http://www.wikidata.org/entity/Q1985786");
-}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_dict_rank.java b/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_dict_rank.java
deleted file mode 100644
index 47749c549..000000000
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_dict_rank.java
+++ /dev/null
@@ -1,54 +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 .
-*/
-package gplx.xowa.xtns.wdatas.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
-import gplx.core.primitives.*;
-public class Wdata_dict_rank {
- public static final byte // SERIALIZED:
- Tid_preferred = 2
- , Tid_normal = 1
- , Tid_deprecated = 0
- , Tid_unknown = Byte_.Max_value_127
- ;
- public static final String
- Str_preferred = "preferred"
- , Str_normal = "normal"
- , Str_deprecated = "deprecated"
- ;
- public static byte[]
- Bry_preferred = Bry_.new_a7(Str_preferred)
- , Bry_normal = Bry_.new_a7(Str_normal)
- , Bry_deprecated = Bry_.new_a7(Str_deprecated)
- ;
- public static final Hash_adp_bry Dict = Hash_adp_bry.cs()
- .Add_bry_byte(Bry_preferred , Tid_preferred)
- .Add_bry_byte(Bry_normal , Tid_normal)
- .Add_bry_byte(Bry_deprecated , Tid_deprecated)
- ;
- public static String Xto_str(byte tid) {
- switch (tid) {
- case Tid_preferred : return Str_preferred;
- case Tid_normal : return Str_normal;
- case Tid_deprecated : return Str_deprecated;
- default : throw Err_.new_unhandled(tid);
- }
- }
- public static byte Xto_tid(byte[] v) {
- Object rv_obj = Dict.Get_by_bry(v); if (rv_obj == null) throw Err_.new_wo_type("unknown rank", "val", String_.new_u8(v));
- return ((Byte_obj_val)rv_obj).Val();
- }
-}
\ No newline at end of file
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_dict_snak_tid.java b/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_dict_snak_tid.java
deleted file mode 100644
index bfebcf33d..000000000
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_dict_snak_tid.java
+++ /dev/null
@@ -1,61 +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 .
-*/
-package gplx.xowa.xtns.wdatas.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
-import gplx.core.primitives.*;
-public class Wdata_dict_snak_tid {
- public static final byte
- Tid_novalue = 0
- , Tid_value = 1
- , Tid_somevalue = 2
- ;
- public static final String
- Str_novalue = "novalue"
- , Str_value = "value"
- , Str_somevalue = "somevalue"
- ;
- public static final byte[]
- Bry_novalue = Bry_.new_a7(Str_novalue)
- , Bry_value = Bry_.new_a7(Str_value)
- , Bry_somevalue = Bry_.new_a7(Str_somevalue)
- ;
- private static Hash_adp_bry Dict = Hash_adp_bry.cs()
- .Add_bry_byte(Bry_novalue , Tid_novalue)
- .Add_bry_byte(Bry_value , Tid_value)
- .Add_bry_byte(Bry_somevalue , Tid_somevalue)
- ;
- public static String Xto_str(byte v) {
- switch (v) {
- case Tid_novalue: return Str_novalue;
- case Tid_value: return Str_value;
- case Tid_somevalue: return Str_somevalue;
- default: return "unknown";
- }
- }
- public static byte[] Xto_bry(byte v) {
- switch (v) {
- case Tid_novalue: return Bry_novalue;
- case Tid_value: return Bry_value;
- case Tid_somevalue: return Bry_somevalue;
- default: return null;
- }
- }
- public static byte Xto_tid(byte[] v) {
- Object rv_obj = Dict.Get_by_bry(v); if (rv_obj == null) throw Err_.new_wo_type("unknown snak tid", "val", String_.new_u8(v));
- return ((Byte_obj_val)rv_obj).Val();
- }
-}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_dict_val_tid.java b/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_dict_val_tid.java
deleted file mode 100644
index a6c2c146a..000000000
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_dict_val_tid.java
+++ /dev/null
@@ -1,91 +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 .
-*/
-package gplx.xowa.xtns.wdatas.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
-import gplx.core.primitives.*;
-public class Wdata_dict_val_tid {
- public static final byte
- Tid_unknown = 0
- , Tid_value = 1
- , Tid_bad = 1
- , Tid_string = 2
- , Tid_entity = 3
- , Tid_time = 4
- , Tid_globecoordinate = 5
- , Tid_quantity = 6
- , Tid_monolingualtext = 7
- ;
- public static final String
- Str_bad = "bad"
- , Str_string = "string"
- , Str_entity = "wikibase-entityid"
- , Str_time = "time"
- , Str_globecoordinate = "globecoordinate"
- , Str_quantity = "quantity"
- , Str_monolingualtext = "monolingualtext"
- , Str_unknown = "unknown"
- ;
- public static final byte[]
- Bry_bad = Bry_.new_a7(Str_bad)
- , Bry_string = Bry_.new_a7(Str_string)
- , Bry_entity = Bry_.new_a7(Str_entity)
- , Bry_time = Bry_.new_a7(Str_time)
- , Bry_globecoordinate = Bry_.new_a7(Str_globecoordinate)
- , Bry_quantity = Bry_.new_a7(Str_quantity)
- , Bry_monolingualtext = Bry_.new_a7(Str_monolingualtext)
- , Bry_unknown = Bry_.new_a7(Str_unknown)
- ;
- private static final Hash_adp_bry Dict = Hash_adp_bry.cs()
- .Add_bry_byte(Bry_string , Tid_string)
- .Add_bry_byte(Bry_entity , Tid_entity)
- .Add_bry_byte(Bry_time , Tid_time)
- .Add_bry_byte(Bry_globecoordinate , Tid_globecoordinate)
- .Add_bry_byte(Bry_quantity , Tid_quantity)
- .Add_bry_byte(Bry_monolingualtext , Tid_monolingualtext)
- .Add_bry_byte(Bry_bad , Tid_bad)
- ;
- public static String Xto_str(byte tid) {
- switch (tid) {
- case Tid_string : return Str_string;
- case Tid_entity : return Str_entity;
- case Tid_time : return Str_time;
- case Tid_globecoordinate : return Str_globecoordinate;
- case Tid_quantity : return Str_quantity;
- case Tid_monolingualtext : return Str_monolingualtext;
- case Tid_bad : return Str_bad; // NOTE: wikidata identifies several entries as "bad"; Q1615351|'s-Graveland, Q107538|Baco; DATE:2013-10-20
- default : return Str_unknown;
- }
- }
- public static String To_str__srl(byte tid) { // for scrib.wbase
- switch (tid) {
- case Tid_string : return Str_string;
- case Tid_entity : return "wikibase-item"; // changed from "wikibase-entityid"; PAGE:ht.w:Srilanka DATE:2016-07-08
- case Tid_time : return Str_time;
- case Tid_globecoordinate : return "globe-coordinate";
- case Tid_quantity : return Str_quantity;
- case Tid_monolingualtext : return Str_monolingualtext;
- case Tid_bad : return Str_bad; // NOTE: wikidata identifies several entries as "bad"; Q1615351|'s-Graveland, Q107538|Baco; DATE:2013-10-20
- default : return Str_unknown;
- }
- }
- public static byte Xto_tid(byte[] src) {return Xto_tid(src, 0, src.length);}
- public static byte Xto_tid(byte[] src, int bgn, int end) {
- Object bval_obj = Dict.Get_by_mid(src, bgn, end);
- if (bval_obj == null) return Tid_unknown;
- return ((Byte_obj_val)bval_obj).Val();
- }
-}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_dict_value_entity.java b/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_dict_value_entity.java
deleted file mode 100644
index 8526bda78..000000000
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_dict_value_entity.java
+++ /dev/null
@@ -1,36 +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 .
-*/
-package gplx.xowa.xtns.wdatas.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
-public class Wdata_dict_value_entity {
- public static final byte
- Tid_entity_type = 0
- , Tid_numeric_id = 1
- ;
- public static final String
- Str_entity_type = "entity-type"
- , Str_numeric_id = "numeric-id"
- ;
- public static byte[]
- Bry_entity_type = Bry_.new_a7(Str_entity_type)
- , Bry_numeric_id = Bry_.new_a7(Str_numeric_id)
- ;
- public static final Hash_adp_bry Dict = Hash_adp_bry.cs()
- .Add_bry_byte(Bry_entity_type , Tid_entity_type)
- .Add_bry_byte(Bry_numeric_id , Tid_numeric_id)
- ;
-}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_dict_value_entity_tid.java b/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_dict_value_entity_tid.java
deleted file mode 100644
index acaf7a01a..000000000
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_dict_value_entity_tid.java
+++ /dev/null
@@ -1,55 +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 .
-*/
-package gplx.xowa.xtns.wdatas.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
-import gplx.core.primitives.*;
-public class Wdata_dict_value_entity_tid {
- public static final byte
- Tid_item = 0
- , Tid_property = 1
- ;
- public static final String
- Str_item = "item"
- , Str_property = "property"
- ;
- public static final byte[]
- Bry_item = Bry_.new_a7(Str_item)
- , Bry_property = Bry_.new_a7(Str_property)
- ;
- private static Hash_adp_bry Dict = Hash_adp_bry.cs()
- .Add_bry_byte(Bry_item , Tid_item)
- .Add_bry_byte(Bry_property , Tid_property)
- ;
- public static String Xto_str(byte v) {
- switch (v) {
- case Tid_item: return Str_item;
- case Tid_property: return Str_property;
- default: return null;
- }
- }
- public static byte[] Xto_bry(byte v) {
- switch (v) {
- case Tid_item: return Bry_item;
- case Tid_property: return Bry_property;
- default: return null;
- }
- }
- public static byte Xto_tid(byte[] v) {
- Object rv_obj = Dict.Get_by_bry(v); if (rv_obj == null) throw Err_.new_wo_type("unknown entity_tid", "val", v);
- return ((Byte_obj_val)rv_obj).Val();
- }
-}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_dict_value_globecoordinate.java b/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_dict_value_globecoordinate.java
deleted file mode 100644
index 3cff8efe8..000000000
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_dict_value_globecoordinate.java
+++ /dev/null
@@ -1,54 +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 .
-*/
-package gplx.xowa.xtns.wdatas.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
-public class Wdata_dict_value_globecoordinate {
- public static final byte
- Tid_latitude = 0
- , Tid_longitude = 1
- , Tid_altitude = 2
- , Tid_precision = 3
- , Tid_globe = 4
- ;
- public static final String
- Str_latitude = "latitude"
- , Str_longitude = "longitude"
- , Str_altitude = "altitude"
- , Str_precision = "precision"
- , Str_globe = "globe"
- ;
- public static byte[]
- Bry_latitude = Bry_.new_a7(Str_latitude)
- , Bry_longitude = Bry_.new_a7(Str_longitude)
- , Bry_altitude = Bry_.new_a7(Str_altitude)
- , Bry_precision = Bry_.new_a7(Str_precision)
- , Bry_globe = Bry_.new_a7(Str_globe)
- ;
- public static final Hash_adp_bry Dict = Hash_adp_bry.cs()
- .Add_bry_byte(Bry_latitude , Tid_latitude)
- .Add_bry_byte(Bry_longitude , Tid_longitude)
- .Add_bry_byte(Bry_altitude , Tid_altitude)
- .Add_bry_byte(Bry_precision , Tid_precision)
- .Add_bry_byte(Bry_globe , Tid_globe)
- ;
- public static String
- Val_globe_dflt_str = "http://www.wikidata.org/entity/Q2"
- ;
- public static byte[]
- Val_globe_dflt_bry = Bry_.new_a7(Val_globe_dflt_str)
- ;
-}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_dict_value_monolingualtext.java b/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_dict_value_monolingualtext.java
deleted file mode 100644
index 89533943c..000000000
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_dict_value_monolingualtext.java
+++ /dev/null
@@ -1,36 +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 .
-*/
-package gplx.xowa.xtns.wdatas.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
-public class Wdata_dict_value_monolingualtext {
- public static final byte
- Tid_text = 0
- , Tid_language = 1
- ;
- public static final String
- Str_text = "text"
- , Str_language = "language"
- ;
- public static byte[]
- Bry_text = Bry_.new_a7(Str_text)
- , Bry_language = Bry_.new_a7(Str_language)
- ;
- public static final Hash_adp_bry Dict = Hash_adp_bry.cs()
- .Add_bry_byte(Bry_text , Tid_text)
- .Add_bry_byte(Bry_language , Tid_language)
- ;
-}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_dict_value_quantity.java b/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_dict_value_quantity.java
deleted file mode 100644
index 536e3d92a..000000000
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_dict_value_quantity.java
+++ /dev/null
@@ -1,44 +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 .
-*/
-package gplx.xowa.xtns.wdatas.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
-public class Wdata_dict_value_quantity {
- public static final byte
- Tid_amount = 0
- , Tid_unit = 1
- , Tid_upperbound = 2
- , Tid_lowerbound = 3
- ;
- public static final String
- Str_amount = "amount"
- , Str_unit = "unit"
- , Str_upperbound = "upperBound"
- , Str_lowerbound = "lowerBound"
- ;
- public static byte[]
- Bry_amount = Bry_.new_a7(Str_amount)
- , Bry_unit = Bry_.new_a7(Str_unit)
- , Bry_upperbound = Bry_.new_a7(Str_upperbound)
- , Bry_lowerbound = Bry_.new_a7(Str_lowerbound)
- ;
- public static final Hash_adp_bry Dict = Hash_adp_bry.cs()
- .Add_bry_byte(Bry_amount , Tid_amount)
- .Add_bry_byte(Bry_unit , Tid_unit)
- .Add_bry_byte(Bry_upperbound , Tid_upperbound)
- .Add_bry_byte(Bry_lowerbound , Tid_lowerbound)
- ;
-}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_dict_value_time.java b/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_dict_value_time.java
deleted file mode 100644
index e00324e6a..000000000
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/core/Wdata_dict_value_time.java
+++ /dev/null
@@ -1,93 +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 .
-*/
-package gplx.xowa.xtns.wdatas.core; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
-public class Wdata_dict_value_time {
- public static final byte
- Tid_time = 0
- , Tid_timezone = 1
- , Tid_before = 2
- , Tid_after = 3
- , Tid_precision = 4
- , Tid_calendarmodel = 5
- ;
- public static final String
- Str_time = "time"
- , Str_timezone = "timezone"
- , Str_before = "before"
- , Str_after = "after"
- , Str_precision = "precision"
- , Str_calendarmodel = "calendarmodel"
- ;
- public static byte[]
- Bry_time = Bry_.new_a7(Str_time)
- , Bry_timezone = Bry_.new_a7(Str_timezone)
- , Bry_before = Bry_.new_a7(Str_before)
- , Bry_after = Bry_.new_a7(Str_after)
- , Bry_precision = Bry_.new_a7(Str_precision)
- , Bry_calendarmodel = Bry_.new_a7(Str_calendarmodel)
- ;
- public static final Hash_adp_bry Dict = Hash_adp_bry.cs()
- .Add_bry_byte(Bry_time , Tid_time)
- .Add_bry_byte(Bry_timezone , Tid_timezone)
- .Add_bry_byte(Bry_before , Tid_before)
- .Add_bry_byte(Bry_after , Tid_after)
- .Add_bry_byte(Bry_precision , Tid_precision)
- .Add_bry_byte(Bry_calendarmodel , Tid_calendarmodel)
- ;
- public static final int
- Val_precision_int = 11
- , Val_before_int = 0
- , Val_after_int = 0
- , Val_timezone_int = 0
- ;
- public static final String
- Val_precision_str = "11"
- , Val_before_str = "0"
- , Val_after_str = "0"
- , Val_timezone_str = "0"
- , Val_calendarmodel_str = "http://www.wikidata.org/entity/Q1985727"
- ;
- public static final byte[]
- Val_precision_bry = Bry_.new_a7(Val_precision_str)
- , Val_before_bry = Bry_.new_a7(Val_before_str)
- , Val_after_bry = Bry_.new_a7(Val_after_str)
- , Val_timezone_bry = Bry_.new_a7(Val_timezone_str)
- , Val_calendarmodel_bry = Bry_.new_a7(Val_calendarmodel_str)
- ;
- public static byte[] Xto_time(String date) {return Xto_time(DateAdp_.parse_fmt(date, "yyyy-MM-dd HH:mm:ss"));}
- public static byte[] Xto_time(DateAdp date) {
- // +0000000yyyy-MM-ddTHH:mm:ssZ
- tmp_bfr
- .Add(Bry_year_prefix)
- .Add_int_fixed(date.Year(), 4)
- .Add_byte(Byte_ascii.Dash)
- .Add_int_fixed(date.Month(), 2)
- .Add_byte(Byte_ascii.Dash)
- .Add_int_fixed(date.Day(), 2)
- .Add_byte(Byte_ascii.Ltr_T)
- .Add_int_fixed(date.Hour(), 2)
- .Add_byte(Byte_ascii.Colon)
- .Add_int_fixed(date.Minute(), 2)
- .Add_byte(Byte_ascii.Colon)
- .Add_int_fixed(date.Second(), 2)
- .Add_byte(Byte_ascii.Ltr_Z)
- ;
- return tmp_bfr.To_bry_and_clear();
- }
- private static Bry_bfr tmp_bfr = Bry_bfr_.New(); private static byte[] Bry_year_prefix = Bry_.new_a7("+0000000");
-}
diff --git a/400_xowa/src/gplx/xowa/xtns/wdatas/parsers/Wdata_claims_parser_v2.java b/400_xowa/src/gplx/xowa/xtns/wdatas/parsers/Wdata_claims_parser_v2.java
deleted file mode 100644
index 2a7d763f4..000000000
--- a/400_xowa/src/gplx/xowa/xtns/wdatas/parsers/Wdata_claims_parser_v2.java
+++ /dev/null
@@ -1,247 +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 .
-*/
-package gplx.xowa.xtns.wdatas.parsers; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wdatas.*;
-import gplx.core.primitives.*;
-import gplx.langs.jsons.*; import gplx.xowa.xtns.wdatas.core.*;
-class Wdata_claims_parser_v2 {
- public void Make_claim_itms(byte[] qid, List_adp claim_itms_list, byte[] src, Json_kv claim_grp) {
- Json_ary claim_itms_ary = Json_ary.cast_or_null(claim_grp.Val());
- int claim_itms_len = claim_itms_ary.Len();
- int pid = Parse_pid(claim_grp.Key().Data_bry());
- for (int i = 0; i < claim_itms_len; ++i) {
- Json_nde claim_itm_nde = Json_nde.cast(claim_itms_ary.Get_at(i));
- Wdata_claim_itm_base itm = Parse_claim_itm(qid, claim_itm_nde, pid);
- if (itm != null) // HACK: itm can be null if value is "somevalue"; DATE:2014-09-20
- claim_itms_list.Add(itm);
- }
- }
- private Wdata_claim_itm_core 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 = Wdata_dict_rank.Tid_unknown;
- Wdata_claim_itm_core claim_itm = null; Wdata_claim_grp_list qualifiers = null; int[] qualifiers_order = null; Wdata_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 == Wdata_dict_utl.Tid_invalid) 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 = Wdata_dict_rank.Xto_tid(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"
- }
- }
- if (claim_itm != null) {
- claim_itm.Rank_tid_(rank_tid);
- if (qualifiers != null) claim_itm.Qualifiers_(qualifiers);
- if (qualifiers_order != null) claim_itm.Qualifiers_order_(qualifiers_order);
- if (snaks_grp != null) claim_itm.References_(snaks_grp);
- }
- return claim_itm;
- }
- public Wdata_references_grp[] Parse_references(byte[] qid, Json_ary owner) {
- int len = owner.Len();
- Wdata_references_grp[] rv = new Wdata_references_grp[len];
- for (int i = 0; i < len; ++i) {
- Json_nde grp_nde = Json_nde.cast(owner.Get_at(i));
- rv[i] = Parse_references_grp(qid, grp_nde);
- }
- return rv;
- }
- private Wdata_references_grp Parse_references_grp(byte[] qid, Json_nde owner) {
- int len = owner.Len();
- Hash_adp_bry dict = Wdata_dict_reference.Dict;
- Wdata_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 == Wdata_dict_utl.Tid_invalid) 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;
- }
- }
- return new Wdata_references_grp(snaks, snaks_order);
- }
- public Wdata_claim_grp_list Parse_qualifiers(byte[] qid, Json_nde qualifiers_nde) {
- Wdata_claim_grp_list rv = new Wdata_claim_grp_list();
- if (qualifiers_nde == null) return rv; // NOTE:sometimes references can have 0 snaks; return back an empty Wdata_claim_grp_list, not null; PAGE:Птичкин,_Евгений_Николаевич; DATE:2015-02-16
- int len = qualifiers_nde.Len();
- for (int i = 0; i < len; ++i) {
- Json_kv qualifier_kv = Json_kv.cast(qualifiers_nde.Get_at(i));
- int pid = Parse_pid(qualifier_kv.Key().Data_bry());
- Wdata_claim_grp claims_grp = Parse_props_grp(qid, pid, Json_ary.cast_or_null(qualifier_kv.Val()));
- rv.Add(claims_grp);
- }
- return rv;
- }
- public int[] Parse_pid_order(Json_ary ary) {
- int len = ary.Len();
- int[] rv = new int[len];
- for (int i = 0; i < len; ++i) {
- Json_itm pid_itm = ary.Get_at(i);
- rv[i] = Parse_pid(pid_itm.Data_bry());
- }
- return rv;
- }
- private Wdata_claim_grp Parse_props_grp(byte[] qid, int pid, Json_ary props_ary) {
- List_adp list = List_adp_.New();
- int len = props_ary.Len();
- for (int i = 0; i < len; ++i) {
- Json_nde qualifier_nde = Json_nde.cast(props_ary.Get_at(i));
- Wdata_claim_itm_core qualifier_itm = Parse_mainsnak(qid, qualifier_nde, pid);
- list.Add(qualifier_itm);
- }
- return new Wdata_claim_grp(Int_obj_ref.New(pid), (Wdata_claim_itm_core[])list.To_ary_and_clear(Wdata_claim_itm_core.class));
- }
- public Wdata_claim_itm_core 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 == Wdata_dict_utl.Tid_invalid) continue;
- switch (tid) {
- case Wdata_dict_mainsnak.Tid_snaktype: snak_tid = Wdata_dict_snak_tid.Xto_tid(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 Wdata_claim_itm_system(pid, Wdata_dict_val_tid.Tid_unknown, snak_tid); // NOTE: mainsnak can be null, especially for qualifiers; PAGE:Q2!P576; DATE:2014-09-20
- }
- public Wdata_claim_itm_core 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 = Wdata_dict_val_tid.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 == Wdata_dict_utl.Tid_invalid) continue;
- switch (tid) {
- case Wdata_dict_datavalue.Tid_type: value_tid = Wdata_dict_val_tid.Xto_tid(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"
- }
- }
- switch (value_tid) {
- case Wdata_dict_val_tid.Tid_string: return new Wdata_claim_itm_str(pid, snak_tid, value_itm.Data_bry());
- case Wdata_dict_val_tid.Tid_entity: return Parse_datavalue_entity (qid, pid, snak_tid, Json_nde.cast(value_itm));
- case Wdata_dict_val_tid.Tid_time: return Parse_datavalue_time (qid, pid, snak_tid, Json_nde.cast(value_itm));
- case Wdata_dict_val_tid.Tid_quantity: return Parse_datavalue_quantity (qid, pid, snak_tid, Json_nde.cast(value_itm));
- case Wdata_dict_val_tid.Tid_globecoordinate: return Parse_datavalue_globecoordinate (qid, pid, snak_tid, Json_nde.cast(value_itm));
- case Wdata_dict_val_tid.Tid_monolingualtext: return Parse_datavalue_monolingualtext (qid, pid, snak_tid, Json_nde.cast(value_itm));
- }
- throw Err_.new_wo_type("unknown val_tid", "val_tid", value_tid);
- }
- private Wdata_claim_itm_entity Parse_datavalue_entity(byte[] qid, int pid, byte snak_tid, Json_nde nde) {
- Hash_adp_bry dict = Wdata_dict_value_entity.Dict;
- int len = nde.Len();
- byte entity_tid = Byte_.Max_value_127;
- byte[] entity_id_bry = 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 == Wdata_dict_utl.Tid_invalid) continue;
- switch (tid) {
- case Wdata_dict_value_entity.Tid_entity_type: entity_tid = Wdata_dict_value_entity_tid.Xto_tid(sub.Val().Data_bry()); break;
- case Wdata_dict_value_entity.Tid_numeric_id: entity_id_bry = sub.Val().Data_bry(); break;
- }
- }
- if (entity_id_bry == null) throw Err_.new_wo_type("pid is invalid entity", "pid", pid);
- return new Wdata_claim_itm_entity(pid, snak_tid, entity_tid, entity_id_bry);
- }
- private Wdata_claim_itm_monolingualtext Parse_datavalue_monolingualtext(byte[] qid, int pid, byte snak_tid, Json_nde nde) {
- Hash_adp_bry dict = Wdata_dict_value_monolingualtext.Dict;
- int len = nde.Len();
- byte[] lang = null, text = 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 == Wdata_dict_utl.Tid_invalid) continue;
- byte[] sub_val_bry = sub.Val().Data_bry();
- switch (tid) {
- case Wdata_dict_value_monolingualtext.Tid_text: text = sub_val_bry; break;
- case Wdata_dict_value_monolingualtext.Tid_language: lang = sub_val_bry; break;
- }
- }
- if (lang == null || text == null) throw Err_.new_wo_type("pid is invalid monolingualtext", "pid", pid);
- return new Wdata_claim_itm_monolingualtext(pid, snak_tid, lang, text);
- }
- private Wdata_claim_itm_globecoordinate Parse_datavalue_globecoordinate(byte[] qid, int pid, byte snak_tid, Json_nde nde) {
- Hash_adp_bry dict = Wdata_dict_value_globecoordinate.Dict;
- int len = nde.Len();
- 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 = Wdata_dict_utl.Get_tid_or_invalid(qid, dict, sub.Key().Data_bry()); if (tid == Wdata_dict_utl.Tid_invalid) continue;
- byte[] sub_val_bry = sub.Val().Data_bry();
- switch (tid) {
- case Wdata_dict_value_globecoordinate.Tid_latitude: lat = sub_val_bry; break;
- case Wdata_dict_value_globecoordinate.Tid_longitude: lng = sub_val_bry; break;
- case Wdata_dict_value_globecoordinate.Tid_altitude: alt = sub_val_bry; break;
- case Wdata_dict_value_globecoordinate.Tid_precision: prc = sub_val_bry; break;
- case Wdata_dict_value_globecoordinate.Tid_globe: glb = sub_val_bry; break;
- }
- }
- if (lat == null || lng == null) throw Err_.new_wo_type("pid is invalid globecoordinate", "pid", pid);
- return new Wdata_claim_itm_globecoordinate(pid, snak_tid, lat, lng, alt, prc, glb);
- }
- private Wdata_claim_itm_quantity Parse_datavalue_quantity(byte[] qid, int pid, byte snak_tid, Json_nde nde) {
- Hash_adp_bry dict = Wdata_dict_value_quantity.Dict;
- int len = nde.Len();
- 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 = Wdata_dict_utl.Get_tid_or_invalid(qid, dict, sub.Key().Data_bry()); if (tid == Wdata_dict_utl.Tid_invalid) continue;
- byte[] sub_val_bry = sub.Val().Data_bry();
- switch (tid) {
- case Wdata_dict_value_quantity.Tid_amount: amount = sub_val_bry; break;
- case Wdata_dict_value_quantity.Tid_unit: unit = sub_val_bry; break;
- case Wdata_dict_value_quantity.Tid_upperbound: ubound = sub_val_bry; break;
- case Wdata_dict_value_quantity.Tid_lowerbound: lbound = sub_val_bry; break;
- }
- }
- if (amount == null) throw Err_.new_wo_type("pid is invalid quantity", "pid", pid);
- return new Wdata_claim_itm_quantity(pid, snak_tid, amount, unit, ubound, lbound);
- }
- private Wdata_claim_itm_time Parse_datavalue_time(byte[] qid, int pid, byte snak_tid, Json_nde nde) {
- Hash_adp_bry dict = Wdata_dict_value_time.Dict;
- int len = nde.Len();
- 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 = Wdata_dict_utl.Get_tid_or_invalid(qid, dict, sub.Key().Data_bry()); if (tid == Wdata_dict_utl.Tid_invalid) continue;
- byte[] sub_val_bry = sub.Val().Data_bry();
- switch (tid) {
- case Wdata_dict_value_time.Tid_time: time = sub_val_bry; break;
- case Wdata_dict_value_time.Tid_timezone: timezone = sub_val_bry; break;
- case Wdata_dict_value_time.Tid_before: before = sub_val_bry; break;
- case Wdata_dict_value_time.Tid_after: after = sub_val_bry; break;
- case Wdata_dict_value_time.Tid_precision: precision = sub_val_bry; break;
- case Wdata_dict_value_time.Tid_calendarmodel: calendarmodel = sub_val_bry; break;
- }
- }
- if (time == null) throw Err_.new_wo_type("pid is invalid time", "pid", pid);
- return new Wdata_claim_itm_time(pid, snak_tid, time, timezone, before, after, precision, calendarmodel);
- }
- private static int Parse_pid(byte[] pid_bry) {
- int rv = Bry_.To_int_or(pid_bry, 1, pid_bry.length, -1); if (rv == -1) throw Err_.new_wo_type("invalid pid", "pid", String_.new_u8(pid_bry));
- return rv;
- }
-}