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:
@@ -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"
|
||||
|
||||
@@ -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");
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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) {
|
||||
|
||||
29
400_xowa/src/gplx/xowa/parsers/logs/Xop_log_wkr_factory.java
Normal file
29
400_xowa/src/gplx/xowa/parsers/logs/Xop_log_wkr_factory.java
Normal 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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user