1
0
mirror of https://github.com/gnosygnu/xowa.git synced 2026-03-02 03:49:30 +00:00

Mass_parse: Refactor make cmd to merge other wkr tables such as log_basic_temp

This commit is contained in:
gnosygnu
2016-12-30 12:22:43 -05:00
parent 62c81e6d77
commit 5c3e4287f0
16 changed files with 338 additions and 94 deletions

View File

@@ -17,14 +17,15 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.xowa.parsers.logs; import gplx.*; import gplx.xowa.*; import gplx.xowa.parsers.*;
import gplx.dbs.*; import gplx.dbs.qrys.*; import gplx.dbs.engines.sqlite.*;
public class Xop_log_basic_tbl {
public class Xop_log_basic_tbl implements Db_tbl {
private Db_stmt stmt_insert;
public Xop_log_basic_tbl(Db_conn conn){this.conn = conn; this.Create_table();}
public Xop_log_basic_tbl(Db_conn conn){this.conn = conn; this.Create_tbl();}
public Db_conn Conn() {return conn;} private Db_conn conn;
private void Create_table() {Sqlite_engine_.Tbl_create(conn, Tbl_name, Tbl_sql);}
public void Delete() {conn.Exec_qry(Db_qry_delete.new_all_(Tbl_name));}
public String Tbl_name() {return TBL_NAME;}
public void Create_tbl() {Sqlite_engine_.Tbl_create(conn, TBL_NAME, Tbl_sql);}
public void Delete() {conn.Exec_qry(Db_qry_delete.new_all_(TBL_NAME));}
public void Insert(int log_tid, String log_msg, int log_time, int page_id, String page_ttl, int args_len, String args_str, int src_len, String src_str) {
if (stmt_insert == null) stmt_insert = Db_stmt_.new_insert_(conn, Tbl_name, Fld_log_tid, Fld_log_msg, Fld_log_time, Fld_page_id, Fld_page_ttl, Fld_args_len, Fld_args_str, Fld_src_len, Fld_src_str);
if (stmt_insert == null) stmt_insert = Db_stmt_.new_insert_(conn, TBL_NAME, Fld_log_tid, Fld_log_msg, Fld_log_time, Fld_page_id, Fld_page_ttl, Fld_args_len, Fld_args_str, Fld_src_len, Fld_src_str);
stmt_insert.Clear()
.Val_int(log_tid)
.Val_str(log_msg)
@@ -40,13 +41,13 @@ public class Xop_log_basic_tbl {
public void Rls() {
stmt_insert.Rls();
}
public static final String Tbl_name = "log_basic_temp"
public static final String TBL_NAME = "log_basic_temp"
, Fld_log_tid = "log_tid", Fld_log_msg = "log_msg", Fld_log_time = "log_time"
, Fld_page_id = "page_id", Fld_page_ttl = "page_ttl"
, Fld_args_len = "args_len", Fld_args_str = "args_str"
, Fld_src_len = "src_len", Fld_src_str = "src_str"
;
private static final String Tbl_sql = String_.Concat_lines_nl
private static final String Tbl_sql = String_.Concat_lines_nl
( "CREATE TABLE IF NOT EXISTS log_basic_temp"
, "( log_id integer NOT NULL PRIMARY KEY AUTOINCREMENT"
, ", log_tid integer NOT NULL"

View File

@@ -20,10 +20,10 @@ import gplx.core.envs.*;
import gplx.dbs.*;
import gplx.xowa.parsers.xndes.*; import gplx.xowa.parsers.htmls.*;
public class Xop_log_basic_wkr implements Gfo_invk {
private Xop_log_mgr log_mgr; private Xop_log_basic_tbl log_tbl;
private Xop_log_basic_tbl log_tbl;
private boolean save_page_ttl, save_log_time, save_args_len, save_args_str;
public boolean Save_src_str() {return save_src_str;} public Xop_log_basic_wkr Save_src_str_(boolean v) {save_src_str = v; return this;} private boolean save_src_str;
public Xop_log_basic_wkr(Xop_log_mgr log_mgr, Xop_log_basic_tbl log_tbl) {this.log_mgr = log_mgr; this.log_tbl = log_tbl;}
public Xop_log_basic_wkr(Xop_log_basic_tbl log_tbl) {this.log_tbl = log_tbl;}
public boolean Log_bgn(Xoae_page page, byte[] src, Xop_xnde_tkn xnde) {return true;}
public void Log_end_xnde(Xoae_page page, int log_tid, byte[] src, Xop_xnde_tkn xnde_tkn) {
Mwh_atr_itm[] atrs_ary = xnde_tkn.Atrs_ary();
@@ -45,7 +45,6 @@ public class Xop_log_basic_wkr implements Gfo_invk {
, src_end - src_bgn
, save_src_str ? String_.new_u8(src, src_bgn, src_end) : Xop_log_basic_wkr.Null_src_str
);
log_mgr.Commit_chk();
}
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
if (ctx.Match(k, Invk_save_page_ttl_)) save_page_ttl = m.ReadYn("v");

View File

@@ -20,13 +20,11 @@ import gplx.core.envs.*;
import gplx.dbs.*; import gplx.dbs.qrys.*; import gplx.dbs.engines.sqlite.*; import gplx.xowa.parsers.logs.*;
import gplx.xowa.xtns.scribunto.*;
public class Xop_log_invoke_wkr implements Gfo_invk {
private Xop_log_mgr log_mgr;
private Db_conn conn; private Db_stmt stmt;
private boolean log_enabled = true;
private Hash_adp_bry exclude_mod_names = Hash_adp_bry.cs();
public Scrib_err_filter_mgr Err_filter_mgr() {return err_filter_mgr;} private final Scrib_err_filter_mgr err_filter_mgr = new Scrib_err_filter_mgr();
public Xop_log_invoke_wkr(Xop_log_mgr log_mgr, Db_conn conn) {
this.log_mgr = log_mgr;
public Xop_log_invoke_wkr(Db_conn conn) {
this.conn = conn;
if (log_enabled) {
Xop_log_invoke_tbl.Create_table(conn);
@@ -39,7 +37,6 @@ public class Xop_log_invoke_wkr implements Gfo_invk {
if (log_enabled && stmt != null) {
int eval_time = (int)(System_.Ticks() - invoke_time_bgn);
Xop_log_invoke_tbl.Insert(stmt, page.Ttl().Rest_txt(), mod_name, fnc_name, eval_time);
log_mgr.Commit_chk();
}
}
private void Exclude_mod_names_add(String[] v) {

View File

@@ -38,12 +38,12 @@ public class Xop_log_mgr implements Gfo_invk {
}
return conn;
}
public Xop_log_invoke_wkr Make_wkr_invoke() {return new Xop_log_invoke_wkr(this, this.Conn());}
public Xop_log_property_wkr Make_wkr_property() {return new Xop_log_property_wkr(this, this.Conn());}
public Xop_log_invoke_wkr Make_wkr_invoke() {return new Xop_log_invoke_wkr(this.Conn());}
public Xop_log_property_wkr Make_wkr_property() {return new Xop_log_property_wkr(this.Conn());}
public Xop_log_basic_wkr Make_wkr() {
if (log_tbl == null)
log_tbl = new Xop_log_basic_tbl(this.Conn());
return new Xop_log_basic_wkr(this, log_tbl);
return new Xop_log_basic_wkr(log_tbl);
}
public void Commit_chk() {
++exec_count;

View File

@@ -19,12 +19,11 @@ package gplx.xowa.parsers.logs; import gplx.*; import gplx.xowa.*; import gplx.x
import gplx.core.envs.*;
import gplx.dbs.*; import gplx.dbs.qrys.*; import gplx.dbs.engines.sqlite.*;
public class Xop_log_property_wkr implements Gfo_invk {
private Xop_log_mgr log_mgr; private Db_conn conn; private Db_stmt stmt;
private Db_conn conn; private Db_stmt stmt;
private boolean log_enabled = true;
private boolean include_all = true;
private Hash_adp_bry include_props = Hash_adp_bry.cs();
public Xop_log_property_wkr(Xop_log_mgr log_mgr, Db_conn conn) {
this.log_mgr = log_mgr;
public Xop_log_property_wkr(Db_conn conn) {
this.conn = conn;
if (log_enabled) {
Xob_log_property_temp_tbl.Create_table(conn);
@@ -37,7 +36,6 @@ public class Xop_log_property_wkr implements Gfo_invk {
if (log_enabled && stmt != null) {
int eval_time = (int)(System_.Ticks() - invoke_time_bgn);
Xob_log_property_temp_tbl.Insert(stmt, page.Ttl().Rest_txt(), prop, eval_time);
log_mgr.Commit_chk();
}
}
private void Include_props_add(String[] v) {

View File

@@ -0,0 +1,29 @@
/*
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.parsers.logs; import gplx.*; import gplx.xowa.*; import gplx.xowa.parsers.*;
import gplx.dbs.*; import gplx.xowa.bldrs.*;
public class Xop_log_wkr_factory {
private final Db_conn conn; private Xop_log_basic_tbl log_tbl;
public Xop_log_wkr_factory(Db_conn conn) {this.conn = conn;}
public Xop_log_invoke_wkr Make__invoke() {return new Xop_log_invoke_wkr(conn);}
public Xop_log_property_wkr Make__property() {return new Xop_log_property_wkr(conn);}
public Xop_log_basic_wkr Make__generic() {
if (log_tbl == null) log_tbl = new Xop_log_basic_tbl(conn);
return new Xop_log_basic_wkr(log_tbl);
}
}