mirror of https://github.com/gnosygnu/xowa
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
4.9 KiB
83 lines
4.9 KiB
/*
|
|
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.wikis.data; import gplx.*; import gplx.xowa.*; import gplx.xowa.wikis.*;
|
|
import gplx.core.ios.*; import gplx.core.ios.streams.*; import gplx.dbs.*; import gplx.dbs.cfgs.*;
|
|
import gplx.dbs.metas.*; import gplx.xowa.bldrs.cmds.*; import gplx.xowa.wikis.dbs.*;
|
|
public class Xowd_core_db_props {
|
|
public Xowd_core_db_props(int schema, Xow_db_layout layout_text, Xow_db_layout layout_html, Xow_db_layout layout_file
|
|
, byte zip_tid_text, byte zip_tid_html, boolean hzip_enabled, boolean hzip_mode_is_b256) {
|
|
this.schema = schema;
|
|
this.layout_text = layout_text; this.layout_html = layout_html; this.layout_file = layout_file;
|
|
this.zip_tid_text = zip_tid_text; this.zip_tid_html = zip_tid_html;
|
|
this.hzip_enabled = hzip_enabled; this.hzip_mode_is_b256 = hzip_mode_is_b256;
|
|
}
|
|
public int Schema() {return schema;} private final int schema;
|
|
public boolean Schema_is_1() {return schema == 1;}
|
|
public Xow_db_layout Layout_text() {return layout_text;} private final Xow_db_layout layout_text;
|
|
public Xow_db_layout Layout_html() {return layout_html;} private final Xow_db_layout layout_html;
|
|
public Xow_db_layout Layout_file() {return layout_file;} private final Xow_db_layout layout_file;
|
|
public byte Zip_tid_text() {return zip_tid_text;} private final byte zip_tid_text;
|
|
public byte Zip_tid_html() {return zip_tid_html;} private final byte zip_tid_html;
|
|
public boolean Hzip_enabled() {return hzip_enabled;} private final boolean hzip_enabled;
|
|
public boolean Hzip_mode_is_b256() {return hzip_mode_is_b256;} private final boolean hzip_mode_is_b256;
|
|
public void Cfg_save(Db_cfg_tbl tbl) {
|
|
tbl.Conn().Txn_bgn("make__core__cfg__save");
|
|
tbl.Insert_int (Cfg_grp, Cfg_key__schema_version , schema);
|
|
tbl.Insert_str (Cfg_grp, Cfg_key__layout_text , layout_text.Key());
|
|
tbl.Insert_str (Cfg_grp, Cfg_key__layout_html , layout_html.Key());
|
|
tbl.Insert_str (Cfg_grp, Cfg_key__layout_file , layout_file.Key());
|
|
tbl.Insert_byte (Cfg_grp, Cfg_key__zip_tid_text , zip_tid_text);
|
|
tbl.Insert_byte (Cfg_grp, Cfg_key__zip_tid_html , zip_tid_html);
|
|
tbl.Insert_yn (Cfg_grp, Cfg_key__hzip_enabled , hzip_enabled);
|
|
tbl.Insert_yn (Cfg_grp, Cfg_key__hzip_mode_is_b256 , hzip_mode_is_b256);
|
|
tbl.Conn().Txn_end();
|
|
}
|
|
public static Xowd_core_db_props Cfg_load(Db_conn conn) {return Cfg_load(conn, gplx.xowa.wikis.data.Xowd_cfg_tbl_.New(conn));}
|
|
public static Xowd_core_db_props Cfg_load(Db_conn conn, Db_cfg_tbl cfg_tbl) {
|
|
return cfg_tbl.Select_int_or(Cfg_grp, Cfg_key__schema_version, 1) == 1
|
|
? new Xowd_core_db_props
|
|
( 1, Xow_db_layout.Itm_lot, Xow_db_layout.Itm_lot, Xow_db_layout.Itm_lot, cfg_tbl.Select_byte_or(Xowe_wiki.Invk_db_mgr, Xodb_mgr_sql.Invk_data_storage_format
|
|
, Io_stream_tid_.Tid__gzip), Io_stream_tid_.Tid__gzip, Bool_.Y, Bool_.N)
|
|
: Cfg_load(cfg_tbl);
|
|
}
|
|
private static Xowd_core_db_props Cfg_load(Db_cfg_tbl tbl) {
|
|
Db_cfg_hash cfg_hash = tbl.Select_as_hash(Cfg_grp);
|
|
return new Xowd_core_db_props
|
|
( cfg_hash.Get_by(Cfg_key__schema_version).To_int()
|
|
, Xow_db_layout.Get_by_name(cfg_hash.Get_by(Cfg_key__layout_text).To_str())
|
|
, Xow_db_layout.Get_by_name(cfg_hash.Get_by(Cfg_key__layout_html).To_str())
|
|
, Xow_db_layout.Get_by_name(cfg_hash.Get_by(Cfg_key__layout_file).To_str())
|
|
, cfg_hash.Get_by(Cfg_key__zip_tid_text).To_byte()
|
|
, cfg_hash.Get_by(Cfg_key__zip_tid_html).To_byte()
|
|
, cfg_hash.Get_by(Cfg_key__hzip_enabled).To_yn_or(Bool_.N)
|
|
, cfg_hash.Get_by(Cfg_key__hzip_mode_is_b256).To_yn_or(Bool_.N)
|
|
);
|
|
}
|
|
private static final String Cfg_grp = gplx.xowa.wikis.data.Xowd_cfg_key_.Grp__wiki__core
|
|
, Cfg_key__schema_version = "schema_version"
|
|
, Cfg_key__layout_text = "layout_text"
|
|
, Cfg_key__layout_html = "layout_html"
|
|
, Cfg_key__layout_file = "layout_file"
|
|
, Cfg_key__zip_tid_text = "zip_tid_text"
|
|
, Cfg_key__zip_tid_html = "zip_tid_html"
|
|
, Cfg_key__hzip_enabled = "hzip_enabled"
|
|
, Cfg_key__hzip_mode_is_b256 = "hzip_mode_is_b256"
|
|
;
|
|
public static final Xowd_core_db_props Test = new Xowd_core_db_props(2, Xow_db_layout.Itm_few, Xow_db_layout.Itm_few, Xow_db_layout.Itm_few, Io_stream_tid_.Tid__raw, Io_stream_tid_.Tid__raw, Bool_.Y, Bool_.Y);
|
|
}
|