From f04cb736795e7c5111f26482ba3a25e6970a949d Mon Sep 17 00:00:00 2001 From: gnosygnu Date: Sun, 6 Nov 2016 09:39:52 -0500 Subject: [PATCH] Cfg: Add get and set functions --- .../addons/apps/cfgs/dbs/Xocfg_db_mgr.java | 32 +++++++++---- .../addons/apps/cfgs/dbs/Xocfg_itm_bldr.java | 48 +++++++++++++++++++ ...{Xocfg_grp_map.java => Xogrp_map_tbl.java} | 4 +- ...ocfg_grp_meta.java => Xogrp_meta_tbl.java} | 4 +- .../addons/apps/cfgs/dbs/Xoitm_data_itm.java | 30 ++++++++++++ ...ocfg_itm_data.java => Xoitm_data_tbl.java} | 24 ++++++---- .../addons/apps/cfgs/dbs/Xoitm_meta_itm.java | 36 ++++++++++++++ ...ocfg_itm_meta.java => Xoitm_meta_tbl.java} | 28 ++++++----- ...ocfg_nde_i18n.java => Xonde_i18n_tbl.java} | 4 +- .../xowa/htmls/heads/Xoh_head_itm__graph.java | 2 +- 10 files changed, 175 insertions(+), 37 deletions(-) create mode 100644 400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xocfg_itm_bldr.java rename 400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/{Xocfg_grp_map.java => Xogrp_map_tbl.java} (94%) rename 400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/{Xocfg_grp_meta.java => Xogrp_meta_tbl.java} (93%) create mode 100644 400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xoitm_data_itm.java rename 400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/{Xocfg_itm_data.java => Xoitm_data_tbl.java} (74%) create mode 100644 400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xoitm_meta_itm.java rename 400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/{Xocfg_itm_meta.java => Xoitm_meta_tbl.java} (77%) rename 400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/{Xocfg_nde_i18n.java => Xonde_i18n_tbl.java} (94%) diff --git a/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xocfg_db_mgr.java b/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xocfg_db_mgr.java index a8480b258..76f945795 100644 --- a/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xocfg_db_mgr.java +++ b/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xocfg_db_mgr.java @@ -19,16 +19,28 @@ package gplx.xowa.addons.apps.cfgs.dbs; import gplx.*; import gplx.xowa.*; impor import gplx.dbs.*; public class Xocfg_db_mgr { public Xocfg_db_mgr(Db_conn conn) { - this.tbl__grp_meta = new Xocfg_grp_meta(conn); - this.tbl__grp_map = new Xocfg_grp_map(conn); - this.tbl__itm_meta = new Xocfg_itm_meta(conn); - this.tbl__itm_data = new Xocfg_itm_data(conn); - this.tbl__nde_i18n = new Xocfg_nde_i18n(conn); + this.tbl__grp_meta = new Xogrp_meta_tbl(conn); + this.tbl__grp_map = new Xogrp_map_tbl(conn); + this.tbl__itm_meta = new Xoitm_meta_tbl(conn); + this.tbl__itm_data = new Xoitm_data_tbl(conn); + this.tbl__nde_i18n = new Xonde_i18n_tbl(conn); conn.Meta_tbl_assert(tbl__grp_meta, tbl__grp_map, tbl__itm_meta, tbl__itm_data, tbl__nde_i18n); } - public Xocfg_grp_meta Tbl__grp_meta() {return tbl__grp_meta;} private final Xocfg_grp_meta tbl__grp_meta; - public Xocfg_grp_map Tbl__grp_map() {return tbl__grp_map ;} private final Xocfg_grp_map tbl__grp_map; - public Xocfg_itm_meta Tbl__itm_meta() {return tbl__itm_meta;} private final Xocfg_itm_meta tbl__itm_meta; - public Xocfg_itm_data Tbl__itm_data() {return tbl__itm_data;} private final Xocfg_itm_data tbl__itm_data; - public Xocfg_nde_i18n Tbl__nde_i18n() {return tbl__nde_i18n;} private final Xocfg_nde_i18n tbl__nde_i18n; + public Xogrp_meta_tbl Tbl__grp_meta() {return tbl__grp_meta;} private final Xogrp_meta_tbl tbl__grp_meta; + public Xogrp_map_tbl Tbl__grp_map() {return tbl__grp_map ;} private final Xogrp_map_tbl tbl__grp_map; + public Xoitm_meta_tbl Tbl__itm_meta() {return tbl__itm_meta;} private final Xoitm_meta_tbl tbl__itm_meta; + public Xoitm_data_tbl Tbl__itm_data() {return tbl__itm_data;} private final Xoitm_data_tbl tbl__itm_data; + public Xonde_i18n_tbl Tbl__nde_i18n() {return tbl__nde_i18n;} private final Xonde_i18n_tbl tbl__nde_i18n; + + public String Get_str(String ctx, String key) { + Xoitm_meta_itm meta_itm = tbl__itm_meta.Select_by_key_or_null(key); + if (meta_itm == null) throw Err_.new_wo_type("cfg not defined", "ctx", ctx, "key", key); + Xoitm_data_itm data_itm = tbl__itm_data.Select_by_id_or_null(meta_itm.Id()); + return data_itm == null ? meta_itm.Dflt() : data_itm.Val(); + } + public void Set_str(String ctx, String key, String val) { + Xoitm_meta_itm meta_itm = tbl__itm_meta.Select_by_key_or_null(key); + if (meta_itm == null) throw Err_.new_wo_type("cfg not defined", "ctx", ctx, "key", key); + tbl__itm_data.Update(meta_itm.Id(), ctx, val, Datetime_now.Get().XtoUtc().XtoStr_fmt_iso_8561()); + } } diff --git a/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xocfg_itm_bldr.java b/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xocfg_itm_bldr.java new file mode 100644 index 000000000..46a94ff69 --- /dev/null +++ b/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xocfg_itm_bldr.java @@ -0,0 +1,48 @@ +/* +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 . +*/ +package gplx.xowa.addons.apps.cfgs.dbs; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.apps.*; import gplx.xowa.addons.apps.cfgs.*; +public class Xocfg_itm_bldr { + private final Xocfg_db_mgr db_mgr; + public Xocfg_itm_bldr(Xocfg_db_mgr db_mgr) { + this.db_mgr = db_mgr; + } + public void Create_grp(String owner_key, String grp_key, String grp_name, String grp_help) { + int grp_id = 1; // select Max(id) + 1 from cfg_grp_meta; + + db_mgr.Tbl__grp_meta().Upsert(grp_id, grp_key); + + int owner_id = 1; // select id from cfg_grp_meta where key = owner_key; + int map_sort = 1; // select Max(map_sort) + 1 from cfg_grp_map where map_src = owner_id; + db_mgr.Tbl__grp_map().Upsert(owner_id, grp_id, map_sort); + + int nde_type = 0; // 0=grp; 1=itm + db_mgr.Tbl__nde_i18n().Upsert(nde_type, grp_id, "en", grp_name, grp_help); + } + public void Create_itm(String grp_key, String itm_key, String scope_id_str, String type_id_str, String itm_dflt, String itm_name, String help) { + int grp_id = 1; // select id from cfg_grp_meta WHERE key = grp_key; + int itm_id = 1; // select Max(itm_id) + 1 from cfg_itm_meta + int itm_sort = 1; // Select Max(itm_sort) + 1 FROM cfg_itm_meta WHERE grp_id = grp_id; + int scope_id = 1; // app-level,wiki-level,ns-level... + int type_id = 1; // boolean,int,String... + + db_mgr.Tbl__itm_meta().Upsert(grp_id, itm_id, itm_sort, scope_id, type_id, itm_key, itm_dflt); + + int nde_type = 1; // 0=grp; 1=itm + db_mgr.Tbl__nde_i18n().Upsert(nde_type, itm_id, "en", itm_name, help); + } +} diff --git a/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xocfg_grp_map.java b/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xogrp_map_tbl.java similarity index 94% rename from 400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xocfg_grp_map.java rename to 400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xogrp_map_tbl.java index c2022ae6a..f7cd63e51 100644 --- a/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xocfg_grp_map.java +++ b/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xogrp_map_tbl.java @@ -17,11 +17,11 @@ along with this program. If not, see . */ package gplx.xowa.addons.apps.cfgs.dbs; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.apps.*; import gplx.xowa.addons.apps.cfgs.*; import gplx.dbs.*; import gplx.dbs.utls.*; -public class Xocfg_grp_map implements Db_tbl { +public class Xogrp_map_tbl implements Db_tbl { private final Dbmeta_fld_list flds = new Dbmeta_fld_list(); private final String fld__map_src, fld__map_trg, fld__map_sort; private final Db_conn conn; - public Xocfg_grp_map(Db_conn conn) { + public Xogrp_map_tbl(Db_conn conn) { this.conn = conn; this.tbl_name = "cfg_grp_map"; this.fld__map_src = flds.Add_int("map_src"); diff --git a/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xocfg_grp_meta.java b/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xogrp_meta_tbl.java similarity index 93% rename from 400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xocfg_grp_meta.java rename to 400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xogrp_meta_tbl.java index b72ee60d9..3cdadff5a 100644 --- a/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xocfg_grp_meta.java +++ b/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xogrp_meta_tbl.java @@ -17,11 +17,11 @@ along with this program. If not, see . */ package gplx.xowa.addons.apps.cfgs.dbs; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.apps.*; import gplx.xowa.addons.apps.cfgs.*; import gplx.dbs.*; import gplx.dbs.utls.*; -public class Xocfg_grp_meta implements Db_tbl { +public class Xogrp_meta_tbl implements Db_tbl { private final Dbmeta_fld_list flds = new Dbmeta_fld_list(); private final String fld__grp_id, fld__grp_key; private final Db_conn conn; - public Xocfg_grp_meta(Db_conn conn) { + public Xogrp_meta_tbl(Db_conn conn) { this.conn = conn; this.tbl_name = "cfg_grp_meta"; this.fld__grp_id = flds.Add_int("grp_id"); diff --git a/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xoitm_data_itm.java b/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xoitm_data_itm.java new file mode 100644 index 000000000..6ca35d127 --- /dev/null +++ b/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xoitm_data_itm.java @@ -0,0 +1,30 @@ +/* +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 . +*/ +package gplx.xowa.addons.apps.cfgs.dbs; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.apps.*; import gplx.xowa.addons.apps.cfgs.*; +public class Xoitm_data_itm { + public Xoitm_data_itm(int id, String ctx, String val, String date) { + this.id = id; + this.ctx = ctx; + this.val = val; + this.date = date; + } + public int Id() {return id;} private final int id; + public String Ctx() {return ctx;} private final String ctx; + public String Val() {return val;} private final String val; + public String Date() {return date;} private final String date; +} diff --git a/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xocfg_itm_data.java b/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xoitm_data_tbl.java similarity index 74% rename from 400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xocfg_itm_data.java rename to 400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xoitm_data_tbl.java index 9779be427..f6219f600 100644 --- a/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xocfg_itm_data.java +++ b/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xoitm_data_tbl.java @@ -17,11 +17,11 @@ along with this program. If not, see . */ package gplx.xowa.addons.apps.cfgs.dbs; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.apps.*; import gplx.xowa.addons.apps.cfgs.*; import gplx.dbs.*; import gplx.dbs.utls.*; -public class Xocfg_itm_data implements Db_tbl { +public class Xoitm_data_tbl implements Db_tbl { private final Dbmeta_fld_list flds = new Dbmeta_fld_list(); private final String fld__itm_id, fld__itm_ctx, fld__itm_val, fld__itm_date; private final Db_conn conn; - public Xocfg_itm_data(Db_conn conn) { + public Xoitm_data_tbl(Db_conn conn) { this.conn = conn; this.tbl_name = "cfg_itm_data"; this.fld__itm_id = flds.Add_int("itm_id"); // EX: '1' @@ -32,15 +32,21 @@ public class Xocfg_itm_data implements Db_tbl { } public String Tbl_name() {return tbl_name;} private final String tbl_name; public void Create_tbl() {conn.Meta_tbl_create(Dbmeta_tbl_itm.New(tbl_name, flds));} - public void Upsert(int itm_id, String itm_val, String itm_date) { + public void Update(int itm_id, String ctx, String itm_val, String itm_date) { Db_tbl__crud_.Upsert(conn, tbl_name, flds, String_.Ary(fld__itm_id), itm_id, itm_date, itm_val); } - public void Select_stub() { - Db_rdr rdr = Db_rdr_.Empty; - rdr.Read_int(fld__itm_id); - rdr.Read_str(fld__itm_ctx); - rdr.Read_str(fld__itm_val); - rdr.Read_str(fld__itm_date); + public Xoitm_data_itm Select_by_id_or_null(int id) { + Db_rdr rdr = conn.Stmt_select(tbl_name, flds, fld__itm_id).Exec_select__rls_auto(); + try {return rdr.Move_next() ? Load(rdr) : null;} + finally {rdr.Rls();} + } + private Xoitm_data_itm Load(Db_rdr rdr) { + return new Xoitm_data_itm + ( rdr.Read_int(fld__itm_id) + , rdr.Read_str(fld__itm_ctx) + , rdr.Read_str(fld__itm_val) + , rdr.Read_str(fld__itm_date) + ); } public void Rls() {} } diff --git a/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xoitm_meta_itm.java b/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xoitm_meta_itm.java new file mode 100644 index 000000000..5d27405ac --- /dev/null +++ b/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xoitm_meta_itm.java @@ -0,0 +1,36 @@ +/* +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 . +*/ +package gplx.xowa.addons.apps.cfgs.dbs; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.apps.*; import gplx.xowa.addons.apps.cfgs.*; +public class Xoitm_meta_itm { + public Xoitm_meta_itm(int grp_id, int id, int itm_sort, int scope_id, int type_id, String key, String dflt) { + this.grp_id = grp_id; + this.id = id; + this.itm_sort = itm_sort; + this.scope_id = scope_id; + this.type_id = type_id; + this.key = key; + this.dflt = dflt; + } + public int Grp_id() {return grp_id;} private final int grp_id; + public int Id() {return id;} private final int id; + public int Itm_sort() {return itm_sort;} private final int itm_sort; + public int Scope_id() {return scope_id;} private final int scope_id; + public int Type_id() {return type_id;} private final int type_id; + public String Key() {return key;} private final String key; + public String Dflt() {return dflt;} private final String dflt; +} diff --git a/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xocfg_itm_meta.java b/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xoitm_meta_tbl.java similarity index 77% rename from 400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xocfg_itm_meta.java rename to 400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xoitm_meta_tbl.java index 63db5d0df..d8fbd8daf 100644 --- a/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xocfg_itm_meta.java +++ b/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xoitm_meta_tbl.java @@ -17,11 +17,11 @@ along with this program. If not, see . */ package gplx.xowa.addons.apps.cfgs.dbs; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.apps.*; import gplx.xowa.addons.apps.cfgs.*; import gplx.dbs.*; import gplx.dbs.utls.*; -public class Xocfg_itm_meta implements Db_tbl { +public class Xoitm_meta_tbl implements Db_tbl { private final Dbmeta_fld_list flds = new Dbmeta_fld_list(); private final String fld__grp_id, fld__itm_id, fld__itm_sort, fld__itm_key, fld__itm_scope_id, fld__itm_type_id, fld__itm_dflt; private final Db_conn conn; - public Xocfg_itm_meta(Db_conn conn) { + public Xoitm_meta_tbl(Db_conn conn) { this.conn = conn; this.tbl_name = "cfg_itm_meta"; this.fld__grp_id = flds.Add_int("grp_id"); // EX: '1' @@ -38,15 +38,21 @@ public class Xocfg_itm_meta implements Db_tbl { public void Upsert(int grp_id, int itm_id, int itm_sort, int scope_id, int type_id, String itm_key, String itm_dflt) { Db_tbl__crud_.Upsert(conn, tbl_name, flds, String_.Ary(fld__grp_id, fld__itm_id), grp_id, itm_id, itm_sort, scope_id, type_id, itm_key, itm_dflt); } - public void Select_stub() { - Db_rdr rdr = Db_rdr_.Empty; - rdr.Read_int(fld__grp_id); - rdr.Read_int(fld__itm_id); - rdr.Read_int(fld__itm_sort); - rdr.Read_int(fld__itm_scope_id); - rdr.Read_int(fld__itm_type_id); - rdr.Read_str(fld__itm_key); - rdr.Read_str(fld__itm_dflt); + public Xoitm_meta_itm Select_by_key_or_null(String key) { + Db_rdr rdr = conn.Stmt_select(tbl_name, flds, fld__itm_key).Exec_select__rls_auto(); + try {return rdr.Move_next() ? Load(rdr) : null;} + finally {rdr.Rls();} + } + private Xoitm_meta_itm Load(Db_rdr rdr) { + return new Xoitm_meta_itm + ( rdr.Read_int(fld__grp_id) + , rdr.Read_int(fld__itm_id) + , rdr.Read_int(fld__itm_sort) + , rdr.Read_int(fld__itm_scope_id) + , rdr.Read_int(fld__itm_type_id) + , rdr.Read_str(fld__itm_key) + , rdr.Read_str(fld__itm_dflt) + ); } public void Rls() {} } diff --git a/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xocfg_nde_i18n.java b/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xonde_i18n_tbl.java similarity index 94% rename from 400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xocfg_nde_i18n.java rename to 400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xonde_i18n_tbl.java index f423b1f92..11e0c3984 100644 --- a/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xocfg_nde_i18n.java +++ b/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xonde_i18n_tbl.java @@ -17,11 +17,11 @@ along with this program. If not, see . */ package gplx.xowa.addons.apps.cfgs.dbs; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.apps.*; import gplx.xowa.addons.apps.cfgs.*; import gplx.dbs.*; import gplx.dbs.utls.*; -public class Xocfg_nde_i18n implements Db_tbl { +public class Xonde_i18n_tbl implements Db_tbl { private final Dbmeta_fld_list flds = new Dbmeta_fld_list(); private final String fld__nde_type, fld__nde_id, fld__nde_locale, fld__nde_name, fld__nde_help; private final Db_conn conn; - public Xocfg_nde_i18n(Db_conn conn) { + public Xonde_i18n_tbl(Db_conn conn) { this.conn = conn; this.tbl_name = "cfg_nde_i18n"; this.fld__nde_type = flds.Add_int("nde_type"); // EX: 1=grp; 2=itm diff --git a/400_xowa/src/gplx/xowa/htmls/heads/Xoh_head_itm__graph.java b/400_xowa/src/gplx/xowa/htmls/heads/Xoh_head_itm__graph.java index d48c09525..e41e093f7 100644 --- a/400_xowa/src/gplx/xowa/htmls/heads/Xoh_head_itm__graph.java +++ b/400_xowa/src/gplx/xowa/htmls/heads/Xoh_head_itm__graph.java @@ -40,5 +40,5 @@ public class Xoh_head_itm__graph extends Xoh_head_itm__base { } private static final int Url__ary_len = 6; private static byte[][] Url__ary; - private static final byte[] Js__graph_exec = Bry_.new_a7("xtn__graph__exec();"); + private static final byte[] Js__graph_exec = Bry_.new_a7("xtn__graph__exec();"); }