1
0
mirror of https://github.com/gnosygnu/xowa.git synced 2026-03-02 03:49:30 +00:00
This commit is contained in:
gnosygnu
2015-05-24 22:43:55 -04:00
parent 6eec99a713
commit 51e6188c1e
1577 changed files with 11555 additions and 10080 deletions

View File

@@ -18,13 +18,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
package gplx;
import gplx.core.strings.*;
public class App_cmd_mgr {
private OrderedHash expd_args = OrderedHash_.new_(), actl_args = OrderedHash_.new_();
private ListAdp tmp_vals = ListAdp_.new_(); private String[] orig_ary;
private Ordered_hash expd_args = Ordered_hash_.new_(), actl_args = Ordered_hash_.new_();
private List_adp tmp_vals = List_adp_.new_(); private String[] orig_ary;
public App_cmd_mgr Msg_root_(Gfo_msg_root v) {msg_root = v; return this;} private Gfo_msg_root msg_root = Gfo_msg_root._;
public String Arg_prefix() {return arg_prefix;} public App_cmd_mgr Arg_prefix_(String v) {arg_prefix = v; prefix_len = String_.Len(v); return this;} private String arg_prefix = "--"; int prefix_len = 2;
public void Clear() {expd_args.Clear(); actl_args.Clear(); errs.Clear(); key_help = key_header = null;}
public int Actl_len() {return actl_args.Count();}
public App_cmd_arg[] Actl_ary() {return (App_cmd_arg[])actl_args.Xto_ary(App_cmd_arg.class);}
public App_cmd_arg[] Actl_ary() {return (App_cmd_arg[])actl_args.To_ary(App_cmd_arg.class);}
public App_cmd_mgr Expd_add_many(App_cmd_arg... ary) {for (App_cmd_arg o : ary) Expd_add(o); return this;}
public App_cmd_mgr Expd_add(App_cmd_arg prm) {
expd_args.Add(prm.Key(), prm);
@@ -46,12 +46,12 @@ public class App_cmd_mgr {
String itm = ary[i];
if (String_.HasAtBgn(itm, arg_prefix)) { // key
if (arg != null) {
String[] tmp_ary = tmp_vals.XtoStrAry();
String[] tmp_ary = tmp_vals.To_str_ary();
if (!arg.Parse(this, tmp_ary)) {continue;}
tmp_vals.Clear();
}
String key = String_.Mid(itm, prefix_len);
Object o = actl_args.Fetch(key);
Object o = actl_args.Get_by(key);
if (o == null) {Errs_add(Err_argument_is_unknown, "unknown argument: '~{0}'", key); continue;}
arg = (App_cmd_arg)o;
if (arg.Dirty()) {Errs_add(Err_argument_is_duplicate, "duplicate argument: '~{0}'", key); continue;}
@@ -64,25 +64,25 @@ public class App_cmd_mgr {
}
}
if (arg != null) {
String[] tmp_ary = tmp_vals.XtoStrAry();
String[] tmp_ary = tmp_vals.To_str_ary();
arg.Parse(this, tmp_ary);
tmp_vals.Clear();
}
int len = actl_args.Count();
for (int i = 0; i < len; i++) {
arg = (App_cmd_arg)actl_args.FetchAt(i);
arg = (App_cmd_arg)actl_args.Get_at(i);
if (arg.Reqd() && !arg.Dirty()) {Errs_add(Err_argument_is_required, "argument is required: '~{0}'", arg.Key()); continue;}
if (!arg.Dirty() && arg.Dflt() != null) arg.Val_(arg.Dflt());
}
} public static final String Err_argument_is_duplicate = "argument_is_duplicate", Err_argument_is_required = "argument_is_required", Err_argument_is_unknown = "argument_is_unknown", Err_argument_is_invalid_key = "argument_is_invalid_key";
public String Fmt_hdr() {return fmt_hdr;} public App_cmd_mgr Fmt_hdr_(String v) {fmt_hdr = v; return this;} private String fmt_hdr = "";
public App_cmd_arg Args_get(String key) {return (App_cmd_arg)actl_args.Fetch(key);}
public App_cmd_arg Args_get(String key) {return (App_cmd_arg)actl_args.Get_by(key);}
public boolean Args_has_help() {
App_cmd_arg arg = (App_cmd_arg)actl_args.Fetch(key_help);
App_cmd_arg arg = (App_cmd_arg)actl_args.Get_by(key_help);
return arg != null && arg.Dirty();
}
public App_cmd_mgr Print_header(Gfo_usr_dlg usr_dlg) {
App_cmd_arg arg_hdr = (App_cmd_arg)actl_args.Fetch(key_header);
App_cmd_arg arg_hdr = (App_cmd_arg)actl_args.Get_by(key_header);
if (arg_hdr == null) return this; // no key_header specified; assume header shouldn't be printed
if (!arg_hdr.Val_as_bool()) return this; // key_header specified as false; return;
usr_dlg.Note_gui_none(GRP_KEY, "print.header", fmt_hdr);
@@ -106,7 +106,7 @@ public class App_cmd_mgr {
sb.Add("** error: ").Add_char_crlf();
int len = errs.Count();
for (int i = 0; i < len; i++) {
Gfo_msg_data data = (Gfo_msg_data)errs.FetchAt(i);
Gfo_msg_data data = (Gfo_msg_data)errs.Get_at(i);
sb.Add_fmt_line(" " + data.Gen_str_ary());
}
sb.Add_char_crlf();
@@ -119,7 +119,7 @@ public class App_cmd_mgr {
int key_max = 0, tid_max = 0;
int len = expd_args.Count();
for (int i = 0; i < len; i++) {
App_cmd_arg arg = (App_cmd_arg)expd_args.FetchAt(i);
App_cmd_arg arg = (App_cmd_arg)expd_args.Get_at(i);
if (arg.Tid() != App_cmd_arg.Tid_general) continue; // skip header, help
sb.Add(" ").Add(arg_prefix).Add(arg.Key()).Add(" ").Add(arg.Example());
int key_len = String_.Len(arg.Key()); if (key_len > key_max) key_max = key_len;
@@ -128,7 +128,7 @@ public class App_cmd_mgr {
sb.Add_char_crlf();
sb.Add_str_w_crlf("detail:");
for (int i = 0; i < len; i++) {
App_cmd_arg arg = (App_cmd_arg)expd_args.FetchAt(i);
App_cmd_arg arg = (App_cmd_arg)expd_args.Get_at(i);
// if (arg.Tid() != App_cmd_arg.Tid_general) continue; // skip header, help
sb.Add(" ").Add(arg_prefix).Add(String_.PadEnd(arg.Key(), key_max + 1, " ")).Add(String_.PadEnd(String_.Format("[{0}:{1}]", arg.Reqd_str(), arg.Val_tid_str()), tid_max, " "));
if (arg.Dflt() != null)
@@ -137,17 +137,17 @@ public class App_cmd_mgr {
if (arg.Note() != null)
sb.Add(" ").Add(arg.Note()).Add_char_crlf();
// for (int j = 0; j < arg.Itms().Count(); j++) {
// App_arg_info expdInf = (App_arg_info)arg.Itms().FetchAt(j);
// App_arg_info expdInf = (App_arg_info)arg.Itms().Get_at(j);
// sb.Add(" ").Add(String_.PadEnd(expdInf.Key(), key_max + 1, " ")).Add_str_w_crlf(expdInf.Descrip());
// }
}
usr_dlg.Note_gui_none(GRP_KEY, "print.info", sb.Xto_str_and_clear());
}
private OrderedHash Expd_copy() {
OrderedHash rv = OrderedHash_.new_();
private Ordered_hash Expd_copy() {
Ordered_hash rv = Ordered_hash_.new_();
int expd_len = expd_args.Count();
for (int i = 0 ; i < expd_len; i++) {
App_cmd_arg arg = (App_cmd_arg)expd_args.FetchAt(i);
App_cmd_arg arg = (App_cmd_arg)expd_args.Get_at(i);
rv.Add(arg.Key(), arg.Clone());
}
return rv;
@@ -156,7 +156,7 @@ public class App_cmd_mgr {
errs.Add(msg_root.Data_new_many(Gfo_msg_itm_.Cmd_warn, GRP_KEY, key, fmt, vals));
return false;
}
public int Errs_len() {return errs.Count();} private ListAdp errs = ListAdp_.new_();
public Gfo_msg_data Errs_get(int i) {return (Gfo_msg_data)errs.FetchAt(i);}
public int Errs_len() {return errs.Count();} private List_adp errs = List_adp_.new_();
public Gfo_msg_data Errs_get(int i) {return (Gfo_msg_data)errs.Get_at(i);}
private static final String GRP_KEY = "gplx.app.app_cmd_mgr";
}

View File

@@ -18,18 +18,18 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
package gplx;
import gplx.core.primitives.*;
public class Bry_cache {
public byte[] Get_or_new(String v) {return Get_or_new(Bry_.new_utf8_(v));}
public byte[] Get_or_new(String v) {return Get_or_new(Bry_.new_u8(v));}
public byte[] Get_or_new(byte[] v) {
if (v.length == 0) return Bry_.Empty;
Object rv = hash.Fetch(hash_ref.Val_(v));
Object rv = hash.Get_by(hash_ref.Val_(v));
if (rv == null) {
Bry_obj_ref bry = Bry_obj_ref.new_(v);
hash.AddKeyVal(bry);
hash.Add_as_key_and_val(bry);
return v;
}
else
return ((Bry_obj_ref)rv).Val();
}
HashAdp hash = HashAdp_.new_(); Bry_obj_ref hash_ref = Bry_obj_ref.null_();
Hash_adp hash = Hash_adp_.new_(); Bry_obj_ref hash_ref = Bry_obj_ref.null_();
public static final Bry_cache _ = new Bry_cache(); Bry_cache() {}
}

View File

@@ -27,7 +27,7 @@ public class ByteAryAry_chkr implements Tst_chkr {
err += mgr.Tst_val(true, path, "len", ary.length, actl_len);
for (int i = 0; i < expd_len; i++) {
byte[] actl_itm = i >= actl_len ? null : actl[i];
err += mgr.Tst_val(false, path, "ary:" + Int_.Xto_str(i), String_.new_utf8_(ary[i]), String_.new_utf8_(actl_itm));
err += mgr.Tst_val(false, path, "ary:" + Int_.Xto_str(i), String_.new_u8(ary[i]), String_.new_u8(actl_itm));
}
return err;
}

View File

@@ -33,7 +33,7 @@ class GfoCacheMgr_fxt {
public GfoCacheMgr_fxt run_Add(String... ary) {
for (int i = 0; i < ary.length; i++) {
String s = ary[i];
mgr.Add(Bry_.new_utf8_(s), new GfoCacheItm_mock(s), String_.Len(s));
mgr.Add(Bry_.new_u8(s), new GfoCacheItm_mock(s), String_.Len(s));
Env_.TickCount_Test++;
}
return this;
@@ -41,7 +41,7 @@ class GfoCacheMgr_fxt {
public GfoCacheMgr_fxt run_Get(String... ary) {
for (int i = 0; i < ary.length; i++) {
String s = ary[i];
mgr.Get_by_key(Bry_.new_utf8_(s));
mgr.Get_by_key(Bry_.new_u8(s));
Env_.TickCount_Test++;
}
return this;

View File

@@ -17,27 +17,27 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx;
public class Gfo_cache_mgr {
private OrderedHash hash = OrderedHash_.new_bry_();
private OrderedHash recent = OrderedHash_.new_bry_();
private Ordered_hash hash = Ordered_hash_.new_bry_();
private Ordered_hash recent = Ordered_hash_.new_bry_();
public int Max_size() {return max_size;} public Gfo_cache_mgr Max_size_(int v) {max_size = v; return this;} private int max_size;
public int Reduce_by() {return reduce_by;} public Gfo_cache_mgr Reduce_by_(int v) {reduce_by = v; return this;} private int reduce_by;
public int Cur_size() {return cur_size;} private int cur_size;
public int Count() {return hash.Count();}
public void Clear() {hash.Clear(); recent.Clear(); cur_size = 0;}
@gplx.Internal protected Object Get_at(int i) {
Gfo_cache_itm rv = (Gfo_cache_itm)hash.FetchAt(i);
Gfo_cache_itm rv = (Gfo_cache_itm)hash.Get_at(i);
return rv.Val();
}
public Object Get_by_key(byte[] key) {
Object o = hash.Fetch(key); if (o == null) return null;
Object o = hash.Get_by(key); if (o == null) return null;
Gfo_cache_itm rv = (Gfo_cache_itm)o;
rv.Timestamp_update();
Object recent_itm = recent.Fetch(key);
Object recent_itm = recent.Get_by(key);
if (recent_itm == null) recent.Add(key, rv);
return rv.Val();
}
public void Del(byte[] key) {
Object o = hash.Fetch(key); if (o == null) return;
Object o = hash.Get_by(key); if (o == null) return;
Gfo_cache_itm itm = (Gfo_cache_itm)o;
cur_size -= itm.Size();
hash.Del(itm.Key());
@@ -46,7 +46,7 @@ public class Gfo_cache_mgr {
public void Add_replace(byte[] key, RlsAble val, int size) {
// Del(key);
// Add(key, val, size);
Object o = hash.Fetch(key);
Object o = hash.Get_by(key);
if (o == null)
Add(key, val, size);
else {
@@ -67,7 +67,7 @@ public class Gfo_cache_mgr {
// ConsoleAdp._.WriteLine("reducing");
int len = recent.Count();
for (int i = 0; i < len; i++) {
Gfo_cache_itm itm = (Gfo_cache_itm)recent.FetchAt(i);
Gfo_cache_itm itm = (Gfo_cache_itm)recent.Get_at(i);
itm.Rls(); // releases root
}
recent.Clear();
@@ -76,10 +76,10 @@ public class Gfo_cache_mgr {
ConsoleAdp._.WriteLine("compacting:");
// hash.Sort();
// int len = hash.Count();
// ListAdp deleted = ListAdp_.new_();
// List_adp deleted = List_adp_.new_();
// int deleted_size = 0, deleted_count = 0;
// for (int i = 0; i < len; i++) {
// Gfo_cache_itm itm = (Gfo_cache_itm)hash.FetchAt(i);
// Gfo_cache_itm itm = (Gfo_cache_itm)hash.Get_at(i);
// int new_deleted_size = deleted_size + 1;//itm.Size();
// if (new_deleted_size > 4000 && deleted_count > 0) break;
// deleted.Add(itm);
@@ -88,7 +88,7 @@ public class Gfo_cache_mgr {
// }
// len = deleted.Count();
// for (int i = 0; i < len; i++) {
// Gfo_cache_itm itm = (Gfo_cache_itm)deleted.FetchAt(i);
// Gfo_cache_itm itm = (Gfo_cache_itm)deleted.Get_at(i);
// cur_size --;
// hash.Del(bry_ref.Val_(itm.Key()));
// itm.Rls();
@@ -97,7 +97,7 @@ public class Gfo_cache_mgr {
int len = hash.Count();
for (int i = 0; i < len; i++) {
Gfo_cache_itm itm = (Gfo_cache_itm)hash.FetchAt(i);
Gfo_cache_itm itm = (Gfo_cache_itm)hash.Get_at(i);
// hash.Del(bry_ref.Val_(itm.Key()));
itm.Rls();
}

View File

@@ -23,7 +23,7 @@ public class Gfo_url_arg {
public Gfo_url_arg Val_bry_(byte[] v) {val_bry = v; return this;}
public static final Gfo_url_arg[] Ary_empty = new Gfo_url_arg[0];
public static Gfo_url_arg new_key_(String key) {
return new Gfo_url_arg(Bry_.new_utf8_(key), Bry_.Empty);
return new Gfo_url_arg(Bry_.new_u8(key), Bry_.Empty);
}
public static Gfo_url_arg[] Ary(String... kvs) {
int len = kvs.length;
@@ -34,7 +34,7 @@ public class Gfo_url_arg {
if (i % 2 == 0)
key = s;
else
rv[i / 2] = new Gfo_url_arg(Bry_.new_utf8_(key), Bry_.new_utf8_(s));
rv[i / 2] = new Gfo_url_arg(Bry_.new_u8(key), Bry_.new_u8(s));
}
return rv;
}

View File

@@ -20,7 +20,7 @@ import gplx.xowa.net.*;
public class Gfo_url_parser {
private boolean pass = true;
private Gfo_url url;
private ListAdp segs = ListAdp_.new_(), args = ListAdp_.new_();
private List_adp segs = List_adp_.new_(), args = List_adp_.new_();
private Url_encoder encoder = Url_encoder.new_html_href_mw_().Itms_raw_same_many(Byte_ascii.Underline); private Hash_adp_bry protocols = Hash_adp_bry.ci_ascii_(); // ASCII:url_protocol; EX:"http:", "ftp:", etc
public Gfo_url_parser() {
Init_protocols(Xoo_protocol_itm.Ary());
@@ -209,7 +209,7 @@ public class Gfo_url_parser {
}
++pos;
}
url.Segs_((byte[][])segs.Xto_ary(byte[].class));
url.Segs_((byte[][])segs.To_ary(byte[].class));
}
private void Parse_anchor(byte[] src, int bgn, int end) {
if (bgn == end) return;
@@ -264,7 +264,7 @@ public class Gfo_url_parser {
++pos;
}
url.Args_bgn_(bgn - 1); // NOTE: bgn is 1st char after ?; -1 to place at ?
url.Args_((Gfo_url_arg[])args.Xto_ary(Gfo_url_arg.class));
url.Args_((Gfo_url_arg[])args.To_ary(Gfo_url_arg.class));
}
private void Args_add(byte[] src, int key_bgn, int key_end, int val_bgn, int val_end) {
encoder.Decode(src, key_bgn, key_end, tmp_bfr, false);

View File

@@ -95,10 +95,10 @@ class Gfo_url_parser_chkr implements Tst_chkr {
public Gfo_url_parser_chkr Site_sub_(String v) {this.site_sub = v; return this;} private String site_sub;
public Gfo_url_parser_chkr Site_name_(String v) {this.site_name = v; return this;} private String site_name;
public Gfo_url_parser_chkr Site_domain_(String v) {this.site_domain = v; return this;} private String site_domain;
public Gfo_url_parser_chkr Segs_(String v) {segs.Add(v); return this;} ListAdp segs = ListAdp_.new_();
public Gfo_url_parser_chkr Segs_(String v) {segs.Add(v); return this;} List_adp segs = List_adp_.new_();
public Gfo_url_parser_chkr Page_(String v) {this.page = v; return this;} private String page;
public Gfo_url_parser_chkr Anchor_(String v) {this.anchor = v; return this;} private String anchor;
public Gfo_url_parser_chkr Args_(String k, String v) {args.Add(new Gfo_url_arg_chkr(k, v)); return this;} ListAdp args = ListAdp_.new_();
public Gfo_url_parser_chkr Args_(String k, String v) {args.Add(new Gfo_url_arg_chkr(k, v)); return this;} List_adp args = List_adp_.new_();
public Gfo_url_parser_chkr Err_(byte v) {err = v; return this;} private byte err;
public Gfo_url_parser_chkr Reset() {
protocol_tid = Xoo_protocol_itm.Tid_null;
@@ -114,29 +114,29 @@ class Gfo_url_parser_chkr implements Tst_chkr {
int rv = 0;
rv += mgr.Tst_val(err == Gfo_url.Err_none, path, "err", err, actl.Err());
rv += mgr.Tst_val(protocol_tid == Xoo_protocol_itm.Tid_null, path, "protocol_tid", protocol_tid, actl.Protocol_tid());
rv += mgr.Tst_val(site == null, path, "site", site, String_.new_utf8_(actl.Site()));
rv += mgr.Tst_val(site_sub == null, path, "site_sub", site_sub, String_.new_utf8_(actl.Site_sub()));
rv += mgr.Tst_val(site_name == null, path, "site_name", site_name, String_.new_utf8_(actl.Site_name()));
rv += mgr.Tst_val(site_domain == null, path, "site_domain", site_domain, String_.new_utf8_(actl.Site_domain()));
bry_ary_chkr.Val_(Bry_.Ary(segs.XtoStrAry()));
rv += mgr.Tst_val(site == null, path, "site", site, String_.new_u8(actl.Site()));
rv += mgr.Tst_val(site_sub == null, path, "site_sub", site_sub, String_.new_u8(actl.Site_sub()));
rv += mgr.Tst_val(site_name == null, path, "site_name", site_name, String_.new_u8(actl.Site_name()));
rv += mgr.Tst_val(site_domain == null, path, "site_domain", site_domain, String_.new_u8(actl.Site_domain()));
bry_ary_chkr.Val_(Bry_.Ary(segs.To_str_ary()));
rv += bry_ary_chkr.Chk(mgr, "segs", actl.Segs());
rv += mgr.Tst_val(page == null, path, "page", page, String_.new_utf8_(actl.Page()));
rv += mgr.Tst_val(anchor == null, path, "anchor", anchor, String_.new_utf8_(actl.Anchor()));
mgr.Tst_sub_ary((Gfo_url_arg_chkr[])args.Xto_ary(Gfo_url_arg_chkr.class), actl.Args(), "args", rv);
rv += mgr.Tst_val(page == null, path, "page", page, String_.new_u8(actl.Page()));
rv += mgr.Tst_val(anchor == null, path, "anchor", anchor, String_.new_u8(actl.Anchor()));
mgr.Tst_sub_ary((Gfo_url_arg_chkr[])args.To_ary(Gfo_url_arg_chkr.class), actl.Args(), "args", rv);
return rv;
}
public Gfo_url_parser_chkr Raw_(String v) {this.raw = v; return this;} private String raw;
public void tst_() {
byte[] bry = Bry_.new_utf8_(raw);
byte[] bry = Bry_.new_u8(raw);
Gfo_url url = new Gfo_url();
parser.Parse(url, bry, 0, bry.length);
Tst_mgr tst_mgr = new Tst_mgr();
tst_mgr.Tst_obj(this, url);
} Gfo_url_parser parser = new Gfo_url_parser();
public void Parse_site_fast_tst(String raw, String expd) {
byte[] raw_bry = Bry_.new_utf8_(raw);
byte[] raw_bry = Bry_.new_u8(raw);
parser.Parse_site_fast(site_data, raw_bry, 0, raw_bry.length);
String actl = String_.new_utf8_(raw_bry, site_data.Site_bgn(), site_data.Site_end());
String actl = String_.new_u8(raw_bry, site_data.Site_bgn(), site_data.Site_end());
Tfds.Eq(expd, actl);
} Gfo_url_site_data site_data = new Gfo_url_site_data();
}
@@ -146,8 +146,8 @@ class Gfo_url_arg_chkr implements Tst_chkr {
public int Chk(Tst_mgr mgr, String path, Object actl_obj) {
Gfo_url_arg actl = (Gfo_url_arg)actl_obj;
int rv = 0;
rv += mgr.Tst_val(key == null, path, "key", key, String_.new_utf8_(actl.Key_bry()));
rv += mgr.Tst_val(val == null, path, "val", val, String_.new_utf8_(actl.Val_bry()));
rv += mgr.Tst_val(key == null, path, "key", key, String_.new_u8(actl.Key_bry()));
rv += mgr.Tst_val(val == null, path, "val", val, String_.new_u8(actl.Val_bry()));
return rv;
}
}

View File

@@ -20,8 +20,8 @@ public class Gfo_usr_dlg_fmt {
public boolean Write_prog_cur(int cur, Gfo_usr_dlg usr_dlg) {
if (cur < prog_prv + prog_interval) return usr_dlg.Canceled();
prog_prv = cur;
String pct = DecimalAdp_.CalcPctStr(cur + ListAdp_.Base1, end, "00.00");
usr_dlg.Prog_many(grp_key, msg_key, fmt, Int_.Xto_str_pad_bgn_zero(cur + ListAdp_.Base1, endLen), end, pct);
String pct = DecimalAdp_.CalcPctStr(cur + List_adp_.Base1, end, "00.00");
usr_dlg.Prog_many(grp_key, msg_key, fmt, Int_.Xto_str_pad_bgn_zero(cur + List_adp_.Base1, endLen), end, pct);
return usr_dlg.Canceled();
} String fmt; int end, endLen;
public static Gfo_usr_dlg_fmt fmt_(String grp_key, String msg_key, String fmt, int end, float pct) {

View File

@@ -18,7 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
package gplx;
public class Int_ary_parser extends Obj_ary_parser_base {
Number_parser parser = new Number_parser(); int[] ary; int ary_idx;
public int[] Parse_ary(String str, byte dlm) {byte[] bry = Bry_.new_utf8_(str); return Parse_ary(bry, 0, bry.length, dlm);}
public int[] Parse_ary(String str, byte dlm) {byte[] bry = Bry_.new_u8(str); return Parse_ary(bry, 0, bry.length, dlm);}
public int[] Parse_ary(byte[] bry, int bgn, int end, byte dlm) {
Parse_core(bry, bgn, end, dlm, Byte_ascii.Nil);
return ary;
@@ -32,7 +32,7 @@ public class Int_ary_parser extends Obj_ary_parser_base {
}
}
@Override protected void Parse_itm(byte[] bry, int bgn, int end) {
parser.Parse(bry, bgn, end); if (parser.Has_err() || parser.Has_frac()) throw Err_.new_fmt_("failed to parse number: {0}", String_.new_utf8_(bry, bgn, end));
parser.Parse(bry, bgn, end); if (parser.Has_err() || parser.Has_frac()) throw Err_.new_fmt_("failed to parse number: {0}", String_.new_u8(bry, bgn, end));
ary[ary_idx++] = parser.Rv_as_int();
}
public static final Int_ary_parser _ = new Int_ary_parser();

View File

@@ -22,7 +22,7 @@ public class Int_ary_parser_tst {
@Test public void One() {tst_ints("1" , 0, 1, Int_.Ary(1));}
@Test public void None() {tst_ints("" , 0, 0, Int_.Ary());}
private void tst_ints(String raw, int bgn, int end, int[] expd) {
int[] actl = Int_ary_parser._.Parse_ary(Bry_.new_ascii_(raw), bgn, end, Byte_ascii.Comma);
int[] actl = Int_ary_parser._.Parse_ary(Bry_.new_a7(raw), bgn, end, Byte_ascii.Comma);
Tfds.Eq_ary(expd, actl);
}
}

View File

@@ -20,9 +20,9 @@ import java.io.*;
import java.util.zip.*;
public class Io_zip_mgr_base implements Io_zip_mgr {
public void Zip_fil(Io_url src_fil, Io_url trg_fil) {
byte[] src_bry = Io_mgr._.LoadFilBry(src_fil);
byte[] src_bry = Io_mgr.I.LoadFilBry(src_fil);
byte[] trg_bry = Zip_bry(src_bry, 0, src_bry.length);
Io_mgr._.SaveFilBry(trg_fil, trg_bry);
Io_mgr.I.SaveFilBry(trg_fil, trg_bry);
}
public void Zip_dir(Io_url src_dir, Io_url trg_fil) {
try {
@@ -56,7 +56,7 @@ public class Io_zip_mgr_base implements Io_zip_mgr {
} catch(IOException exc) {throw Err_.err_(exc, "error duing zip: src=~{0}", zip_path);}
}
private Io_url[] Zip_dir__get_subs(Io_url url) {
return Io_mgr._.QueryDir_args(url).DirInclude_().ExecAsUrlAry();
return Io_mgr.I.QueryDir_args(url).DirInclude_().ExecAsUrlAry();
}
public byte[] Zip_bry(byte[] src, int bgn, int len) {
ByteArrayInputStream src_stream = new ByteArrayInputStream(src, bgn, len);
@@ -90,7 +90,7 @@ public class Io_zip_mgr_base implements Io_zip_mgr {
public void Unzip_to_dir(Io_url src_fil, Io_url trg_dir) {
byte[] buffer = new byte[4096];
try{
Io_mgr._.CreateDirIfAbsent(trg_dir);
Io_mgr.I.CreateDirIfAbsent(trg_dir);
ZipInputStream zip_strm = new ZipInputStream(new FileInputStream(src_fil.Raw()));
ZipEntry zip_eny = zip_strm.getNextEntry();
@@ -98,9 +98,9 @@ public class Io_zip_mgr_base implements Io_zip_mgr {
String itm_name = zip_eny.getName();
if (Op_sys.Cur().Tid_is_wnt()) itm_name = String_.Replace(itm_name, "/", "\\");
Io_url itm_url = Io_url_.new_any_(trg_dir.GenSubFil(itm_name).Raw());
Io_mgr._.CreateDirIfAbsent(itm_url.OwnerDir()); // make sure owner dir exists
Io_mgr.I.CreateDirIfAbsent(itm_url.OwnerDir()); // make sure owner dir exists
if (itm_url.Type_fil()) {
Io_mgr._.SaveFilStr_args(itm_url, "").Exec();
Io_mgr.I.SaveFilStr_args(itm_url, "").Exec();
File itm_file = new File(itm_url.Raw());
FileOutputStream itm_strm = new FileOutputStream(itm_file);
int len;

View File

@@ -18,19 +18,19 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
package gplx;
public class Io_zip_mgr_mok implements Io_zip_mgr {
public void Zip_fil(Io_url src_fil, Io_url trg_fil) {
byte[] src_bry = Io_mgr._.LoadFilBry(src_fil);
byte[] src_bry = Io_mgr.I.LoadFilBry(src_fil);
byte[] zip_bry = Zip_bry(src_bry, 0, src_bry.length);
Io_mgr._.SaveFilBry(trg_fil, zip_bry);
Io_mgr.I.SaveFilBry(trg_fil, zip_bry);
}
public void Zip_dir(Io_url src_dir, Io_url trg_fil) {}
public byte[] Zip_bry(byte[] src, int bgn, int len) {return Bry_.Add(Bry_zipped, Bry_.Mid(src, bgn, len));}
public byte[] Unzip_bry(byte[] src, int bgn, int len) {
if (src == Bry_.Empty) return src;
byte[] section = Bry_.Mid(src, bgn, bgn + len);
if (!Bry_.HasAtBgn(section, Bry_zipped, 0, section.length)) throw Err_.new_("src not zipped: " + String_.new_utf8_(section));
if (!Bry_.HasAtBgn(section, Bry_zipped, 0, section.length)) throw Err_.new_("src not zipped: " + String_.new_u8(section));
return Bry_.Mid(section, Bry_zipped.length, section.length);
}
public void Unzip_to_dir(Io_url src_fil, Io_url trg_dir) {}
private static final byte[] Bry_zipped = Bry_.new_utf8_("zipped:");
private static final byte[] Bry_zipped = Bry_.new_u8("zipped:");
public static final Io_zip_mgr_mok _ = new Io_zip_mgr_mok(); Io_zip_mgr_mok() {}
}

View File

@@ -23,7 +23,7 @@ public class Io_zip_mgr_tst {
}
private void Zip_unzip_tst(String s) {
Io_zip_mgr zip_mgr = Io_zip_mgr_base._;
byte[] src = Bry_.new_ascii_(s);
byte[] src = Bry_.new_a7(s);
byte[] zip = zip_mgr.Zip_bry(src, 0, src.length);
byte[] unz = zip_mgr.Unzip_bry(zip, 0, zip.length);
Tfds.Eq_ary(src, unz);

View File

@@ -71,26 +71,26 @@ public class Number_parser_tst {
class Number_parser_fxt {
private final Number_parser parser = new Number_parser();
public void Clear() {parser.Clear();}
public void Init_ignore(String chars) {parser.Ignore_chars_(Bry_.new_ascii_(chars));}
public void Init_ignore(String chars) {parser.Ignore_chars_(Bry_.new_a7(chars));}
public void Test_int(String raw, int expd) {
byte[] raw_bry = Bry_.new_ascii_(raw);
byte[] raw_bry = Bry_.new_a7(raw);
int actl = parser.Parse(raw_bry, 0, raw_bry.length).Rv_as_int();
Tfds.Eq(expd, actl, raw);
}
public void Test_dec(String raw, DecimalAdp expd) {
byte[] raw_bry = Bry_.new_ascii_(raw);
byte[] raw_bry = Bry_.new_a7(raw);
DecimalAdp actl = parser.Parse(raw_bry, 0, raw_bry.length).Rv_as_dec();
Tfds.Eq(expd.Xto_decimal(), actl.Xto_decimal(), raw);
}
public void Test_err(String raw, boolean expd) {
byte[] raw_bry = Bry_.new_ascii_(raw);
byte[] raw_bry = Bry_.new_a7(raw);
boolean actl = parser.Parse(raw_bry, 0, raw_bry.length).Has_err();
Tfds.Eq(expd, actl, raw);
}
public void Test_hex(String raw, int expd_val) {Test_hex(raw, expd_val, true);}
public void Test_hex(String raw, int expd_val, boolean expd_pass) {
parser.Hex_enabled_(true);
byte[] raw_bry = Bry_.new_ascii_(raw);
byte[] raw_bry = Bry_.new_a7(raw);
int actl = parser.Parse(raw_bry, 0, raw_bry.length).Rv_as_int();
if (expd_pass) {
Tfds.Eq(expd_val, actl, raw);

View File

@@ -19,13 +19,13 @@ package gplx;
import gplx.core.strings.*;
public class Tst_mgr {
public Tst_mgr ThrowError_n_() {throwError = false; return this;} private boolean throwError = true;
public ListAdp Results() {return results;} ListAdp results = ListAdp_.new_();
public List_adp Results() {return results;} List_adp results = List_adp_.new_();
public KeyValHash Vars() {return vars;} KeyValHash vars = KeyValHash.new_();
public Object Vars_get_by_key(String key) {return vars.FetchValOr(key, null);}
public String Vars_get_bry_as_str(String key, int bgn, int end) {
byte[] bry = (byte[])vars.FetchValOr(key, null); if (bry == null) return String_.Empty;
if (bgn < 0 || end > bry.length || end < bgn || end < 0) return "<<OUT OF BOUNDS>>";
return String_.new_utf8_(Bry_.Mid(bry, bgn, end));
return String_.new_u8(Bry_.Mid(bry, bgn, end));
}
public int Tst_val(boolean skip, String path, String name, Object expd, Object actl) {
Tst_itm itm = Tst_itm.eq_(skip, path, name, expd, actl);
@@ -83,7 +83,7 @@ public class Tst_mgr {
if (ary == null) return "<NULL>";
int len = Array_.Len(ary);
for (int i = 0; i < len; i++) {
Object itm = Array_.FetchAt(ary, i);
Object itm = Array_.Get_at(ary, i);
ary_sb.Add(Object_.Xto_str_strict_or_null_mark(itm)).Add(",");
}
return ary_sb.Xto_str_and_clear();
@@ -93,13 +93,13 @@ public class Tst_mgr {
int comp_max = 0, path_max =0, name_max = 0;
int len = results.Count();
for (int i = 0; i < len; i++) {
Tst_itm itm = (Tst_itm)results.FetchAt(i);
Tst_itm itm = (Tst_itm)results.Get_at(i);
comp_max = Max(comp_max, itm.Comp());
path_max = Max(path_max, itm.Path());
name_max = Max(name_max, itm.Name());
}
for (int i = 0; i < len; i++) {
Tst_itm itm = (Tst_itm)results.FetchAt(i);
Tst_itm itm = (Tst_itm)results.Get_at(i);
sb.Add_fmt("\n{0} {1} {2} '{3}'", String_.PadEnd(itm.Comp(), comp_max, " "), "#" + String_.PadEnd(itm.Path(), path_max, " "), "@" + String_.PadEnd(itm.Name(), name_max, " ") + ":", itm.Expd());
if (!itm.Pass())
sb.Add_fmt("\n{0} {1} {2} '{3}'", String_.PadEnd("", comp_max, " "), " " + String_.PadEnd("", path_max, " "), " " + String_.PadEnd("", name_max, " ") + " ", itm.Actl());

View File

@@ -80,12 +80,12 @@ public class Url_encoder implements Url_encoder_interface {
}
public String Encode_str(String str) {
synchronized (thread_lock) {
byte[] bry = Bry_.new_utf8_(str); Encode(tmp_bfr, bry, 0, bry.length); return tmp_bfr.Xto_str_and_clear();
byte[] bry = Bry_.new_u8(str); Encode(tmp_bfr, bry, 0, bry.length); return tmp_bfr.Xto_str_and_clear();
}
}
public byte[] Encode_bry(String str) {
synchronized (thread_lock) {
byte[] bry = Bry_.new_utf8_(str); Encode(tmp_bfr, bry, 0, bry.length); return tmp_bfr.Xto_bry_and_clear();
byte[] bry = Bry_.new_u8(str); Encode(tmp_bfr, bry, 0, bry.length); return tmp_bfr.Xto_bry_and_clear();
}
}
public byte[] Encode(byte[] bry) {Encode(tmp_bfr, bry, 0, bry.length); return tmp_bfr.Xto_bry_and_clear();}
@@ -106,7 +106,7 @@ public class Url_encoder implements Url_encoder_interface {
}
public String Decode_str(String str) {
synchronized (thread_lock) {
byte[] bry = Bry_.new_utf8_(str); Decode(bry, 0, bry.length, tmp_bfr, true); return tmp_bfr.Xto_str_and_clear();
byte[] bry = Bry_.new_u8(str); Decode(bry, 0, bry.length, tmp_bfr, true); return tmp_bfr.Xto_str_and_clear();
}
}
public byte[] Decode(byte[] bry) {
@@ -224,13 +224,6 @@ public class Url_encoder implements Url_encoder_interface {
rv.Itms_raw_diff(Byte_ascii.Space, Byte_ascii.Underline); // convert " " to "_"
return rv;
}
public static Url_encoder url_comma() {
Url_encoder rv = new Url_encoder();
rv.Itms_ini(Byte_ascii.Percent);
mediawiki_base(rv, true);
rv.Itms_raw_same_many(Byte_ascii.Comma);
return rv;
}
}
interface Url_encoder_itm {
int Encode(Bry_bfr bfr, byte[] src, int end, int idx, byte b);
@@ -257,7 +250,7 @@ class Url_encoder_itm_hex implements Url_encoder_itm {
}
public int Decode(Bry_bfr bfr, byte[] src, int end, int idx, byte b, boolean fail_when_invalid) {
if (idx + 2 >= end) {
if (fail_when_invalid) throw Err_.new_fmt_("decode needs 3 bytes: idx={0} len={1} snip={2}", idx, end, String_.new_utf8_(Bry_.Mid_by_len_safe(src, idx, 3)));
if (fail_when_invalid) throw Err_.new_fmt_("decode needs 3 bytes: idx={0} len={1} snip={2}", idx, end, String_.new_u8(Bry_.Mid_by_len_safe(src, idx, 3)));
else {
bfr.Add_byte(b);
return 0;
@@ -277,7 +270,7 @@ class Url_encoder_itm_hex implements Url_encoder_itm {
}
}
if (fail_when_invalid)
throw Err_.new_fmt_("decode is invalid: idx={0}, snip={1}", idx, String_.new_utf8_(Bry_.Mid_by_len_safe(src, idx, 3)));
throw Err_.new_fmt_("decode is invalid: idx={0}, snip={1}", idx, String_.new_u8(Bry_.Mid_by_len_safe(src, idx, 3)));
else {
bfr.Add_byte(b);
return 0;

View File

@@ -26,7 +26,7 @@ public class Url_encoder_tst {
@Test public void Id_foreign() {fxt.Encoder_id().Test_encode_decode("aéb", "a.C3.A9b");}
@Test public void Id_space() {fxt.Encoder_id().Test_encode_decode("a b", "a_b");}
@Test public void Id_err() {
byte[] raw = Bry_.new_ascii_("0%.jpg");
byte[] raw = Bry_.new_a7("0%.jpg");
Bry_bfr tmp_bfr = Bry_bfr.new_();
fxt.Encoder_id().Encoder().Decode(raw, 0, raw.length, tmp_bfr, false);
Tfds.Eq("0%.jpg", tmp_bfr.Xto_str_and_clear());
@@ -62,11 +62,11 @@ class Url_encoder_fxt {
tst_decode(encoded, raw);
}
public void Test_encode(String raw, String expd) {
byte[] bry = encoder.Encode(Bry_.new_utf8_(raw));
Tfds.Eq(expd, String_.new_utf8_(bry));
byte[] bry = encoder.Encode(Bry_.new_u8(raw));
Tfds.Eq(expd, String_.new_u8(bry));
}
public void tst_decode(String raw, String expd) {
byte[] bry = encoder.Decode(Bry_.new_utf8_(raw));
Tfds.Eq(expd, String_.new_utf8_(bry));
byte[] bry = encoder.Decode(Bry_.new_u8(raw));
Tfds.Eq(expd, String_.new_u8(bry));
}
}