mirror of
https://github.com/gnosygnu/xowa.git
synced 2024-10-27 20:34:16 +00:00
113 lines
7.7 KiB
Java
113 lines
7.7 KiB
Java
/*
|
|
XOWA: the XOWA Offline Wiki Application
|
|
Copyright (C) 2012 gnosygnu@gmail.com
|
|
|
|
This program is free software: you can redistribute it and/or modify
|
|
it under the terms of the GNU Affero General Public License as
|
|
published by the Free Software Foundation, either version 3 of the
|
|
License, or (at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU Affero General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Affero General Public License
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
package gplx.xowa; import gplx.*;
|
|
import gplx.xowa.langs.*;
|
|
import gplx.xowa.guis.*; import gplx.xowa.guis.views.*; import gplx.xowa.htmls.*; import gplx.xowa.wikis.pages.*;
|
|
import gplx.xowa.files.*; import gplx.xowa.files.xfers.*; import gplx.xowa.xtns.cite.*; import gplx.xowa.xtns.wdatas.*; import gplx.xowa.parsers.lnkis.redlinks.*; import gplx.xowa.htmls.tocs.*;
|
|
import gplx.xowa.htmls.modules.popups.*; import gplx.xowa.xtns.wdatas.pfuncs.*;
|
|
import gplx.xowa.parsers.*;
|
|
public class Xoae_page implements Xoa_page {
|
|
Xoae_page(Xowe_wiki wiki, Xoa_ttl ttl) {
|
|
this.wiki = wiki; this.ttl = ttl;
|
|
this.lang = wiki.Lang(); // default to wiki.lang; can be override later by wikitext
|
|
hdr_mgr = new Xow_hdr_mgr(this, Xoa_app_.Utl__encoder_mgr());
|
|
redlink_lnki_list = new Xopg_redlink_lnki_list(ttl.Ns().Id_is_module());
|
|
Ttl_(ttl);
|
|
} Xoae_page() {} // called by Null
|
|
public Xow_wiki Wiki() {return wiki;}
|
|
public Xoa_ttl Ttl() {return ttl;} public Xoae_page Ttl_(Xoa_ttl v) {ttl = v; url.Wiki_bry_(wiki.Domain_bry()).Page_bry_(v.Full_url()); return this;} private Xoa_ttl ttl;
|
|
public Xoa_url Url() {return url;} public Xoae_page Url_(Xoa_url v) {url = v; return this;} private Xoa_url url = Xoa_url.blank();
|
|
public byte[] Url_bry_safe() {return url == null ? Bry_.Empty : url.Raw();}
|
|
public void Xtn_gallery_packed_exists_y_() {html_data.Xtn_gallery_packed_exists_y_();}
|
|
public boolean Exists() {return !Missing();}
|
|
|
|
public Xoa_page__commons_mgr Commons_mgr() {return commons_mgr;} private final Xoa_page__commons_mgr commons_mgr = new Xoa_page__commons_mgr();
|
|
public Xopg_revision_data Revision_data() {return revision_data;} private Xopg_revision_data revision_data = new Xopg_revision_data();
|
|
public Xowe_wiki Wikie() {return wiki;} private Xowe_wiki wiki;
|
|
public Xopg_redlink_lnki_list Redlink_lnki_list() {return redlink_lnki_list;} private Xopg_redlink_lnki_list redlink_lnki_list;
|
|
public Xol_lang_itm Lang() {return lang;} public Xoae_page Lang_(Xol_lang_itm v) {lang = v; return this;} private Xol_lang_itm lang;
|
|
public Xopg_html_data Html_data() {return html_data;} private Xopg_html_data html_data = new Xopg_html_data();
|
|
public Xopg_tab_data Tab_data() {return tab_data;} private final Xopg_tab_data tab_data = new Xopg_tab_data();
|
|
public Xopg_hdump_data Hdump_data() {return hdump_data;} private final Xopg_hdump_data hdump_data = new Xopg_hdump_data();
|
|
public boolean Missing() {return missing;} public Xoae_page Missing_() {return Missing_(true);} public Xoae_page Missing_(boolean v) {missing = v; return this;} private boolean missing;
|
|
public boolean Redirected() {return redirected;} public Xoae_page Redirected_(boolean v) {redirected = v; return this;} private boolean redirected;
|
|
public List_adp Redirected_ttls() {return redirected_ttls;} private List_adp redirected_ttls = List_adp_.new_();
|
|
public byte[] Redirected_ttls__itm_0() {return (byte[])redirected_ttls.Get_at(0);}
|
|
public byte[] Redirected_src() {return redirected_src;} public void Redirected_src_(byte[] v) {this.redirected_src = v;} private byte[] redirected_src;
|
|
public byte Edit_mode() {return edit_mode;} private byte edit_mode; public void Edit_mode_update_() {edit_mode = Xoa_page_.Edit_mode_update;}
|
|
public Xop_root_tkn Root() {return root;} public Xoae_page Root_(Xop_root_tkn v) {root = v; return this;} private Xop_root_tkn root;
|
|
public byte[] Data_raw() {return data_raw;} public Xoae_page Data_raw_(byte[] v) {data_raw = v; return this;} private byte[] data_raw = Bry_.Empty;
|
|
public Xow_hdr_mgr Hdr_mgr() {return hdr_mgr;} private Xow_hdr_mgr hdr_mgr;
|
|
public Xoh_cmd_mgr Html_cmd_mgr() {return html_cmd_mgr;} private Xoh_cmd_mgr html_cmd_mgr = new Xoh_cmd_mgr();
|
|
public byte[][] Category_list() {return category_list;} public Xoae_page Category_list_(byte[][] v) {category_list = v; return this;} private byte[][] category_list = new byte[0][];
|
|
public List_adp Lnki_list() {return lnki_list;} public void Lnki_list_(List_adp v) {this.lnki_list = v;} private List_adp lnki_list = List_adp_.new_();
|
|
public Xof_xfer_queue File_queue() {return file_queue;} private Xof_xfer_queue file_queue = new Xof_xfer_queue();
|
|
public List_adp File_math() {return file_math;} private List_adp file_math = List_adp_.new_();
|
|
public Ref_itm_mgr Ref_mgr() {return ref_mgr;} private Ref_itm_mgr ref_mgr = new Ref_itm_mgr();
|
|
public Xopg_popup_mgr Popup_mgr() {return popup_mgr;} private Xopg_popup_mgr popup_mgr = new Xopg_popup_mgr();
|
|
public List_adp Slink_list() {return slink_list;} private List_adp slink_list = List_adp_.new_();
|
|
public Wdata_external_lang_links_data Wdata_external_lang_links() {return wdata_external_lang_links;} private Wdata_external_lang_links_data wdata_external_lang_links = new Wdata_external_lang_links_data();
|
|
public boolean Pages_recursed() {return pages_recursed;} public void Pages_recursed_(boolean v) {pages_recursed = v; } private boolean pages_recursed;
|
|
public int Bldr__ns_ord() {return bldr__ns_ord;} public void Bldr__ns_ord_(int v) {bldr__ns_ord = v;} private int bldr__ns_ord;
|
|
public Xopg_tmpl_prepend_mgr Tmpl_prepend_mgr() {return tmpl_prepend_mgr;} private Xopg_tmpl_prepend_mgr tmpl_prepend_mgr = new Xopg_tmpl_prepend_mgr();
|
|
public void Tmpl_stack_del() {--tmpl_stack_ary_len;}
|
|
public boolean Tmpl_stack_add(byte[] key) {
|
|
for (int i = 0; i < tmpl_stack_ary_len; i++) {
|
|
if (Bry_.Match(key, tmpl_stack_ary[i])) return false;
|
|
}
|
|
int new_len = tmpl_stack_ary_len + 1;
|
|
if (new_len > tmpl_stack_ary_max) {
|
|
tmpl_stack_ary_max = new_len * 2;
|
|
tmpl_stack_ary = (byte[][])Array_.Resize(tmpl_stack_ary, tmpl_stack_ary_max);
|
|
}
|
|
tmpl_stack_ary[tmpl_stack_ary_len] = key;
|
|
tmpl_stack_ary_len = new_len;
|
|
return true;
|
|
} private byte[][] tmpl_stack_ary = Bry_.Ary_empty; private int tmpl_stack_ary_len = 0, tmpl_stack_ary_max = 0;
|
|
public void Clear() { // NOTE: this is called post-fetch but pre-parse; do not clear items set by post-fetch, such as id, ttl, redirected_ttls, data_raw
|
|
hdr_mgr.Clear();
|
|
lnki_list.Clear();
|
|
file_math.Clear();
|
|
file_queue.Clear();
|
|
ref_mgr.Grps_clear();
|
|
html_cmd_mgr.Clear();
|
|
hdump_data.Clear();
|
|
wdata_external_lang_links.Reset();
|
|
gplx.xowa.xtns.scribunto.Scrib_core.Core_page_changed(this);
|
|
slink_list.Clear();
|
|
html_data.Clear();
|
|
tab_data.Clear();
|
|
pages_recursed = false;
|
|
tmpl_stack_ary = Bry_.Ary_empty;
|
|
tmpl_stack_ary_len = tmpl_stack_ary_max = 0;
|
|
popup_mgr.Clear();
|
|
revision_data.Clear();
|
|
tmpl_prepend_mgr.Clear();
|
|
commons_mgr.Clear();
|
|
}
|
|
public static final Xoae_page Null = null;
|
|
public static final Xoae_page Empty = new Xoae_page().Missing_();
|
|
public static Xoae_page test_(Xowe_wiki wiki, Xoa_ttl ttl) {return new Xoae_page(wiki, ttl);}
|
|
public static Xoae_page new_(Xowe_wiki wiki, Xoa_ttl ttl) {return new Xoae_page(wiki, ttl);}
|
|
public static Xoae_page create_(Xowe_wiki wiki, Xoa_ttl ttl) {
|
|
Xoae_page rv = new Xoae_page(wiki, ttl);
|
|
rv.edit_mode = Xoa_page_.Edit_mode_create;
|
|
return rv;
|
|
}
|
|
}
|