1
0
mirror of https://github.com/gnosygnu/xowa.git synced 2024-10-27 20:34:16 +00:00

Wiki.Dom: Remove wiki dependency from search db_mgr

This commit is contained in:
gnosygnu 2017-02-18 10:45:42 -05:00
parent 1188122823
commit 95632e0e98
7 changed files with 18 additions and 19 deletions

View File

@ -120,11 +120,11 @@ public class Xoctg_edit_mgr {
cat_core_tbl.Delete(page_id); cat_core_tbl.Delete(page_id);
} }
} }
public static void Update_page_id(Xowe_wiki wiki, int ns_id, int old_id, int new_id) { public static void Update_page_id(Xow_db_mgr db_mgr, int ns_id, int old_id, int new_id) {
boolean ns_id_is_category = ns_id == Xow_ns_.Tid__category; boolean ns_id_is_category = ns_id == Xow_ns_.Tid__category;
// get cat_link_tbls // get cat_link_tbls
Xodb_cat_link_tbl[] cat_link_tbls = Xodb_cat_link_tbl.Get_catlink_tbls(wiki.Data__core_mgr()); Xodb_cat_link_tbl[] cat_link_tbls = Xodb_cat_link_tbl.Get_catlink_tbls(db_mgr);
// loop cat_link tbls to find linked categories // loop cat_link tbls to find linked categories
for (Xodb_cat_link_tbl cat_link_tbl : cat_link_tbls) { for (Xodb_cat_link_tbl cat_link_tbl : cat_link_tbls) {
@ -136,7 +136,7 @@ public class Xoctg_edit_mgr {
// update cat_core // update cat_core
if (ns_id_is_category) { if (ns_id_is_category) {
Xowd_cat_core_tbl cat_core_tbl = Xodb_cat_db_.Get_cat_core_or_fail(wiki.Data__core_mgr()); Xowd_cat_core_tbl cat_core_tbl = Xodb_cat_db_.Get_cat_core_or_fail(db_mgr);
cat_core_tbl.Update_page_id(old_id, new_id); cat_core_tbl.Update_page_id(old_id, new_id);
} }
} }

View File

@ -115,7 +115,7 @@ public class Xopg_db_mgr {
} }
// cat_core, cat_link // cat_core, cat_link
gplx.xowa.addons.wikis.ctgs.edits.Xoctg_edit_mgr.Update_page_id(wiki, ns_id, old_id, new_id); gplx.xowa.addons.wikis.ctgs.edits.Xoctg_edit_mgr.Update_page_id(db_mgr, ns_id, old_id, new_id);
// search_link // search_link
Srch_search_addon.Get(wiki).Update_links(ns_id, old_id, new_id); Srch_search_addon.Get(wiki).Update_links(ns_id, old_id, new_id);

View File

@ -23,7 +23,7 @@ public class Srch_search_addon implements Xoax_addon_itm, Srch_search_addon_api
private final Srch_search_mgr search_mgr; private final Srch_search_mgr search_mgr;
public Srch_search_addon(Xow_wiki wiki) { public Srch_search_addon(Xow_wiki wiki) {
this.wiki_domain = wiki.Domain_bry(); this.wiki_domain = wiki.Domain_bry();
this.db_mgr = new Srch_db_mgr(wiki).Init(); this.db_mgr = new Srch_db_mgr(wiki.Data__core_mgr()).Init(wiki.Stats().Num_pages());
this.ttl_parser = new Srch_text_parser().Init_for_ttl(wiki.Case_mgr()); this.ttl_parser = new Srch_text_parser().Init_for_ttl(wiki.Case_mgr());
this.search_mgr = new Srch_search_mgr(this, wiki, ttl_parser); this.search_mgr = new Srch_search_mgr(this, wiki, ttl_parser);
} }

View File

@ -46,7 +46,7 @@ class Srch_temp_tbl_wkr implements Srch_text_parser_wkr {
search_temp_tbl.Insert_end(); search_temp_tbl.Insert_end();
// init // init
Srch_db_mgr search_db_mgr = search_addon.Db_mgr().Init(); // NOTE: must call .Init for import-offline else Cfg_tbl will be null; note that .Init will bind to newly created search_word / search_link tbl; DATE:2016-04-04 Srch_db_mgr search_db_mgr = search_addon.Db_mgr().Init(wiki.Stats().Num_pages()); // NOTE: must call .Init for import-offline else Cfg_tbl will be null; note that .Init will bind to newly created search_word / search_link tbl; DATE:2016-04-04
Db_conn word_conn = search_temp_tbl.conn; Db_conn word_conn = search_temp_tbl.conn;
// update search_word ids if they exist // update search_word ids if they exist

View File

@ -19,11 +19,9 @@ package gplx.xowa.addons.wikis.searchs.dbs; import gplx.*; import gplx.xowa.*; i
import gplx.dbs.cfgs.*; import gplx.dbs.cfgs.*;
import gplx.xowa.wikis.data.*; import gplx.xowa.wikis.data.*;
public class Srch_db_mgr { public class Srch_db_mgr {
private final Xow_wiki wiki; private final Xow_db_mgr db_mgr;
public final Srch_db_upgrade Upgrade_mgr; public Srch_db_mgr(Xow_db_mgr db_mgr) {
public Srch_db_mgr(Xow_wiki wiki) { this.db_mgr = db_mgr;
this.wiki = wiki;
Upgrade_mgr = new Srch_db_upgrade(wiki, this);
} }
public Srch_db_cfg Cfg() {return cfg;} private Srch_db_cfg cfg; public Srch_db_cfg Cfg() {return cfg;} private Srch_db_cfg cfg;
public Db_cfg_tbl Tbl__cfg() {return tbl__cfg;} private Db_cfg_tbl tbl__cfg; public Db_cfg_tbl Tbl__cfg() {return tbl__cfg;} private Db_cfg_tbl tbl__cfg;
@ -32,8 +30,7 @@ public class Srch_db_mgr {
public Srch_link_tbl Tbl__link__get_at(int i) {return tbl__link__ary[i];} public Srch_link_tbl Tbl__link__get_at(int i) {return tbl__link__ary[i];}
public int Tbl__link__get_idx(int ns) {return ns == gplx.xowa.wikis.nss.Xow_ns_.Tid__main ? 0 : tbl__link__ary.length - 1;} public int Tbl__link__get_idx(int ns) {return ns == gplx.xowa.wikis.nss.Xow_ns_.Tid__main ? 0 : tbl__link__ary.length - 1;}
public Srch_link_tbl[] Tbl__link__ary() {return tbl__link__ary;} private Srch_link_tbl[] tbl__link__ary = Srch_link_tbl.Ary_empty; public Srch_link_tbl[] Tbl__link__ary() {return tbl__link__ary;} private Srch_link_tbl[] tbl__link__ary = Srch_link_tbl.Ary_empty;
public Srch_db_mgr Init() { public Srch_db_mgr Init(long num_pages) {
Xow_db_mgr db_mgr = wiki.Data__core_mgr();
Xowd_core_db_props db_props = db_mgr.Db__core().Db_props(); Xowd_core_db_props db_props = db_mgr.Db__core().Db_props();
Xow_db_file word_db = null; Xow_db_file word_db = null;
if ( db_props.Schema() == 1 if ( db_props.Schema() == 1
@ -63,12 +60,12 @@ public class Srch_db_mgr {
} }
} }
} }
cfg = Srch_db_cfg_.New(tbl__cfg, wiki.Stats().Num_pages(), Srch_db_cfg_.Select__version_id(tbl__cfg, tbl__word)); cfg = Srch_db_cfg_.New(tbl__cfg, num_pages, Srch_db_cfg_.Select__version_id(tbl__cfg, tbl__word));
return this; return this;
} }
public void Delete_all(Xow_db_mgr core_data_mgr) { public void Delete_all(Xow_db_mgr core_data_mgr) {
tbl__word.conn.Meta_tbl_delete(Srch_link_reg_tbl.Tbl_name); tbl__word.conn.Meta_tbl_delete(Srch_link_reg_tbl.Tbl_name);
Xowd_core_db_props db_props = wiki.Data__core_mgr().Db__core().Db_props(); Xowd_core_db_props db_props = db_mgr.Db__core().Db_props();
if ( db_props.Schema() == 1 if ( db_props.Schema() == 1
|| db_props.Layout_text().Tid_is_all_or_few()) { || db_props.Layout_text().Tid_is_all_or_few()) {
// single_db; just drop tables // single_db; just drop tables
@ -82,8 +79,7 @@ public class Srch_db_mgr {
} }
} }
public void Create_all() { public void Create_all() {
Xow_db_mgr db_mgr = wiki.Data__core_mgr(); Xowd_core_db_props db_props = db_mgr.Db__core().Db_props();
Xowd_core_db_props db_props = wiki.Data__core_mgr().Db__core().Db_props();
if ( db_props.Schema() == 1 if ( db_props.Schema() == 1
|| db_props.Layout_text().Tid_is_all_or_few()) { || db_props.Layout_text().Tid_is_all_or_few()) {
// single_db; put both in core_db // single_db; put both in core_db

View File

@ -16,6 +16,7 @@ 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/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
package gplx.xowa.addons.wikis.searchs.searchers; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.wikis.*; import gplx.xowa.addons.wikis.searchs.*; package gplx.xowa.addons.wikis.searchs.searchers; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.wikis.*; import gplx.xowa.addons.wikis.searchs.*;
import gplx.xowa.addons.wikis.searchs.dbs.*;
import gplx.xowa.addons.wikis.searchs.searchers.rslts.*; import gplx.xowa.addons.wikis.searchs.searchers.wkrs.*; import gplx.xowa.addons.wikis.searchs.parsers.*; import gplx.xowa.addons.wikis.searchs.searchers.crts.*; import gplx.xowa.addons.wikis.searchs.searchers.rslts.*; import gplx.xowa.addons.wikis.searchs.searchers.wkrs.*; import gplx.xowa.addons.wikis.searchs.parsers.*; import gplx.xowa.addons.wikis.searchs.searchers.crts.*;
import gplx.xowa.addons.wikis.searchs.searchers.crts.visitors.*; import gplx.xowa.addons.wikis.searchs.searchers.crts.visitors.*;
import gplx.core.net.*; import gplx.core.net.qargs.*; import gplx.core.net.*; import gplx.core.net.qargs.*;
@ -51,7 +52,8 @@ public class Srch_search_mgr implements Gfo_invk {
// handle obsolete search dbs; // handle obsolete search dbs;
if (addon.Db_mgr().Cfg().Version_id__needs_upgrade()) { if (addon.Db_mgr().Cfg().Version_id__needs_upgrade()) {
addon.Db_mgr().Upgrade_mgr.Upgrade(); Srch_db_upgrade upgrade_mgr = new Srch_db_upgrade(wiki, addon.Db_mgr());
upgrade_mgr.Upgrade();
return; return;
} }

View File

@ -20,9 +20,10 @@ import gplx.dbs.*; import gplx.dbs.cfgs.*; import gplx.core.lists.hashs.*;
import gplx.xowa.wikis.dbs.*; import gplx.xowa.wikis.data.tbls.*; import gplx.xowa.wikis.dbs.*; import gplx.xowa.wikis.data.tbls.*;
import gplx.xowa.wikis.domains.*; import gplx.xowa.bldrs.infos.*; import gplx.xowa.wikis.metas.*; import gplx.xowa.wikis.domains.*; import gplx.xowa.bldrs.infos.*; import gplx.xowa.wikis.metas.*;
public class Xow_db_mgr { public class Xow_db_mgr {
private final Io_url wiki_root_dir;
private final String domain_str; // needed for generating new files; EX: en.wikipedia.org-text.ns.001.xowa
private final Ordered_hash hash_by_id = Ordered_hash_.New(); private final Xow_db_file_hash hash_by_tids = new Xow_db_file_hash(); private final Ordered_hash hash_by_id = Ordered_hash_.New(); private final Xow_db_file_hash hash_by_tids = new Xow_db_file_hash();
private int db_id_next = 0; private int db_id_next = 0;
private final Io_url wiki_root_dir; private final String domain_str; // needed for generating new files; EX: en.wikipedia.org-text.ns.001.xowa
public Xow_db_mgr(Io_url wiki_root_dir, String domain_str) { public Xow_db_mgr(Io_url wiki_root_dir, String domain_str) {
this.wiki_root_dir = wiki_root_dir; this.wiki_root_dir = wiki_root_dir;
this.domain_str = domain_str; this.domain_str = domain_str;