mirror of
https://github.com/gnosygnu/xowa.git
synced 2024-10-27 20:34:16 +00:00
Wikibase: Fix import failing due to NPE on wbase_db
This commit is contained in:
parent
d98639c18a
commit
d35adffa31
@ -16,6 +16,7 @@ Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
|
||||
package gplx.xowa.bldrs; import gplx.*; import gplx.xowa.*;
|
||||
import gplx.core.primitives.*;
|
||||
import gplx.xowa.wikis.*; import gplx.xowa.xtns.wbases.imports.*;
|
||||
import gplx.xowa.wikis.data.*;
|
||||
import gplx.xowa.bldrs.wkrs.*; import gplx.xowa.bldrs.cmds.texts.*; import gplx.xowa.bldrs.cmds.texts.sqls.*; import gplx.xowa.bldrs.cmds.texts.tdbs.*; import gplx.xowa.addons.bldrs.files.*; import gplx.xowa.addons.wikis.ctgs.bldrs.*; import gplx.xowa.bldrs.cmds.utils.*;
|
||||
import gplx.xowa.bldrs.cmds.diffs.*;
|
||||
import gplx.xowa.files.origs.*; import gplx.xowa.htmls.core.bldrs.*;
|
||||
@ -49,7 +50,7 @@ public class Xob_cmd_mgr implements Gfo_invk {
|
||||
else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_util_download)) return Add(new Xob_download_cmd(bldr, wiki));
|
||||
else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_util_xml_dump)) return Add(new Xob_xml_dumper_cmd(bldr, wiki));
|
||||
else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_wbase_qid)) return Xml_rdr_direct_add(wiki, new Xob_wdata_qid_sql().Ctor(bldr, wiki));
|
||||
else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_wbase_pid)) return Xml_rdr_direct_add(wiki, new Xob_wdata_pid_sql(wiki.Data__core_mgr().Db__wbase().Conn()).Ctor(bldr, wiki));
|
||||
else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_wbase_pid)) return Xml_rdr_direct_add(wiki, new Xob_wdata_pid_sql(null, wiki).Ctor(bldr, wiki));
|
||||
else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_wbase_db)) return Add(new Xob_wdata_db_cmd(bldr, wiki));
|
||||
else if (String_.Eq(cmd_key, Xob_cmd_keys.Key_site_meta)) return Add(new Xob_site_meta_cmd(bldr, wiki));
|
||||
|
||||
|
@ -17,15 +17,18 @@ package gplx.xowa.xtns.wbases.imports; import gplx.*; import gplx.xowa.*; import
|
||||
import gplx.xowa.wikis.data.*; import gplx.dbs.*; import gplx.xowa.wikis.dbs.*; import gplx.xowa.wikis.data.tbls.*;
|
||||
import gplx.xowa.xtns.wbases.dbs.*; import gplx.xowa.xtns.wbases.claims.enums.*;
|
||||
public class Xob_wdata_pid_sql extends Xob_wdata_pid_base {
|
||||
private final Db_conn conn;
|
||||
private Db_conn conn;
|
||||
private Wbase_pid_tbl tbl__pid;
|
||||
private Xowb_prop_tbl tbl__prop;
|
||||
private final Ordered_hash datatype_hash = Ordered_hash_.New_bry();
|
||||
public Xob_wdata_pid_sql(Db_conn conn) {
|
||||
public Xob_wdata_pid_sql(Db_conn conn, Xowe_wiki wiki) {
|
||||
this.conn = conn;
|
||||
this.wiki = wiki;
|
||||
}
|
||||
@Override public String Page_wkr__key() {return gplx.xowa.bldrs.Xob_cmd_keys.Key_wbase_pid;}
|
||||
@Override public void Pid_bgn() {
|
||||
if (conn == null)
|
||||
conn = wiki.Data__core_mgr().Db__wbase().Conn();
|
||||
// init datatype_hash
|
||||
Wbase_enum_hash enum_hash = Wbase_claim_type_.Reg;
|
||||
byte len = (byte)enum_hash.Len();
|
||||
|
@ -31,7 +31,7 @@ public class Xob_wdata_pid_sql_tst {
|
||||
|
||||
@Test public void Basic() {
|
||||
fxt.Wiki().Ns_mgr().Add_new(Wdata_wiki_mgr.Ns_property, "Property");
|
||||
Xob_wdata_pid_sql wkr = new Xob_wdata_pid_sql(conn);
|
||||
Xob_wdata_pid_sql wkr = new Xob_wdata_pid_sql(conn, null);
|
||||
wkr.Ctor(fxt.Bldr(), fxt.Wiki());
|
||||
|
||||
fxt.Run_page_wkr(wkr
|
||||
|
@ -20,13 +20,7 @@ public class Xob_wdata_qid_sql extends Xob_wdata_qid_base {
|
||||
private Wbase_qid_tbl tbl;
|
||||
@Override public String Page_wkr__key() {return gplx.xowa.bldrs.Xob_cmd_keys.Key_wbase_qid;}
|
||||
@Override public void Qid_bgn() {
|
||||
Xow_db_mgr db_mgr = wiki.Db_mgr_as_sql().Core_data_mgr();
|
||||
boolean db_is_all_or_few = db_mgr.Props().Layout_text().Tid_is_all_or_few();
|
||||
Xow_db_file wbase_db = db_is_all_or_few
|
||||
? db_mgr.Db__core()
|
||||
: db_mgr.Dbs__make_by_tid(Xow_db_file_.Tid__wbase);
|
||||
if (db_is_all_or_few)
|
||||
db_mgr.Db__wbase_(wbase_db);
|
||||
Xow_db_file wbase_db = Make_wbase_db(wiki.Db_mgr_as_sql().Core_data_mgr());
|
||||
tbl = Wbase_qid_tbl.New_make(wbase_db.Conn(), false);
|
||||
tbl.Create_tbl();
|
||||
tbl.Insert_bgn();
|
||||
@ -38,4 +32,13 @@ public class Xob_wdata_qid_sql extends Xob_wdata_qid_base {
|
||||
tbl.Insert_end();
|
||||
tbl.Create_idx();
|
||||
}
|
||||
public static Xow_db_file Make_wbase_db(Xow_db_mgr db_mgr) {
|
||||
boolean db_is_all_or_few = db_mgr.Props().Layout_text().Tid_is_all_or_few();
|
||||
Xow_db_file wbase_db = db_is_all_or_few
|
||||
? db_mgr.Db__core()
|
||||
: db_mgr.Dbs__make_by_tid(Xow_db_file_.Tid__wbase);
|
||||
if (db_is_all_or_few)
|
||||
db_mgr.Db__wbase_(wbase_db);
|
||||
return wbase_db;
|
||||
}
|
||||
}
|
||||
|
@ -32,7 +32,7 @@ class Xowb_json_dump_db {
|
||||
this.app = bldr.App(); this.usr_dlg = app.Usr_dlg(); this.wiki = wiki; this.bldr = bldr;
|
||||
this.json_parser = bldr.App().Wiki_mgr().Wdata_mgr().Jdoc_parser();
|
||||
this.ns_mgr = wiki.Ns_mgr();
|
||||
this.pid_cmd = new Xob_wdata_pid_sql(wiki.Data__core_mgr().Db__wbase().Conn());
|
||||
this.pid_cmd = new Xob_wdata_pid_sql(wiki.Data__core_mgr().Db__wbase().Conn(), null);
|
||||
}
|
||||
public void Parse_all_bgn(long src_fil_len, String src_fil_name) {
|
||||
// load wiki
|
||||
|
Loading…
Reference in New Issue
Block a user