Refactor: Clean up Int_ classes

pull/620/head
gnosygnu 7 years ago
parent d270cce881
commit 3157551d1d

@ -14,19 +14,26 @@ GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/
package gplx;
import gplx.langs.gfs.*;
public class Bool_ {
public class Bool_ {//RF:2017-10-08
public static final String Cls_val_name = "bool";
public static final Class<?> Cls_ref_type = Boolean.class;
public static final boolean N = false , Y = true;
public static final byte N_byte = 0 , Y_byte = 1 , __byte = 127;
public static final int N_int = 0 , Y_int = 1 , __int = -1;
public static final byte[] N_bry = new byte[] {Byte_ascii.Ltr_n}, Y_bry = new byte[] {Byte_ascii.Ltr_y};
public static final String True_str = "true", False_str = "false";
public static final byte[] True_bry = Bry_.new_a7(True_str), False_bry = Bry_.new_a7(False_str);
public static boolean By_int(int v) {return v == Y_int;}
public static int To_int(boolean v) {return v ? Y_int : N_int;}
public static byte To_byte(boolean v) {return v ? Y_byte : N_byte;}
public static String To_str_lower(boolean v) {return v ? True_str : False_str;}
public static boolean Cast(Object obj) {try {return (Boolean)obj;} catch (Exception e) {throw Err_.new_type_mismatch_w_exc(e, boolean.class, obj);}}
public static boolean Cast_or(Object obj, boolean or) {try {return (Boolean)obj;} catch (Exception e) {Err_.Noop(e); return or;}}
public static boolean Parse(String raw) {
if ( String_.Eq(raw, True_str)
|| String_.Eq(raw, "True") // needed for Store_Wtr(){boolVal.toString();}
@ -49,13 +56,10 @@ public class Bool_ {
return false;
return or;
}
public static int Compare(boolean lhs, boolean rhs) {
if ( lhs == rhs) return CompareAble_.Same;
else if (!lhs && rhs) return CompareAble_.Less;
else /*lhs && !rhs*/ return CompareAble_.More;
}
public static boolean By_int(int v) {return v == Y_int;}
public static int To_int(boolean v) {return v ? Y_int : N_int;}
public static byte To_byte(boolean v) {return v ? Y_byte : N_byte;}
public static String To_str_lower(boolean v) {return v ? True_str : False_str;}
}

@ -36,7 +36,7 @@ public class Bry_ {
for (int i = 0; i < len; ++i) {
Object itm = ary[i];
Class<?> type = Type_.Type_by_obj(itm);
if (Type_.Eq(type, int.class)) bfr.Add_byte((byte)Int_.cast(itm));
if (Type_.Eq(type, int.class)) bfr.Add_byte((byte)Int_.Cast(itm));
else if (Type_.Eq(type, String.class)) bfr.Add_str_u8((String)itm);
else if (Type_.Eq(type, byte[].class)) bfr.Add((byte[])itm);
else throw Err_.new_unhandled(Type_.Canonical_name(type));

@ -162,7 +162,7 @@ public class Bry__tst {
} void tst_ReadCsvDte(String raw) {Tfds.Eq_date(DateAdp_.parse_fmt(raw, Bry_.Fmt_csvDte), Bry_.ReadCsvDte(Bry_.new_u8(raw + "|"), Int_obj_ref.New_zero(), (byte)'|'));}
@Test public void ReadCsvInt() {
tst_ReadCsvInt("1234567890");
} void tst_ReadCsvInt(String raw) {Tfds.Eq(Int_.parse(raw), Bry_.ReadCsvInt(Bry_.new_u8(raw + "|"), Int_obj_ref.New_zero(), (byte)'|'));}
} void tst_ReadCsvInt(String raw) {Tfds.Eq(Int_.Parse(raw), Bry_.ReadCsvInt(Bry_.new_u8(raw + "|"), Int_obj_ref.New_zero(), (byte)'|'));}
@Test public void Trim() {
Trim_tst("a b c", 1, 4, "b");
Trim_tst("a c", 1, 3, "");

@ -453,8 +453,8 @@ public class Bry_bfr {
if (o == null) return this; // treat null as empty String;
Class<?> o_type = o.getClass();
if (o_type == byte[].class) Add((byte[])o);
else if (o_type == Integer.class) Add_int_variable(Int_.cast(o));
else if (o_type == Byte.class) Add_byte(Byte_.cast(o));
else if (o_type == Integer.class) Add_int_variable(Int_.Cast(o));
else if (o_type == Byte.class) Add_byte(Byte_.Cast(o));
else if (o_type == Long.class) Add_long_variable(Long_.cast(o));
else if (o_type == String.class) Add_str_u8((String)o);
else if (o_type == Bry_bfr.class) Add_bfr_and_preserve((Bry_bfr)o);
@ -470,8 +470,8 @@ public class Bry_bfr {
if (o == null) return this; // treat null as empty String;
Class<?> o_type = o.getClass();
if (o_type == byte[].class) Add((byte[])o);
else if (o_type == Integer.class) Add_int_variable(Int_.cast(o));
else if (o_type == Byte.class) Add_byte(Byte_.cast(o));
else if (o_type == Integer.class) Add_int_variable(Int_.Cast(o));
else if (o_type == Byte.class) Add_byte(Byte_.Cast(o));
else if (o_type == Long.class) Add_long_variable(Long_.cast(o));
else if (o_type == String.class) Add_str_u8((String)o);
else if (o_type == Bry_bfr.class) Add_bfr_and_preserve((Bry_bfr)o);

@ -67,7 +67,7 @@ public class Bry_bfr_tst {
void Add_int_variable(int val) {
bb.Clear();
bb.Add_int_variable(val);
Tfds.Eq(val, Int_.parse(String_.new_u8(bb.To_bry())));
Tfds.Eq(val, Int_.Parse(String_.new_u8(bb.To_bry())));
}
@Test public void Add_int_fixed_len3() {tst_Add_int_fixed(123, 3, "123");}
@Test public void Add_int_fixed_pad_1() {tst_Add_int_fixed(2, 1, "2");}

@ -14,42 +14,48 @@ GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/
package gplx;
public class Byte_ {
public class Byte_ {//RF:2017-10-08
public static final String Cls_val_name = "byte";
public static final Class<?> Cls_ref_type = Byte.class;
public static final byte
Zero = 0
, Min_value = Byte.MIN_VALUE
, Max_value_127 = 127
, Val_128 = -128
, Val_255 = -1
;
public static byte cast(Object o) {try {return (Byte)o;} catch (Exception e) {throw Err_.new_type_mismatch_w_exc(e, byte.class, o);}}
public static byte parse(String raw) {return Byte.parseByte(raw);}
public static byte parse_or(String raw, byte or) {
if (raw == null) return or;
try {return parse(raw);}
catch (Exception e) {Err_.Noop(e); return or;}
}
;
public static byte By_int(int v) {return v > 127 ? (byte)(v - 256) : (byte)v;} // PERF?: (byte)(v & 0xff)
public static int To_int(byte v) {return v < 0 ? (int)v + 256 : v;}
public static String To_str(byte v) {return new Byte(v).toString();}
public static byte[] To_bry(byte v) {return new byte[] {v};}
public static boolean In(byte v, byte... ary) {
public static byte Cast(Object o) {try {return (Byte)o;} catch (Exception e) {throw Err_.new_type_mismatch_w_exc(e, byte.class, o);}}
public static byte Parse(String raw) {return Byte.parseByte(raw);}
public static byte Parse_or(String raw, byte or) {
if (raw == null) return or;
try {return Parse(raw);}
catch (Exception e) {Err_.Noop(e); return or;}
}
public static boolean Match_any(byte v, byte... ary) {
for (byte itm : ary)
if (v == itm) return true;
return false;
}
public static boolean Eq_many(byte v, byte... ary) {
public static boolean Match_all(byte v, byte... ary) {
for (byte itm : ary)
if (v != itm) return false;
return true;
}
public static int Compare(byte lhs, byte rhs) {
if (lhs == rhs) return CompareAble_.Same;
else if (lhs < rhs) return CompareAble_.Less;
else return CompareAble_.More;
}
public static byte[] Ary(byte... ary) {return ary;}
public static byte[] Ary_by_ints(int... ary) {
int ary_len = ary.length;

@ -43,6 +43,8 @@ public class Byte_ascii {
public static final byte
Angle_bgn = Lt, Angle_end = Gt
;
public static final int Len_1 = 1;
public static final byte Max_7_bit = (byte)127, Ascii_min = 0, Ascii_max = 127;
public static boolean Is_sym(byte b) {
switch (b) {

@ -131,8 +131,8 @@ class GfoMsg_base implements GfoMsg {
return this;
}
public boolean ReadBool(String k) {Object rv = ReadOr(k,false); if (rv == Nil) ThrowNotFound(k); return parse ? Yn.parse_or((String)rv, false) : Bool_.Cast(rv);}
public int ReadInt(String k) {Object rv = ReadOr(k, 0) ; if (rv == Nil) ThrowNotFound(k); return parse ? Int_.parse((String)rv) : Int_.cast(rv);}
public byte ReadByte(String k) {Object rv = ReadOr(k, 0) ; if (rv == Nil) ThrowNotFound(k); return parse ? Byte_.parse((String)rv) : Byte_.cast(rv);}
public int ReadInt(String k) {Object rv = ReadOr(k, 0) ; if (rv == Nil) ThrowNotFound(k); return parse ? Int_.Parse((String)rv) : Int_.Cast(rv);}
public byte ReadByte(String k) {Object rv = ReadOr(k, 0) ; if (rv == Nil) ThrowNotFound(k); return parse ? Byte_.Parse((String)rv) : Byte_.Cast(rv);}
public long ReadLong(String k) {Object rv = ReadOr(k, 0) ; if (rv == Nil) ThrowNotFound(k); return parse ? Long_.parse((String)rv) : Long_.cast(rv);}
public float ReadFloat(String k) {Object rv = ReadOr(k, 0) ; if (rv == Nil) ThrowNotFound(k); return parse ? Float_.parse((String)rv) : Float_.cast(rv);}
public double ReadDouble(String k) {Object rv = ReadOr(k, 0) ; if (rv == Nil) ThrowNotFound(k); return parse ? Double_.parse((String)rv) : Double_.cast(rv);}
@ -142,7 +142,7 @@ class GfoMsg_base implements GfoMsg {
public Io_url ReadIoUrl(String k) {Object rv = ReadOr(k, null); if (rv == Nil) ThrowNotFound(k); return parse ? Io_url_.new_any_((String)rv) : Io_url_.cast(rv);}
public Object CastObj(String k) {Object rv = ReadOr(k, null); if (rv == Nil) ThrowNotFound(k); return rv;}
public boolean ReadBoolOr(String k, boolean or) {Object rv = ReadOr(k, or) ; if (rv == Nil) return or ; return parse ? Yn.parse_or((String)rv, or) : Bool_.Cast(rv);}
public int ReadIntOr(String k, int or) {Object rv = ReadOr(k, or) ; if (rv == Nil) return or ; return parse ? Int_.parse((String)rv) : Int_.cast(rv);}
public int ReadIntOr(String k, int or) {Object rv = ReadOr(k, or) ; if (rv == Nil) return or ; return parse ? Int_.Parse((String)rv) : Int_.Cast(rv);}
public long ReadLongOr(String k, long or) {Object rv = ReadOr(k, or) ; if (rv == Nil) return or ; return parse ? Long_.parse((String)rv) : Long_.cast(rv);}
public float ReadFloatOr(String k, float or) {Object rv = ReadOr(k, or) ; if (rv == Nil) return or ; return parse ? Float_.parse((String)rv) : Float_.cast(rv);}
public double ReadDoubleOr(String k,double or) {Object rv = ReadOr(k, or) ; if (rv == Nil) return or ; return parse ? Double_.parse((String)rv) : Double_.cast(rv);}
@ -258,11 +258,11 @@ class XtoStrWkr_gplx implements XtoStrWkr {
if (o == null) return "<<NULL>>";
Class<?> type = Type_.Type_by_obj(o);
String rv = null;
if (type == String.class) rv = String_.cast(o);
else if (Int_.TypeMatch(type)) return Int_.To_str(Int_.cast(o));
else if (Type_.Eq(type, Bool_.Cls_ref_type)) return Yn.To_str(Bool_.Cast(o));
else if (type == DateAdp.class) return DateAdp_.cast(o).XtoStr_gplx();
else rv = Object_.Xto_str_strict_or_empty(o);
if (Type_.Eq(type, String_.Cls_ref_type)) rv = String_.cast(o);
else if (Type_.Eq(type, Int_.Cls_ref_type)) return Int_.To_str(Int_.Cast(o));
else if (Type_.Eq(type, Bool_.Cls_ref_type)) return Yn.To_str(Bool_.Cast(o));
else if (Type_.Eq(type, DateAdp_.Cls_ref_type)) return DateAdp_.cast(o).XtoStr_gplx();
else rv = Object_.Xto_str_strict_or_empty(o);
return String_.Replace(rv, "'", "''");
}
}

@ -18,47 +18,44 @@ import gplx.core.strings.*; import gplx.langs.gfs.*;
public class Int_ {
public static final String Cls_val_name = "int";
public static final Class<?> Cls_ref_type = Integer.class;
public static final int Base1 = 1;
public static final int Const_dlm_len = 1;
public static final int Const_position_after_char = 1;
public static final int Null = Int_.Min_value;
public static int coerce_(Object v) {
try {String s = String_.as_(v); return s == null ? Int_.cast(v) : Int_.parse(s);}
catch (Exception e) {throw Err_.new_cast(e, int.class, v);}
}
public static int[] Ary_empty = new int[0];
public static int[] Ary(int... v) {return v;}
public static int[] Ary_copy(int[] ary) {return Ary_copy(ary, ary.length);}
public static int[] Ary_copy(int[] ary, int new_len) {
int old_len = ary.length;
int[] rv = new int[new_len];
for (int i = 0; i < old_len; i++)
rv[i] = ary[i];
return rv;
}
public static void Ary_copy_to(int[] src, int src_len, int[] trg) {
for (int i = 0; i < src_len; ++i)
trg[i] = src[i];
public static final int
Min_value = Integer.MIN_VALUE
, Max_value = Integer.MAX_VALUE
, Max_value__31 = 2147483647
, Neg1 = -1
, Null = Int_.Min_value
, Base1 = 1 // for super 1 lists / arrays; EX: PHP; [a, b, c]; [1] => a
, Offset_1 = 1 // common symbol for + 1 after current pos; EX: String_.Mid(lhs + Offset_1, rhs)
;
public static int Cast(Object obj) {
try {
return (Integer)obj;
}
catch(Exception exc) {
throw Err_.new_type_mismatch_w_exc(exc, int.class, obj);
}
}
public static String Ary_concat(String spr, int... ary) {
Bry_bfr bfr = Bry_bfr_.New();
int len = ary.length;
for (int i = 0; i < len; ++i) {
if (i != 0) bfr.Add_str_u8(spr);
int itm = ary[i];
bfr.Add_int_variable(itm);
public static int Cast_or(Object obj, int or) {
try {
return (Integer)obj;
}
catch(Exception e) {
Err_.Noop(e);
return or;
}
return bfr.To_str_and_clear();
}
public static int[] AryRng(int bgn, int end) {
int len = end - bgn + 1;
int[] rv = new int[len];
for (int i = 0; i < len; i++)
rv[i] = bgn + i;
return rv;
public static int Coerce(Object v) {
try {
String s = String_.as_(v);
return s == null ? Int_.Cast(v) : Int_.Parse(s);
}
catch (Exception e) {throw Err_.new_cast(e, int.class, v);}
}
public static boolean Bounds_chk(int bgn, int end, int len) {return bgn > -1 && end < len;}
public static int parse_or(String raw, int or) {
public static int Parse(String raw) {try {return Integer.parseInt(raw);} catch(Exception e) {throw Err_.new_parse_exc(e, int.class, raw);}}
public static int Parse_or(String raw, int or) {
if (raw == null) return or;
int rawLen = String_.Len(raw); if (rawLen == 0) return or;
int rv = 0, tmp = 0, factor = 1;
@ -75,15 +72,95 @@ public class Int_ {
}
return rv;
}
public static int EnsureLessThan(int v, int max) {return v >= max ? max : v;}
public static int By_double(double v) {return (int)v;}
public static int By_hex_bry(byte[] src) {return By_hex_bry(src, 0, src.length);}
public static int By_hex_bry(byte[] src, int bgn, int end) {
int rv = 0; int factor = 1;
for (int i = end - 1; i >= bgn; i--) {
int val = By_hex_byte(src[i]);
rv += (val * factor);
factor *= 16;
}
return rv;
}
public static int By_hex_byte(byte b) {
switch (b) {
case Byte_ascii.Num_0: case Byte_ascii.Num_1: case Byte_ascii.Num_2: case Byte_ascii.Num_3: case Byte_ascii.Num_4:
case Byte_ascii.Num_5: case Byte_ascii.Num_6: case Byte_ascii.Num_7: case Byte_ascii.Num_8: case Byte_ascii.Num_9:
return b - Byte_ascii.Num_0;
case Byte_ascii.Ltr_A: case Byte_ascii.Ltr_B: case Byte_ascii.Ltr_C: case Byte_ascii.Ltr_D: case Byte_ascii.Ltr_E: case Byte_ascii.Ltr_F:
return b - Byte_ascii.Ltr_A + 10;
case Byte_ascii.Ltr_a: case Byte_ascii.Ltr_b: case Byte_ascii.Ltr_c: case Byte_ascii.Ltr_d: case Byte_ascii.Ltr_e: case Byte_ascii.Ltr_f:
return b - Byte_ascii.Ltr_a + 10;
default:
return -1;
}
}
public static byte[] To_bry(int v) {return Bry_.new_a7(To_str(v));}
public static String To_str(int v) {return new Integer(v).toString();}
public static String To_str_fmt(int v, String fmt) {return new java.text.DecimalFormat(fmt).format(v);}
public static String To_str_pad_bgn_space(int val, int reqd_len) {return To_str_pad(val, reqd_len, Bool_.Y, Byte_ascii.Space);} // EX: 1, 3 returns " 1"
public static String To_str_pad_bgn_zero (int val, int reqd_len) {return To_str_pad(val, reqd_len, Bool_.Y, Byte_ascii.Num_0);} // EX: 1, 3 returns "001"
private static String To_str_pad(int val, int reqd_len, boolean bgn, byte pad_chr) {
// get val_len and pad_len; exit early, if no padding needed
int val_len = DigitCount(val);
int pad_len = reqd_len - val_len;
if (pad_len < 0)
return Int_.To_str(val);
// padding needed
Bry_bfr bfr = Bry_bfr_.New();
// handle negative numbers; EX: -1 -> "-001", not "00-1"
if (val < 0) {
bfr.Add_byte(Byte_ascii.Dash);
val *= -1;
--val_len;
}
// build outpt
if (!bgn)
bfr.Add_int_fixed(val, val_len);
bfr.Add_byte_repeat(pad_chr, pad_len);
if (bgn)
bfr.Add_int_fixed(val, val_len);
return bfr.To_str();
}
public static String To_str_hex(int v) {return To_str_hex(Bool_.Y, Bool_.Y, v);}
public static String To_str_hex(boolean zero_pad, boolean upper, int v) {
String rv = Integer.toHexString(v);
int rv_len = String_.Len(rv);
if (zero_pad && rv_len < 8) rv = String_.Repeat("0", 8 - rv_len) + rv;
return upper ? String_.Upper(rv) : rv;
}
public static int Compare(int lhs, int rhs) {
if (lhs == rhs) return CompareAble_.Same;
else if (lhs < rhs) return CompareAble_.Less;
else return CompareAble_.More;
}
public static boolean In(int v, int comp0, int comp1) {return v == comp0 || v == comp1;}
public static boolean In(int v, int... ary) {
for (int itm : ary)
if (v == itm) return true;
return false;
}
public static boolean Between(int v, int lhs, int rhs) {
int lhsCompare = v == lhs ? 0 : (v < lhs ? -1 : 1);
int rhsCompare = v == rhs ? 0 : (v < rhs ? -1 : 1);
return (lhsCompare * rhsCompare) != 1; // 1 when v is (a) greater than both or (b) less than both
}
public static boolean RangeCheck(int v, int max) {return v >= 0 && v < max;}
public static void RangeCheckOrFail_list(int v, int max, String s) {if (v < 0 || v >= max) throw Err_.new_wo_type("bounds check failed", "msg", s, "v", v, "min", 0, "max", max - 1);}
public static boolean Bounds_chk(int bgn, int end, int len) {return bgn > -1 && end < len;}
public static int BoundEnd(int v, int end) {return v >= end ? end - 1 : v;}
public static int EnsureLessThan(int v, int max) {return v >= max ? max : v;}
public static int Min(int lhs, int rhs) {return lhs < rhs ? lhs : rhs;}
public static int Max(int lhs, int rhs) {return lhs > rhs ? lhs : rhs;}
public static int Min_many(int... ary) {
int len = ary.length; if (len == 0) throw Err_.new_wo_type("Min_many requires at least 1 value");
boolean init = true;
@ -101,16 +178,8 @@ public class Int_ {
}
return min;
}
public static int Max(int lhs, int rhs) {return lhs > rhs ? lhs : rhs;}
public static int ModIfNeg1(int v, int or) {return v == -1 ? or : v;}
public static boolean RangeCheck(int v, int max) {return v >= 0 && v < max;}
public static void RangeCheckOrFail_list(int v, int max, String s) {if (v < 0 || v >= max) throw Err_.new_wo_type("bounds check failed", "msg", s, "v", v, "min", 0, "max", max - 1);}
public static void RangeCheckOrFail(int v, int min, int max, String s) {if (v < min || v >= max) throw Err_.new_wo_type("bounds check failed", "msg", s, "v", v, "min", min, "max", max);}
public static boolean Between(int v, int lhs, int rhs) {
int lhsCompare = v == lhs ? 0 : (v < lhs ? -1 : 1);
int rhsCompare = v == rhs ? 0 : (v < rhs ? -1 : 1);
return (lhsCompare * rhsCompare) != 1; // 1 when v is (a) greater than both or (b) less than both
}
public static int Subtract_long(long lhs, long rhs) {return (int)(lhs - rhs);}
public static int Div(int v, float divisor) {return (int)((float)v / divisor);}
public static int DivAndRoundUp(int v, int divisor) {
int whole = v / divisor;
@ -121,15 +190,9 @@ public class Int_ {
float product = ((float)v * multiplier); // WORKAROUND (DotNet): (int)((float)v * multiplier) returns 0 for 100 and .01f
return (int)product;
}
public static int Compare(int lhs, int rhs) {
if (lhs == rhs) return CompareAble_.Same;
else if (lhs < rhs) return CompareAble_.Less;
else return CompareAble_.More;
}
public static int DigitCount(int v) {
int log10 = Log10(v);
return v > -1 ? log10 + 1 : log10 * -1 + 2;
}
public static int[] Log10Ary = new int[] {1, 10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000, 1000000000, Int_.Max_value};
public static int Log10AryLen = 11;
public static int Log10(int v) {
if (v == 0) return 0;
int sign = 1;
@ -148,124 +211,10 @@ public class Int_ {
if (v < Log10Ary[i]) {rv = i - 1; break;}
}
return rv * sign;
} public static int[] Log10Ary = new int[] {1, 10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000, 1000000000, Int_.Max_value}; public static int Log10AryLen = 11;
public static String To_str_pad_bgn_space(int v, int reqdPlaces) {return To_str_pad_bgn_zero(v, reqdPlaces, Byte_ascii.Space, true);} // EX: 1, 3 returns " 1"
public static String To_str_pad_bgn_zero(int v, int reqdPlaces) {return To_str_pad_bgn_zero(v, reqdPlaces, Byte_ascii.Num_0, true);} // EX: 1, 3 returns "001"
static String To_str_pad_bgn_zero(int val, int places, byte pad_chr, boolean bgn) {
int len = DigitCount(val);
int pad_len = places - len; if (pad_len < 0) return Int_.To_str(val);
Bry_bfr bfr = Bry_bfr_.New();
boolean neg = val < 0;
if (bgn) { // special logic to handle negative numbers; EX: -1 -> "-001", not "00-1"
if (neg) {
bfr.Add_byte(Byte_ascii.Dash);
val *= -1;
--len;
}
}
else
bfr.Add_int_fixed(val, len);
bfr.Add_byte_repeat(pad_chr, pad_len);
if (bgn) bfr.Add_int_fixed(val, len); // NOTE: neg handled above
return bfr.To_str();
}
public static int read_(Object o) {String s = String_.as_(o); return s != null ? Int_.parse(s) : Int_.cast(o);}
public static int parse(String raw) {try {return Integer.parseInt(raw);} catch(Exception e) {throw Err_.new_parse_exc(e, int.class, raw);}}
public static int cast(Object obj) {try {return (Integer)obj;} catch(Exception exc) {throw Err_.new_type_mismatch_w_exc(exc, int.class, obj);}}
public static int cast_or(Object obj, int or) {try {return (Integer)obj;} catch(Exception e) {Err_.Noop(e); return or;}}
public static int Xby_double_(double v) {return (int)v;}
public static String To_str(int v) {return new Integer(v).toString();}
public static String To_str_fmt(int v, String fmt) {return new java.text.DecimalFormat(fmt).format(v);}
public static boolean TypeMatch(Class<?> type) {return type == int.class || type == Integer.class;}
public static int To_int_hex(byte[] src) {return To_int_hex(src, 0, src.length);}
public static int To_int_hex(byte[] src, int bgn, int end) {
int rv = 0; int factor = 1;
for (int i = end - 1; i >= bgn; i--) {
int val = To_int_hex(src[i]);
rv += (val * factor);
factor *= 16;
}
return rv;
}
public static int Subtract_long(long lhs, long rhs) {return (int)(lhs - rhs);}
public static int To_int_hex(byte b) {
switch (b) {
case Byte_ascii.Num_0: case Byte_ascii.Num_1: case Byte_ascii.Num_2: case Byte_ascii.Num_3: case Byte_ascii.Num_4:
case Byte_ascii.Num_5: case Byte_ascii.Num_6: case Byte_ascii.Num_7: case Byte_ascii.Num_8: case Byte_ascii.Num_9:
return b - Byte_ascii.Num_0;
case Byte_ascii.Ltr_A: case Byte_ascii.Ltr_B: case Byte_ascii.Ltr_C: case Byte_ascii.Ltr_D: case Byte_ascii.Ltr_E: case Byte_ascii.Ltr_F:
return b - Byte_ascii.Ltr_A + 10;
case Byte_ascii.Ltr_a: case Byte_ascii.Ltr_b: case Byte_ascii.Ltr_c: case Byte_ascii.Ltr_d: case Byte_ascii.Ltr_e: case Byte_ascii.Ltr_f:
return b - Byte_ascii.Ltr_a + 10;
default:
return -1;
}
}
public static String To_str_hex(int v) {return To_str_hex(Bool_.Y, Bool_.Y, v);}
public static String To_str_hex(boolean zero_pad, boolean upper, int v) {
String rv = Integer.toHexString(v);
int rv_len = String_.Len(rv);
if (zero_pad && rv_len < 8) rv = String_.Repeat("0", 8 - rv_len) + rv;
return upper ? String_.Upper(rv) : rv;
}
public static String To_str(int[] ary) {return To_str(ary, " ");}
public static String To_str(int[] ary, String dlm) {
String_bldr sb = String_bldr_.new_();
for (int i = 0; i < ary.length; i++)
sb.Add_spr_unless_first(Int_.To_str(ary[i]), dlm, i);
return sb.To_str();
}
public static int[] Ary_parse(String raw_str, int reqd_len, int[] or) {
byte[] raw_bry = Bry_.new_a7(raw_str);
int raw_bry_len = raw_bry.length;
int[] rv = new int[reqd_len];
int cur_val = 0, cur_mult = 1, cur_idx = reqd_len - 1; boolean signed = false;
for (int i = raw_bry_len - 1; i > -2; i--) {
byte b = i == -1 ? Byte_ascii.Comma : raw_bry[i];
switch (b) {
case Byte_ascii.Num_0: case Byte_ascii.Num_1: case Byte_ascii.Num_2: case Byte_ascii.Num_3: case Byte_ascii.Num_4:
case Byte_ascii.Num_5: case Byte_ascii.Num_6: case Byte_ascii.Num_7: case Byte_ascii.Num_8: case Byte_ascii.Num_9:
if (signed) return or;
cur_val += (b - Byte_ascii.Num_0) * cur_mult;
cur_mult *= 10;
break;
case Byte_ascii.Space: case Byte_ascii.Nl: case Byte_ascii.Cr: case Byte_ascii.Tab:
break;
case Byte_ascii.Comma:
if (cur_idx < 0) return or;
rv[cur_idx--] = cur_val;
cur_val = 0; cur_mult = 1;
signed = false;
break;
case Byte_ascii.Dash:
if (signed) return or;
cur_val *= -1;
signed = true;
break;
case Byte_ascii.Plus: // noop; all values positive by default
if (signed) return or;
signed = true;
break;
default:
return or;
}
}
return cur_idx == -1 ? rv : or; // cur_idx == -1 checks for unfilled; EX: Ary_parse("1,2", 3, null) is unfilled
}
public static int[] Ary_parse(String raw_str, String spr) {
String[] ary = String_.Split(raw_str, spr);
int len = ary.length;
int[] rv = new int[len];
for (int i = 0; i < len; i++)
rv[i] = Int_.parse(ary[i]);
return rv;
public static int DigitCount(int v) {
int log10 = Log10(v);
return v > -1 ? log10 + 1 : log10 * -1 + 2;
}
public static byte[] To_bry(int v) {return Bry_.new_a7(To_str(v));}
public static final int
Min_value = Integer.MIN_VALUE
, Max_value = Integer.MAX_VALUE
, Max_value__31 = 2147483647
, Neg1 = -1
, Neg1_count = -1
;
}

@ -17,9 +17,9 @@ package gplx;
import org.junit.*;
public class Int__tst {
@Test public void XtoStr_PadBgn() {
// tst_XtoStr_PadLeft_Zeroes(1 , 3, "001"); // pad
// tst_XtoStr_PadLeft_Zeroes(123 , 3, "123"); // no pad
// tst_XtoStr_PadLeft_Zeroes(1234 , 3, "1234"); // val exceeds pad; confirm noop
tst_XtoStr_PadLeft_Zeroes(1 , 3, "001"); // pad
tst_XtoStr_PadLeft_Zeroes(123 , 3, "123"); // no pad
tst_XtoStr_PadLeft_Zeroes(1234 , 3, "1234"); // val exceeds pad; confirm noop
tst_XtoStr_PadLeft_Zeroes(-1 , 3, "-01"); // negative
tst_XtoStr_PadLeft_Zeroes(-12 , 3, "-12"); // negative
tst_XtoStr_PadLeft_Zeroes(-123 , 3, "-123"); // negative
@ -29,7 +29,7 @@ public class Int__tst {
tst_ParseOr("", -1); // empty
tst_ParseOr("123", 123); // single
tst_ParseOr("1a", -1); // fail
} void tst_ParseOr(String raw, int expd) {Tfds.Eq(expd, Int_.parse_or(raw, -1));}
} void tst_ParseOr(String raw, int expd) {Tfds.Eq(expd, Int_.Parse_or(raw, -1));}
@Test public void Between() {
tst_Between(1, 0, 2, true); // simple true
tst_Between(3, 0, 2, false); // simple false
@ -40,9 +40,6 @@ public class Int__tst {
tst_XtoStr_fmt(1, "1");
tst_XtoStr_fmt(1000, "1,000");
} void tst_XtoStr_fmt(int v, String expd) {Tfds.Eq(expd, Int_.To_str_fmt(v, "#,###"));}
@Test public void AryRng() {
tst_AryRng(1, 3, Int_.Ary(1, 2, 3));
} void tst_AryRng(int bgn, int end, int[] expd) {Tfds.Eq_ary(expd, Int_.AryRng(bgn, end));}
@Test public void Log10_pos() {
tst_Log10(0, 0);
tst_Log10(1, 0);
@ -96,18 +93,5 @@ public class Int__tst {
}
@Test public void Xto_int_hex_tst() {
Xto_int_hex("007C", 124);
} void Xto_int_hex(String raw, int expd) {Tfds.Eq(expd, Int_.To_int_hex(Bry_.new_a7(raw)));}
@Test public void Ary_parse() {
Ary_parse__tst("1,2,3" , 3, Int_.Ary_empty, 1, 2, 3);
Ary_parse__tst("123,321,213" , 3, Int_.Ary_empty, 123, 321, 213);
Ary_parse__tst(" 1, 2,3" , 3, Int_.Ary_empty, 1, 2, 3);
Ary_parse__tst("-1,+2,-3" , 3, Int_.Ary_empty, -1, 2, -3);
Ary_parse__tst(Int_.To_str(Int_.Min_value) , 1, Int_.Ary_empty, Int_.Min_value);
Ary_parse__tst(Int_.To_str(Int_.Max_value) , 1, Int_.Ary_empty, Int_.Max_value);
Ary_parse__tst("1,2" , 1, Int_.Ary_empty);
Ary_parse__tst("1" , 2, Int_.Ary_empty);
Ary_parse__tst("a" , 1, Int_.Ary_empty);
Ary_parse__tst("1-2," , 1, Int_.Ary_empty);
}
void Ary_parse__tst(String raw, int reqd_len, int[] or, int... expd) {Tfds.Eq_ary(expd, Int_.Ary_parse(raw, reqd_len, or));}
} void Xto_int_hex(String raw, int expd) {Tfds.Eq(expd, Int_.By_hex_bry(Bry_.new_a7(raw)));}
}

@ -13,9 +13,79 @@ The terms of each license can be found in the source code repository:
GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/
package gplx.core.primitives; import gplx.*; import gplx.core.*;
public class Int_ary_ {
public static int[] Parse_list_or(byte[] src, int[] or) {
package gplx;
import gplx.core.strings.*;
public class Int_ary_ {//RF:DATE:2017-10-09
public static int[] Empty = new int[0];
public static int[] New(int... v) {return v;}
public static void Copy_to(int[] src, int src_len, int[] trg) {
for (int i = 0; i < src_len; ++i)
trg[i] = src[i];
}
public static String To_str(String spr, int... ary) {
Bry_bfr bfr = Bry_bfr_.New();
int len = ary.length;
for (int i = 0; i < len; ++i) {
if (i != 0) bfr.Add_str_u8(spr);
int itm = ary[i];
bfr.Add_int_variable(itm);
}
return bfr.To_str_and_clear();
}
public static int[] Parse(String raw, String spr) {
String[] ary = String_.Split(raw, spr);
int len = ary.length;
int[] rv = new int[len];
for (int i = 0; i < len; i++)
rv[i] = Int_.Parse(ary[i]);
return rv;
}
// parses to a reqd len; EX: "1" -> "[1, 0]"
public static int[] Parse(String raw_str, int reqd_len, int[] or) {
byte[] raw_bry = Bry_.new_a7(raw_str);
int raw_bry_len = raw_bry.length;
int[] rv = new int[reqd_len];
int cur_val = 0, cur_mult = 1, cur_idx = reqd_len - 1; boolean signed = false;
for (int i = raw_bry_len - 1; i > -2; i--) {
byte b = i == -1 ? Byte_ascii.Comma : raw_bry[i];
switch (b) {
case Byte_ascii.Num_0: case Byte_ascii.Num_1: case Byte_ascii.Num_2: case Byte_ascii.Num_3: case Byte_ascii.Num_4:
case Byte_ascii.Num_5: case Byte_ascii.Num_6: case Byte_ascii.Num_7: case Byte_ascii.Num_8: case Byte_ascii.Num_9:
if (signed) return or;
cur_val += (b - Byte_ascii.Num_0) * cur_mult;
cur_mult *= 10;
break;
case Byte_ascii.Space: case Byte_ascii.Nl: case Byte_ascii.Cr: case Byte_ascii.Tab:
break;
case Byte_ascii.Comma:
if (cur_idx < 0) return or;
rv[cur_idx--] = cur_val;
cur_val = 0; cur_mult = 1;
signed = false;
break;
case Byte_ascii.Dash:
if (signed) return or;
cur_val *= -1;
signed = true;
break;
case Byte_ascii.Plus: // noop; all values positive by default
if (signed) return or;
signed = true;
break;
default:
return or;
}
}
return cur_idx == -1 ? rv : or; // cur_idx == -1 checks for unfilled; EX: Ary_parse("1,2", 3, null) is unfilled
}
// optimizes parse
public static int[] Parse_or(byte[] src, int[] or) {
try {
if (Bry_.Len_eq_0(src)) return or; // null, "" should return [0]
int raw_len = src.length;

@ -0,0 +1,58 @@
/*
XOWA: the XOWA Offline Wiki Application
Copyright (C) 2012-2017 gnosygnu@gmail.com
XOWA is licensed under the terms of the General Public License (GPL) Version 3,
or alternatively under the terms of the Apache License Version 2.0.
You may use XOWA according to either of these licenses as is most appropriate
for your project on a case-by-case basis.
The terms of each license can be found in the source code repository:
GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/
package gplx;
import org.junit.*; import gplx.core.tests.*;
public class Int_ary__tst {
private Int_ary__fxt fxt = new Int_ary__fxt();
@Test public void Parse() {
fxt.Test__Parse("1,2,3" , 3, Int_ary_.Empty, 1, 2, 3);
fxt.Test__Parse("123,321,213" , 3, Int_ary_.Empty, 123, 321, 213);
fxt.Test__Parse(" 1, 2,3" , 3, Int_ary_.Empty, 1, 2, 3);
fxt.Test__Parse("-1,+2,-3" , 3, Int_ary_.Empty, -1, 2, -3);
fxt.Test__Parse(Int_.To_str(Int_.Min_value) , 1, Int_ary_.Empty, Int_.Min_value);
fxt.Test__Parse(Int_.To_str(Int_.Max_value) , 1, Int_ary_.Empty, Int_.Max_value);
fxt.Test__Parse("1,2" , 1, Int_ary_.Empty);
fxt.Test__Parse("1" , 2, Int_ary_.Empty);
fxt.Test__Parse("a" , 1, Int_ary_.Empty);
fxt.Test__Parse("1-2," , 1, Int_ary_.Empty);
}
@Test public void Parse_list_or_() {
fxt.Test__Parse_or("1", 1);
fxt.Test__Parse_or("123", 123);
fxt.Test__Parse_or("1,2,123", 1, 2, 123);
fxt.Test__Parse_or("1,2,12,123", 1, 2, 12, 123);
fxt.Test__Parse_or("1-5", 1, 2, 3, 4, 5);
fxt.Test__Parse_or("1-1", 1);
fxt.Test__Parse_or("1-3,7,11-13,21", 1, 2, 3, 7, 11, 12, 13, 21);
fxt.Test__Parse_or__empty("1 2"); // NOTE: MW would gen 12; treat as invalid
fxt.Test__Parse_or__empty("1,"); // eos
fxt.Test__Parse_or__empty("1,,2"); // empty comma
fxt.Test__Parse_or__empty("1-"); // eos
fxt.Test__Parse_or__empty("3-1"); // bgn > end
fxt.Test__Parse_or__empty("1,a,2");
fxt.Test__Parse_or__empty("a-1,2");
fxt.Test__Parse_or__empty("-1"); // no rng bgn
}
}
class Int_ary__fxt {
public void Test__Parse_or__empty(String raw) {Tfds.Eq_ary(Int_ary_.Empty, Int_ary_.Parse_or(Bry_.new_a7(raw), Int_ary_.Empty));}
public void Test__Parse_or(String raw, int... expd) {Tfds.Eq_ary(expd, Int_ary_.Parse_or(Bry_.new_a7(raw), Int_ary_.Empty));}
public void Test__Parse(String raw, int reqd_len, int[] or, int... expd) {Gftest.Eq__ary(expd, Int_ary_.Parse(raw, reqd_len, or), "failed to parse: {0}", raw);}
}

@ -159,7 +159,7 @@ public class List_adp_tst {
list.Shuffle();
int hasMovedCount = 0;
for (int i = 0; i < list.Count(); i++) {
int val = Int_.cast(list.Get_at(i));
int val = Int_.Cast(list.Get_at(i));
if (val != i) hasMovedCount++;
}
Tfds.Eq_true(hasMovedCount > 0, "all documents have the same index"); // NOTE: may still fail occasionally (1%)

@ -17,6 +17,7 @@ package gplx;
public class Short_ {
public static final String Cls_val_name = "short";
public static final Class<?> Cls_ref_type = Short.class;
public static short cast(Object obj) {try {return (Short)obj;} catch(Exception exc) {throw Err_.new_type_mismatch_w_exc(exc, short.class, obj);}}
public static short By_int(int v) {return (short)v;}
}

@ -396,7 +396,7 @@ public class String_ {
numberStr = "";
}
else if (c == bracketEnd) {
int aryIdx = Int_.parse_or(numberStr, Int_.Min_value);
int aryIdx = Int_.Parse_or(numberStr, Int_.Min_value);
if (aryIdx != Int_.Min_value && Int_.Between(aryIdx, 0, aryLength - 1)) // check (a) aryIdx is num; (b) aryIdx is in bounds
aryVal = Object_.Xto_str_strict_or_empty(ary[aryIdx]);
else

@ -14,6 +14,6 @@ GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/
package gplx;
public interface To_str_able {
public interface To_str_able {//RF:2017-10-08
String To_str();
}

@ -14,6 +14,6 @@ GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/
package gplx;
class To_str_able_ {
class To_str_able_ {//RF:2017-10-08
public static To_str_able as_(Object obj) {return obj instanceof To_str_able ? (To_str_able)obj : null;}
}

@ -14,7 +14,7 @@ GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/
package gplx;
public class Type_ {
public class Type_ {//RF:2017-10-08
public static Class<?> Type_by_obj(Object o) {return o.getClass();}
public static Class<?> Type_by_primitive(Object o) {
Class<?> rv = o.getClass();

@ -14,7 +14,7 @@ GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/
package gplx;
public class Type_ids_ {
public class Type_ids_ {//RF:2017-10-08
public static final int // SERIALIZABLE.N
Id__obj = 0
, Id__null = 1

@ -22,7 +22,7 @@ public class Bry_bfr_mkr_mgr {
public Bry_bfr_mkr_mgr(byte mgr_id, int reset) {// NOTE: random IndexOutOfBounds errors in Get around free[--free_len] with free_len being -1; put member variable initialization within thread_lock to try to avoid; DATE:2014-09-21
this.mgr_id = mgr_id;
this.reset = reset;
this.free = Int_.Ary_empty;
this.free = Int_ary_.Empty;
this.free_len = 0;
}
public Bry_bfr Get() {
@ -66,7 +66,7 @@ public class Bry_bfr_mkr_mgr {
used[i] = null;
}
used = Bry_bfr_.Ary_empty;
free = Int_.Ary_empty;
free = Int_ary_.Empty;
free_len = used_len = used_max = 0;
}
}
@ -78,7 +78,7 @@ public class Bry_bfr_mkr_mgr {
used[i] = null;
}
used = Bry_bfr_.Ary_empty;
free = Int_.Ary_empty;
free = Int_ary_.Empty;
free_len = 0;
used_len = used_max = 0;
}

@ -18,7 +18,7 @@ public class Bfr_arg__int implements Bfr_arg {
private int val, val_digits;
public Bfr_arg__int(int v) {Set(v);}
public Bfr_arg__int Set(int v) {
this.val = Int_.cast(v);
this.val = Int_.Cast(v);
this.val_digits = Int_.DigitCount(val);
return this;
}

@ -214,12 +214,12 @@ public class Bry_fmtr {
}
}
int Compile_eval_cmd(byte[] fmt, int fmt_len, int eval_lhs_bgn, List_adp list) {
int eval_lhs_end = Bry_find_.Find_fwd(fmt, char_eval_end, eval_lhs_bgn + Int_.Const_dlm_len, fmt_len); if (eval_lhs_end == Bry_find_.Not_found) throw Err_.new_wo_type("eval_lhs_end_invalid: could not find eval_lhs_end", "snip", String_.new_u8(fmt, eval_lhs_bgn, fmt_len));
byte[] eval_dlm = Bry_.Mid(fmt, eval_lhs_bgn , eval_lhs_end + Int_.Const_dlm_len);
int eval_rhs_bgn = Bry_find_.Find_fwd(fmt, eval_dlm , eval_lhs_end + Int_.Const_dlm_len, fmt_len); if (eval_rhs_bgn == Bry_find_.Not_found) throw Err_.new_wo_type("eval_rhs_bgn_invalid: could not find eval_rhs_bgn", "snip", String_.new_u8(fmt, eval_lhs_end, fmt_len));
byte[] eval_cmd = Bry_.Mid(fmt, eval_lhs_end + Int_.Const_dlm_len, eval_rhs_bgn);
int eval_lhs_end = Bry_find_.Find_fwd(fmt, char_eval_end, eval_lhs_bgn + Byte_ascii.Len_1, fmt_len); if (eval_lhs_end == Bry_find_.Not_found) throw Err_.new_wo_type("eval_lhs_end_invalid: could not find eval_lhs_end", "snip", String_.new_u8(fmt, eval_lhs_bgn, fmt_len));
byte[] eval_dlm = Bry_.Mid(fmt, eval_lhs_bgn , eval_lhs_end + Byte_ascii.Len_1);
int eval_rhs_bgn = Bry_find_.Find_fwd(fmt, eval_dlm , eval_lhs_end + Byte_ascii.Len_1, fmt_len); if (eval_rhs_bgn == Bry_find_.Not_found) throw Err_.new_wo_type("eval_rhs_bgn_invalid: could not find eval_rhs_bgn", "snip", String_.new_u8(fmt, eval_lhs_end, fmt_len));
byte[] eval_cmd = Bry_.Mid(fmt, eval_lhs_end + Byte_ascii.Len_1, eval_rhs_bgn);
byte[] eval_rslt = eval_mgr.Eval(eval_cmd);
int eval_rhs_end = eval_rhs_bgn + Int_.Const_dlm_len + eval_dlm.length;
int eval_rhs_end = eval_rhs_bgn + Byte_ascii.Len_1 + eval_dlm.length;
if (eval_rslt == null) eval_rslt = Bry_.Mid(fmt, eval_lhs_bgn - 2, eval_rhs_end); // not found; return original argument
list.Add(Bry_fmtr_itm.dat_bry_(eval_rslt));
return eval_rhs_end;

@ -30,7 +30,7 @@ class GfoFldList_base implements GfoFldList {
public boolean Has(String key) {return hash.Has(key);}
public int Idx_of(String key) {
Object rv = idxs.Get_by(key);
return rv == null ? List_adp_.Not_found : Int_.cast(rv);
return rv == null ? List_adp_.Not_found : Int_.Cast(rv);
}
public GfoFld Get_at(int i) {return (GfoFld)hash.Get_at(i);}
public GfoFld FetchOrNull(String key) {return (GfoFld)hash.Get_by(key);}

@ -16,7 +16,7 @@ Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
package gplx.core.ios; import gplx.*; import gplx.core.*;
import gplx.core.type_xtns.*;
public class IoItmClassXtn extends ClassXtn_base implements ClassXtn {
public String Key() {return Key_const;} public static final String Key_const = "ioItemType";
public String Key() {return Key_const;} public static final String Key_const = "ioItemType";
@Override public Class<?> UnderClass() {return int.class;}
public Object DefaultValue() {return IoItmDir.Type_Dir;}
public boolean Eq(Object lhs, Object rhs) {return ((IoItm_base)lhs).compareTo(rhs) == CompareAble_.Same;}
@ -26,6 +26,6 @@ public class IoItmClassXtn extends ClassXtn_base implements ClassXtn {
else if (String_.Eq(rawLower, "fil")) return IoItmFil.Type_Fil;
else throw Err_.new_unhandled(raw);
}
@Override public Object XtoDb(Object obj) {return Int_.cast(obj);}
public static final IoItmClassXtn Instance = new IoItmClassXtn(); IoItmClassXtn() {}
@Override public Object XtoDb(Object obj) {return Int_.Cast(obj);}
public static final IoItmClassXtn Instance = new IoItmClassXtn(); IoItmClassXtn() {}
}

@ -34,9 +34,9 @@ public class EnmMgr {
if (prefix != null) term = String_.Replace(term, prefix, "");
int cur = -1;
if (String_.Has_at_bgn(term, "#"))
cur = Int_.parse(String_.Mid(term, 1));
cur = Int_.Parse(String_.Mid(term, 1));
else
cur = Int_.cast(rawRegy.Get_by(term));
cur = Int_.Cast(rawRegy.Get_by(term));
rv |= cur;
}
return rv;

@ -1,42 +0,0 @@
/*
XOWA: the XOWA Offline Wiki Application
Copyright (C) 2012-2017 gnosygnu@gmail.com
XOWA is licensed under the terms of the General Public License (GPL) Version 3,
or alternatively under the terms of the Apache License Version 2.0.
You may use XOWA according to either of these licenses as is most appropriate
for your project on a case-by-case basis.
The terms of each license can be found in the source code repository:
GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/
package gplx.core.primitives; import gplx.*; import gplx.core.*;
import org.junit.*;
public class Int_ary__tst {
private Int_ary__fxt fxt = new Int_ary__fxt();
@Test public void Parse_list_or_() {
fxt.Test_Parse_list_or("1", 1);
fxt.Test_Parse_list_or("123", 123);
fxt.Test_Parse_list_or("1,2,123", 1, 2, 123);
fxt.Test_Parse_list_or("1,2,12,123", 1, 2, 12, 123);
fxt.Test_Parse_list_or("1-5", 1, 2, 3, 4, 5);
fxt.Test_Parse_list_or("1-1", 1);
fxt.Test_Parse_list_or("1-3,7,11-13,21", 1, 2, 3, 7, 11, 12, 13, 21);
fxt.Test_Parse_list_empty("1 2"); // NOTE: MW would gen 12; treat as invalid
fxt.Test_Parse_list_empty("1,"); // eos
fxt.Test_Parse_list_empty("1,,2"); // empty comma
fxt.Test_Parse_list_empty("1-"); // eos
fxt.Test_Parse_list_empty("3-1"); // bgn > end
fxt.Test_Parse_list_empty("1,a,2");
fxt.Test_Parse_list_empty("a-1,2");
fxt.Test_Parse_list_empty("-1"); // no rng bgn
}
}
class Int_ary__fxt {
public void Test_Parse_list_empty(String raw) {Tfds.Eq_ary(Int_.Ary_empty, Int_ary_.Parse_list_or(Bry_.new_a7(raw), Int_.Ary_empty));}
public void Test_Parse_list_or(String raw, int... expd) {Tfds.Eq_ary(expd, Int_ary_.Parse_list_or(Bry_.new_a7(raw), Int_.Ary_empty));}
}

@ -16,15 +16,15 @@ Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
package gplx.core.primitives; import gplx.*; import gplx.core.*;
public class Int_list {
private int capacity = 0;
private int[] ary = Int_.Ary_empty; private int ary_len, ary_max;
public Int_list() {this.capacity = 0; this.ary = Int_.Ary_empty;}
private int[] ary = Int_ary_.Empty; private int ary_len, ary_max;
public Int_list() {this.capacity = 0; this.ary = Int_ary_.Empty;}
public Int_list(int capacity) {this.capacity = capacity; this.ary = new int[capacity];}
public void Add(int uid) {
int new_len = ary_len + 1;
if (new_len > ary_max) {
ary_max += 16;
int[] new_ary = new int[ary_max];
Int_.Ary_copy_to(ary, ary_len, new_ary);
Int_ary_.Copy_to(ary, ary_len, new_ary);
ary = new_ary;
}
ary[ary_len] = uid;
@ -34,7 +34,7 @@ public class Int_list {
public int Get_at(int i) {return ary[i];}
public void Clear() {
if (ary_len > capacity) {
ary = (capacity == 0) ? Int_.Ary_empty : new int[capacity];
ary = (capacity == 0) ? Int_ary_.Empty : new int[capacity];
}
ary_len = ary_max = 0;
}

@ -62,12 +62,12 @@ public abstract class DataRdr_base implements SrlMgr {
public int ReadInt(String key) {
Object val = Read(key);
try {return (parse) ? Int_.parse(String_.as_(val)) : Int_.cast(val);}
try {return (parse) ? Int_.Parse(String_.as_(val)) : Int_.Cast(val);}
catch (Exception exc) {throw Err_dataRdr_ReadFailed_err(int.class, key, val, exc);}
}
public int ReadIntOr(String key, int or) {
Object val = Read(key); if (val == null) return or;
try {return (parse) ? Int_.parse(String_.as_(val)) : Int_.cast(val);}
try {return (parse) ? Int_.Parse(String_.as_(val)) : Int_.Cast(val);}
catch (Exception exc) {Err_dataRdr_ReadFailed_useOr(exc, int.class, key, val, or); return or;}
}
public long ReadLongOr(String key, long or) {
@ -112,12 +112,12 @@ public abstract class DataRdr_base implements SrlMgr {
}
@gplx.Virtual public byte ReadByte(String key) {
Object val = Read(key);
try {return (parse) ? Byte_.parse(String_.as_(val)) : Byte_.cast(val);}
try {return (parse) ? Byte_.Parse(String_.as_(val)) : Byte_.Cast(val);}
catch (Exception exc) {throw Err_dataRdr_ReadFailed_err(byte.class, key, val, exc);}
}
@gplx.Virtual public byte ReadByteOr(String key, byte or) {
Object val = Read(key); if (val == null) return or;
try {return (parse) ? Byte_.parse(String_.as_(val)) : Byte_.cast(val);}
try {return (parse) ? Byte_.Parse(String_.as_(val)) : Byte_.Cast(val);}
catch (Exception exc) {Err_dataRdr_ReadFailed_useOr(exc, byte.class, key, val, or); return or;}
}
@gplx.Virtual public DateAdp ReadDate(String key) {

@ -154,8 +154,8 @@ public class Gftest {
case Type_ids_.Id__bool: bfr.Add_yn(Bool_.Cast(Array_.Get_at(ary, idx))); break;
case Type_ids_.Id__bry: bfr.Add_safe((byte[])Array_.Get_at(ary, idx)); break;
case Type_ids_.Id__long: bfr.Add_long_variable(Long_.cast(Array_.Get_at(ary, idx))); break;
case Type_ids_.Id__int: bfr.Add_int_variable(Int_.cast(Array_.Get_at(ary, idx))); break;
case Type_ids_.Id__byte: bfr.Add_int_variable((int)(Byte_.cast(Array_.Get_at(ary, idx)))); break;
case Type_ids_.Id__int: bfr.Add_int_variable(Int_.Cast(Array_.Get_at(ary, idx))); break;
case Type_ids_.Id__byte: bfr.Add_int_variable((int)(Byte_.Cast(Array_.Get_at(ary, idx)))); break;
default: throw Err_.new_unhandled_default(type_id);
}
}
@ -179,8 +179,8 @@ public class Gftest {
case Type_ids_.Id__bool: eq = Bool_.Cast(expd_obj) == Bool_.Cast(actl_obj); break;
case Type_ids_.Id__bry: eq = Bry_.Eq((byte[])expd_obj, (byte[])actl_obj); break;
case Type_ids_.Id__long: eq = Long_.cast(expd_obj) == Long_.cast(actl_obj); break;
case Type_ids_.Id__int: eq = Int_.cast(expd_obj) == Int_.cast(actl_obj); break;
case Type_ids_.Id__byte: eq = Byte_.cast(expd_obj) == Byte_.cast(actl_obj); break;
case Type_ids_.Id__int: eq = Int_.Cast(expd_obj) == Int_.Cast(actl_obj); break;
case Type_ids_.Id__byte: eq = Byte_.Cast(expd_obj) == Byte_.Cast(actl_obj); break;
}
}
if (!eq) {

@ -15,12 +15,12 @@ Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/
package gplx.core.type_xtns; import gplx.*; import gplx.core.*;
public class ByteClassXtn extends ClassXtn_base implements ClassXtn {
public static final String Key_const = "byte";
public static final String Key_const = "byte";
public String Key() {return Key_const;}
@Override public Class<?> UnderClass() {return byte.class;}
public Object DefaultValue() {return 0;}
public boolean Eq(Object lhs, Object rhs) {try {return Byte_.cast(lhs) == Byte_.cast(rhs);} catch (Exception e) {Err_.Noop(e); return false;}}
@Override public Object ParseOrNull(String raw) {return raw == null ? (Object)null : Byte_.parse(raw);}
@Override public Object XtoDb(Object obj) {return Byte_.cast(obj);}
public static final ByteClassXtn Instance = new ByteClassXtn(); ByteClassXtn() {} // added to ClassXtnPool by default
public boolean Eq(Object lhs, Object rhs) {try {return Byte_.Cast(lhs) == Byte_.Cast(rhs);} catch (Exception e) {Err_.Noop(e); return false;}}
@Override public Object ParseOrNull(String raw) {return raw == null ? (Object)null : Byte_.Parse(raw);}
@Override public Object XtoDb(Object obj) {return Byte_.Cast(obj);}
public static final ByteClassXtn Instance = new ByteClassXtn(); ByteClassXtn() {} // added to ClassXtnPool by default
}

@ -15,12 +15,12 @@ Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/
package gplx.core.type_xtns; import gplx.*; import gplx.core.*;
public class IntClassXtn extends ClassXtn_base implements ClassXtn {
public String Key() {return Key_const;} public static final String Key_const = "int";
public String Key() {return Key_const;} public static final String Key_const = "int";
@Override public Class<?> UnderClass() {return Integer.class;}
public Object DefaultValue() {return 0;}
@Override public Object ParseOrNull(String raw) {return raw == null ? (Object)null : Int_.parse(raw);}
public boolean Eq(Object lhs, Object rhs) {try {return Int_.cast(lhs) == Int_.cast(rhs);} catch (Exception e) {Err_.Noop(e); return false;}}
@Override public Object XtoDb(Object obj) {return Int_.cast(obj);} // necessary for enums
@Override public Object ParseOrNull(String raw) {return raw == null ? (Object)null : Int_.Parse(raw);}
public boolean Eq(Object lhs, Object rhs) {try {return Int_.Cast(lhs) == Int_.Cast(rhs);} catch (Exception e) {Err_.Noop(e); return false;}}
@Override public Object XtoDb(Object obj) {return Int_.Cast(obj);} // necessary for enums
public static final IntClassXtn Instance = new IntClassXtn(); IntClassXtn() {} // added to ClassXtnPool by default
public static final IntClassXtn Instance = new IntClassXtn(); IntClassXtn() {} // added to ClassXtnPool by default
}

@ -95,7 +95,7 @@ public class Db_conn {
public Db_stmt Stmt_select_order(String tbl, String[] flds, String[] where, String... orderbys) {return engine.Stmt_by_qry(Db_qry__select_in_tbl.new_(tbl, where, flds, orderbys));}
public Db_stmt Stmt_new(Db_qry qry) {return engine.Stmt_by_qry(qry);}
public Db_stmt Stmt_sql(String sql) {return engine.Stmt_by_qry(Db_qry_sql.sql_(sql));}
public int Exec_qry(Db_qry qry) {return Int_.cast(engine.Exec_as_obj(qry));}
public int Exec_qry(Db_qry qry) {return Int_.Cast(engine.Exec_as_obj(qry));}
public int Exec_sql_concat(String... ary) {return this.Exec_qry(Db_qry_sql.dml_(String_.Concat_lines_nl_skip_last(ary)));}
public int Exec_sql_concat_w_msg(String msg, String... ary) {Gfo_usr_dlg_.Instance.Plog_many("", "", msg); return Exec_sql_concat(ary);}
public int Exec_sql(String sql) {return this.Exec_qry(Db_qry_sql.dml_(sql));}
@ -115,13 +115,13 @@ public class Db_conn {
}
public int Exec_select_max_as_int (String tbl_name, String fld_name, int or) {
Object rv = Exec_select_as_obj(String_.Format("SELECT Max({0}) FROM {1}", fld_name, tbl_name));
return rv == null ? or : Int_.cast(rv);
return rv == null ? or : Int_.Cast(rv);
}
public int Exec_select_count_as_int(String tbl_name, int or) {
Object rv = Exec_select_as_obj(String_.Format("SELECT Count(*) FROM {0}", tbl_name));
return rv == null ? or : Int_.cast(rv);
return rv == null ? or : Int_.Cast(rv);
}
public int Exec_select_as_int (String sql, int or) {Object rv = Exec_select_as_obj(sql); return rv == null ? or : Int_.cast(rv);}
public int Exec_select_as_int (String sql, int or) {Object rv = Exec_select_as_obj(sql); return rv == null ? or : Int_.Cast(rv);}
public double Exec_select_as_double (String sql, double or) {Object rv = Exec_select_as_obj(sql); return rv == null ? or : Double_.cast(rv);}
private Object Exec_select_as_obj(String sql) {
Db_rdr rdr = Exec_rdr(sql);

@ -34,8 +34,8 @@ public class Db_conn_utl {
Object val = row[j];
switch (fld.Type().Tid_ansi()) {
case Dbmeta_fld_tid.Tid__bool: stmt.Val_bool_as_byte (fld_name, Bool_.Cast(val)); break;
case Dbmeta_fld_tid.Tid__byte: stmt.Val_byte (fld_name, Byte_.cast(val)); break;
case Dbmeta_fld_tid.Tid__int: stmt.Val_int (fld_name, Int_.cast(val)); break;
case Dbmeta_fld_tid.Tid__byte: stmt.Val_byte (fld_name, Byte_.Cast(val)); break;
case Dbmeta_fld_tid.Tid__int: stmt.Val_int (fld_name, Int_.Cast(val)); break;
case Dbmeta_fld_tid.Tid__long: stmt.Val_long (fld_name, Long_.cast(val)); break;
case Dbmeta_fld_tid.Tid__float: stmt.Val_float (fld_name, Float_.cast(val)); break;
case Dbmeta_fld_tid.Tid__double: stmt.Val_double (fld_name, Double_.cast(val)); break;

@ -29,12 +29,12 @@ public class Db_rdr__basic implements Db_rdr {
@gplx.Virtual public void Save_bry_in_parts(Io_url url, String tbl, String fld, String crt_key, Object crt_val) {throw Err_.new_unimplemented();}
@gplx.Virtual public String Read_str(String k) {try {return (String)rdr.getObject(k);} catch (Exception e) {throw Err_.new_exc(e, "db", "read failed", "key", k, "type", String_.Cls_val_name);}}
@gplx.Virtual public DateAdp Read_date_by_str(String k) {return DateAdp_.parse_iso8561(Read_str(k));}
@gplx.Virtual public int Read_int(String k) {try {return Int_.cast(rdr.getObject(k));} catch (Exception e) {throw Err_.new_exc(e, "db", "read failed", "key", k, "type", Int_.Cls_val_name);}}
@gplx.Virtual public int Read_int(String k) {try {return Int_.Cast(rdr.getObject(k));} catch (Exception e) {throw Err_.new_exc(e, "db", "read failed", "key", k, "type", Int_.Cls_val_name);}}
@gplx.Virtual public long Read_long(String k) {try {return Long_.cast(rdr.getObject(k));} catch (Exception e) {throw Err_.new_exc(e, "db", "read failed", "key", k, "type", Long_.Cls_val_name);}}
@gplx.Virtual public float Read_float(String k) {try {return Float_.cast(rdr.getObject(k));} catch (Exception e) {throw Err_.new_exc(e, "db", "read failed", "key", k, "type", Float_.Cls_val_name);}}
@gplx.Virtual public double Read_double(String k) {try {return Double_.cast(rdr.getObject(k));} catch (Exception e) {throw Err_.new_exc(e, "db", "read failed", "key", k, "type", Double_.Cls_val_name);}}
@gplx.Virtual public byte Read_byte(String k) {try {return Byte_.cast(rdr.getObject(k));} catch (Exception e) {throw Err_.new_exc(e, "db", "read failed", "key", k, "type", Byte_.Cls_val_name);}}
@gplx.Virtual public boolean Read_bool_by_byte(String k) {try {return Byte_.cast(rdr.getObject(k)) == 1;} catch (Exception e) {throw Err_.new_exc(e, "db", "read failed", "key", k, "type", Bool_.Cls_val_name);}}
@gplx.Virtual public byte Read_byte(String k) {try {return Byte_.Cast(rdr.getObject(k));} catch (Exception e) {throw Err_.new_exc(e, "db", "read failed", "key", k, "type", Byte_.Cls_val_name);}}
@gplx.Virtual public boolean Read_bool_by_byte(String k) {try {return Byte_.Cast(rdr.getObject(k)) == 1;} catch (Exception e) {throw Err_.new_exc(e, "db", "read failed", "key", k, "type", Bool_.Cls_val_name);}}
@gplx.Virtual public int Fld_len() {try {return rdr.getMetaData().getColumnCount();} catch (Exception e) {throw Err_.new_exc(e, "db", "field count failed", "sql", sql);}}
@gplx.Virtual public Object Read_obj(String k) {try {return rdr.getObject(k);} catch (Exception e) {throw Err_.new_exc(e, "db", "read failed", "key", k, "type", Object_.Cls_val_name);}}
@gplx.Virtual public Object Read_at(int i) {try {return rdr.getObject(i + 1);} catch (Exception e) {throw Err_.new_exc(e, "db", "read failed", "idx", i, "type", Object_.Cls_val_name);}}

@ -61,8 +61,8 @@ public class Db_stmt_ {
int tid = Type_ids_.To_id_by_obj(val);
switch (tid) {
case Type_ids_.Id__bool: stmt.Val_bool_as_byte (key, Bool_.Cast(val)); break;
case Type_ids_.Id__byte: stmt.Val_byte (key, Byte_.cast(val)); break;
case Type_ids_.Id__int: stmt.Val_int (key, Int_.cast(val)); break;
case Type_ids_.Id__byte: stmt.Val_byte (key, Byte_.Cast(val)); break;
case Type_ids_.Id__int: stmt.Val_int (key, Int_.Cast(val)); break;
case Type_ids_.Id__long: stmt.Val_long (key, Long_.cast(val)); break;
case Type_ids_.Id__float: stmt.Val_float (key, Float_.cast(val)); break;
case Type_ids_.Id__double: stmt.Val_double (key, Double_.cast(val)); break;

@ -42,7 +42,7 @@ class Gfo_srl_mgr_rdr__db {
for (int i = 0; i < crt_len; ++i) {
Dbmeta_dat_itm crt = crt_mgr.Get_at(i);
switch (crt.Tid) {
case Dbmeta_fld_tid.Tid__int: select.Crt_int(crt.Key, Int_.cast(crt.Val)); break;
case Dbmeta_fld_tid.Tid__int: select.Crt_int(crt.Key, Int_.Cast(crt.Val)); break;
}
}
Db_rdr rdr = select.Exec_select__rls_manual();
@ -63,7 +63,7 @@ class Gfo_srl_mgr_rdr__db {
for (int i = 0; i < crt_len; ++i) {
Dbmeta_dat_itm crt = crt_mgr.Get_at(i);
switch (crt.Tid) {
case Dbmeta_fld_tid.Tid__int: delete.Crt_int(crt.Key, Int_.cast(crt.Val)); break;
case Dbmeta_fld_tid.Tid__int: delete.Crt_int(crt.Key, Int_.Cast(crt.Val)); break;
}
}
delete.Exec_delete();

@ -15,7 +15,7 @@ Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/
package gplx.dbs.engines.mems; import gplx.*; import gplx.dbs.*; import gplx.dbs.engines.*;
public class Mem_rdr implements Db_rdr {
private final Mem_row[] rows; private int row_idx = -1; private final int rows_len;
private final Mem_row[] rows; private int row_idx = -1; private final int rows_len;
private Mem_row row;
public Mem_rdr(String[] cols, Mem_row[] rows) {
this.rows = rows; this.rows_len = rows.length;
@ -31,12 +31,12 @@ public class Mem_rdr implements Db_rdr {
public byte[] Read_bry_by_str(String k) {return Bry_.new_u8_safe((String)row.Get_by(k));} // NOTE: null b/c db can have NULL
@gplx.Virtual public void Save_bry_in_parts(Io_url url, String tbl, String fld, String crt_key, Object crt_val) {throw Err_.new_unimplemented();}
public DateAdp Read_date_by_str(String k) {return DateAdp_.parse_iso8561((String)row.Get_by(k));}
public byte Read_byte(String k) {return Byte_.cast(row.Get_by(k));}
public int Read_int(String k) {return Int_.cast(row.Get_by(k));}
public byte Read_byte(String k) {return Byte_.Cast(row.Get_by(k));}
public int Read_int(String k) {return Int_.Cast(row.Get_by(k));}
public long Read_long(String k) {return Long_.cast(row.Get_by(k));}
public float Read_float(String k) {return Float_.cast(row.Get_by(k));}
public double Read_double(String k) {return Double_.cast(row.Get_by(k));}
public boolean Read_bool_by_byte(String k) {return Byte_.cast(row.Get_by(k)) == 1;}
public boolean Read_bool_by_byte(String k) {return Byte_.Cast(row.Get_by(k)) == 1;}
public int Fld_len() {return row.Len();}
public Object Read_obj(String k) {return row.Get_by(k);}
public Object Read_at(int i) {return row.Get_at(i);}

@ -83,7 +83,7 @@ public class Sqlite_engine extends Db_engine_sql_base {
}
public static final Sqlite_engine Instance = new Sqlite_engine();
}
class Db_rdr__sqlite extends Db_rdr__basic { @Override public byte Read_byte(String k) {try {return (byte)Int_.cast(rdr.getObject(k));} catch (Exception e) {throw Err_.new_exc(e, "db", "read failed", "k", k, "type", Byte_.Cls_val_name);}}
class Db_rdr__sqlite extends Db_rdr__basic { @Override public byte Read_byte(String k) {try {return (byte)Int_.Cast(rdr.getObject(k));} catch (Exception e) {throw Err_.new_exc(e, "db", "read failed", "k", k, "type", Byte_.Cls_val_name);}}
@Override public boolean Read_bool_by_byte(String k) {
try {
int val = rdr.getInt(k);
@ -135,12 +135,12 @@ class Sqlite_rdr extends Db_data_rdr { @Override public float ReadFloat(String
@Override public boolean ReadBool(String key) {return ReadBoolOr(key, false);}
@Override public boolean ReadBoolOr(String key, boolean or) {
Object val = Read(key);
return val == null ? or : Int_.cast(val) == 1;
return val == null ? or : Int_.Cast(val) == 1;
}
@Override public byte ReadByte(String key) {return ReadByteOr(key, Byte_.Zero);}
@Override public byte ReadByteOr(String key, byte or) {
Object val = Read(key);
return val == null ? or : (byte)Int_.cast(val);
return val == null ? or : (byte)Int_.Cast(val);
}
@Override public long ReadLong(String key) {return ReadLongOr(key, Long_.Min_value);}
@Override public long ReadLongOr(String key, long or) {

@ -96,7 +96,7 @@ class Dbmeta_fld_wkr__default extends Dbmeta_fld_wkr__base {
case Dbmeta_fld_tid.Tid__bool:
case Dbmeta_fld_tid.Tid__byte:
case Dbmeta_fld_tid.Tid__short:
case Dbmeta_fld_tid.Tid__int: default_val = Int_.parse(Read_str_to_end_of_num(rdr)); break;
case Dbmeta_fld_tid.Tid__int: default_val = Int_.Parse(Read_str_to_end_of_num(rdr)); break;
case Dbmeta_fld_tid.Tid__long: default_val = Long_.parse(Read_str_to_end_of_num(rdr)); break;
case Dbmeta_fld_tid.Tid__float: default_val = Float_.parse(Read_str_to_end_of_num(rdr)); break;
case Dbmeta_fld_tid.Tid__double: default_val = Double_.parse(Read_str_to_end_of_num(rdr)); break;

@ -56,7 +56,7 @@ public class Db_qry_sql implements Db_qry {
if (val == null) {bfr.Add(Bry_null); return;}
Class<?> val_type = val.getClass();
if (Type_.Eq(val_type, Int_.Cls_ref_type))
bfr.Add_int_variable(Int_.cast(val));
bfr.Add_int_variable(Int_.Cast(val));
else if (Type_.Eq(val_type, Bool_.Cls_ref_type))
bfr.Add_int_fixed(1, Bool_.To_int(Bool_.Cast(val))); // NOTE: save boolean to 0 or 1, b/c (a) db may not support bit datatype (sqllite) and (b) avoid i18n issues with "true"/"false"
else if (Type_.Eq(val_type, Double_.Cls_ref_type))
@ -66,7 +66,7 @@ public class Db_qry_sql implements Db_qry {
else if (Type_.Eq(val_type, Float_.Cls_ref_type))
bfr.Add_float(Float_.cast(val));
else if (Type_.Eq(val_type, Byte_.Cls_ref_type))
bfr.Add_byte(Byte_.cast(val));
bfr.Add_byte(Byte_.Cast(val));
else if (Type_.Eq(val_type, DateAdp_.Cls_ref_type))
bfr.Add_byte_apos().Add_str_a7(DateAdp_.cast(val).XtoStr_gplx_long()).Add_byte_apos();
else if (Type_.Eq(val_type, Decimal_adp_.Cls_ref_type))

@ -26,18 +26,18 @@ class Sql_select_fld_count extends Sql_select_fld_func { public Sql_select_fld
@Override public void GroupBy_type(ClassXtn type) {this.Val_type_(IntClassXtn.Instance);}
@Override public Object GroupBy_eval(Object groupByVal, Object curVal, ClassXtn type) {
if (groupByVal == null) return 1;
return Int_.cast(groupByVal) + 1;
return Int_.Cast(groupByVal) + 1;
}
}
class Sql_select_fld_sum extends Sql_select_fld_func { public Sql_select_fld_sum(String tbl, String fld, String alias) {super(tbl, fld, alias);}
@Override public String XtoSql_functionName() {return "SUM";}
@Override public void GroupBy_type(ClassXtn type) {this.Val_type_(IntClassXtn.Instance);}
@Override public Object GroupBy_eval(Object groupByVal, Object curVal, ClassXtn type) {
if (groupByVal == null) return Int_.cast(curVal);
return Int_.cast(groupByVal) + Int_.cast(curVal);
if (groupByVal == null) return Int_.Cast(curVal);
return Int_.Cast(groupByVal) + Int_.Cast(curVal);
}
}
class Sql_select_fld_minMax extends Sql_select_fld_func { private final int compareType;
class Sql_select_fld_minMax extends Sql_select_fld_func { private final int compareType;
public Sql_select_fld_minMax(int compareType, String tbl, String fld, String alias) {super(tbl, fld, alias);
this.compareType = compareType;
}

@ -29,9 +29,9 @@ public class Sql_val_wtr {
int tid_type = Type_ids_.To_id_by_type(val.getClass());
switch (tid_type) {
case Type_ids_.Id__bool: Bld_val__bool (bfr, Bool_.Cast(val)); break;
case Type_ids_.Id__byte: Bld_val__byte (bfr, Byte_.cast(val)); break;
case Type_ids_.Id__byte: Bld_val__byte (bfr, Byte_.Cast(val)); break;
case Type_ids_.Id__short: Bld_val__short (bfr, Short_.cast(val)); break;
case Type_ids_.Id__int: Bld_val__int (bfr, Int_.cast(val)); break;
case Type_ids_.Id__int: Bld_val__int (bfr, Int_.Cast(val)); break;
case Type_ids_.Id__long: Bld_val__long (bfr, Long_.cast(val)); break;
case Type_ids_.Id__float: Bld_val__float (bfr, Float_.cast(val)); break;
case Type_ids_.Id__double: Bld_val__double (bfr, Double_.cast(val)); break;

@ -37,8 +37,8 @@ public class Db_stmt_arg_list {
public static void Fill_crt(Db_stmt stmt, int tid, String key, Object val) {
switch (tid) {
case Dbmeta_fld_tid.Tid__bool: stmt.Crt_bool_as_byte (key, Bool_.Cast(val)); break;
case Dbmeta_fld_tid.Tid__byte: stmt.Crt_byte (key, Byte_.cast(val)); break;
case Dbmeta_fld_tid.Tid__int: stmt.Crt_int (key, Int_.cast(val)); break;
case Dbmeta_fld_tid.Tid__byte: stmt.Crt_byte (key, Byte_.Cast(val)); break;
case Dbmeta_fld_tid.Tid__int: stmt.Crt_int (key, Int_.Cast(val)); break;
case Dbmeta_fld_tid.Tid__long: stmt.Crt_long (key, Long_.cast(val)); break;
case Dbmeta_fld_tid.Tid__float: stmt.Crt_float (key, Float_.cast(val)); break;
case Dbmeta_fld_tid.Tid__double: stmt.Crt_double (key, Double_.cast(val)); break;
@ -51,8 +51,8 @@ public class Db_stmt_arg_list {
public static void Fill_val(Db_stmt stmt, int tid, String key, Object val) {
switch (tid) {
case Dbmeta_fld_tid.Tid__bool: stmt.Val_bool_as_byte (key, Bool_.Cast(val)); break;
case Dbmeta_fld_tid.Tid__byte: stmt.Val_byte (key, Byte_.cast(val)); break;
case Dbmeta_fld_tid.Tid__int: stmt.Val_int (key, Int_.cast(val)); break;
case Dbmeta_fld_tid.Tid__byte: stmt.Val_byte (key, Byte_.Cast(val)); break;
case Dbmeta_fld_tid.Tid__int: stmt.Val_int (key, Int_.Cast(val)); break;
case Dbmeta_fld_tid.Tid__long: stmt.Val_long (key, Long_.cast(val)); break;
case Dbmeta_fld_tid.Tid__float: stmt.Val_float (key, Float_.cast(val)); break;
case Dbmeta_fld_tid.Tid__double: stmt.Val_double (key, Double_.cast(val)); break;

@ -28,7 +28,7 @@ class Db_sys_tbl implements Rls_able {
public void Create_tbl() {conn.Meta_tbl_create(Dbmeta_tbl_itm.New(tbl_name, flds));}
public int Assert_int_or(String key, int or) {
String rv = Assert_str_or(key, Int_.To_str(or));
try {return Int_.parse(rv);}
try {return Int_.Parse(rv);}
catch (Exception e) {Err_.Noop(e); return or;}
}
public String Assert_str_or(String key, String or) {

@ -24,7 +24,7 @@ public class PointAdp_ {
public static PointAdp parse(String raw) {
try {
String[] ary = String_.Split(raw, ",");
return new PointAdp(Int_.parse(ary[0]), Int_.parse(ary[1]));
return new PointAdp(Int_.Parse(ary[0]), Int_.Parse(ary[1]));
} catch (Exception exc) {throw Err_.new_parse_exc(exc, PointAdp.class, raw);}
}
}

@ -25,7 +25,7 @@ public class RectAdp_ {
public static RectAdp parse(String raw) {
try {
String[] ary = String_.Split(raw, ",");
return RectAdp_.new_(Int_.parse(ary[0]), Int_.parse(ary[1]), Int_.parse(ary[2]), Int_.parse(ary[3]));
return RectAdp_.new_(Int_.Parse(ary[0]), Int_.Parse(ary[1]), Int_.Parse(ary[2]), Int_.Parse(ary[3]));
} catch(Exception exc) {throw Err_.new_parse_exc(exc, RectAdp.class, raw);}
}
public static String Xto_str(RectAdp rect) {return String_.Format("{0},{1},{2},{3}", rect.X(), rect.Y(), rect.Width(), rect.Height());}

@ -23,8 +23,8 @@ public class SizeAdp_ {
public static SizeAdp parse(String raw) {return parse_or(raw, SizeAdp_.Null);}
public static SizeAdp parse_or(String raw, SizeAdp or) {
String[] ary = String_.Split(raw, ","); if (ary.length != 2) return or;
int w = Int_.parse_or(ary[0], Int_.Min_value); if (w == Int_.Min_value) return or;
int h = Int_.parse_or(ary[1], Int_.Min_value); if (h == Int_.Min_value) return or;
int w = Int_.Parse_or(ary[0], Int_.Min_value); if (w == Int_.Min_value) return or;
int h = Int_.Parse_or(ary[1], Int_.Min_value); if (h == Int_.Min_value) return or;
return new SizeAdp(w, h);
}
public static SizeAdp corners_(PointAdp topLeft, PointAdp bottomRight) {

@ -69,7 +69,7 @@ public class ColorAdp_ implements ParseAble {
@gplx.Internal protected static ColorAdp parse_int_(String v) {
String[] ary = String_.Split(v, ",");
switch (ary.length) {
case 1: return new_int_(Int_.parse(ary[0]));
case 1: return new_int_(Int_.Parse(ary[0]));
case 3:
case 4: return parse_int_ary_(ary);
default: throw Err_.new_wo_type("invalid array", "len", ary.length);
@ -79,10 +79,10 @@ public class ColorAdp_ implements ParseAble {
int a;
int idx = 0;
if (ary.length == 3) {idx = 0; a = 255;}
else {idx = 1; a = Int_.parse(ary[0]);}
int r = Int_.parse(ary[idx++]);
int g = Int_.parse(ary[idx++]);
int b = Int_.parse(ary[idx++]);
else {idx = 1; a = Int_.Parse(ary[0]);}
int r = Int_.Parse(ary[idx++]);
int g = Int_.Parse(ary[idx++]);
int b = Int_.Parse(ary[idx++]);
return ColorAdp_.new_(a, r, g, b);
}
public static ColorAdp new_int_(int val) {

@ -27,7 +27,7 @@ public class ScreenAdp_ {
try {
raw = String_.Replace(raw, "{screen{", "");
raw = String_.Replace(raw, "}", "");
return ScreenAdp_.screen_(Int_.parse(raw));
return ScreenAdp_.screen_(Int_.Parse(raw));
} catch(Exception exc) {throw Err_.new_parse_exc(exc, ScreenAdp.class, raw);}
}
public static ScreenAdp from_point_(PointAdp pos) {// NOTE: not using FromPoint b/c of plat_wce

@ -58,7 +58,7 @@ public class IptBnd_txt_range implements InjectAble, Gfo_invk, Gfo_evt_itm {
if (String_.Eq(find, (String)list[i].Val())) idx = i;
}
if (idx == Int_.Min_value) { // try to find .Text in list.Keys
int key = Int_.parse_or(txtBox.Text(), Int_.Min_value); if (key == Int_.Min_value) return Gfo_invk_.Rv_unhandled;
int key = Int_.Parse_or(txtBox.Text(), Int_.Min_value); if (key == Int_.Min_value) return Gfo_invk_.Rv_unhandled;
idx = GetByKey(key); if (idx == Int_.Min_value) return Gfo_invk_.Rv_unhandled;
}
ExecCmd(setCmd, idx);

@ -32,7 +32,7 @@ public class IptBnd_upDownRange implements InjectAble, Gfo_invk, Gfo_evt_itm {
else if (ctx.Match(k, Invk_TxtBox_inc)) ExecCmd(cmd, curVal + 1);
else if (ctx.Match(k, Invk_TxtBox_exec)) {
Object valObj = IntClassXtn.Instance.ParseOrNull(txtBox.Text()); if (valObj == null) throw Err_.new_wo_type("invalid int", "text", txtBox.Text());
ExecCmd(doIt, Int_.cast(valObj));
ExecCmd(doIt, Int_.Cast(valObj));
}
else if (ctx.Match(k, evt)) WhenEvt(ctx, m);
else return Gfo_invk_.Rv_unhandled;

@ -26,7 +26,7 @@ public class IptMouseWheel_ {
else throw Err_.new_parse_type(IptMouseWheel.class, raw);
}
public static IptMouseWheel api_(Object obj) {
int delta = Int_.cast(obj);
int delta = Int_.Cast(obj);
if (delta > 0) return Up;
else if (delta < 0) return Down;
else return None;

@ -53,7 +53,7 @@ public class Swt_html implements Gxw_html, Swt_control, FocusListener, Gfo_evt_m
lnr_location = new Swt_html_lnr_location(this);
lnr_status = new Swt_html_lnr_status(this);
Object browser_tid_obj = ctorArgs.Get_val_or(Swt_kit.Cfg_Html_BrowserType, null);
this.browser_tid = browser_tid_obj == null ? Browser_tid_none : Int_.cast(browser_tid_obj);
this.browser_tid = browser_tid_obj == null ? Browser_tid_none : Int_.Cast(browser_tid_obj);
browser = new Browser(owner_control.Under_composite(), browser_tid);
core = new Swt_core_cmds_html(this, browser);
browser.addKeyListener(new Swt_lnr_key(this));

@ -37,20 +37,20 @@ public class Bit__tst {
fxt.Test_shift_rhs(8, 1, 4);
}
@Test public void Shift_lhs_to_int() {
int[] shift_ary = Int_.Ary(0, 3, 5);
fxt.Test_shift_lhs_to_int(shift_ary, Int_.Ary(0, 0, 0), 0);
fxt.Test_shift_lhs_to_int(shift_ary, Int_.Ary(7, 0, 0), 7); // 1st 3 bits
fxt.Test_shift_lhs_to_int(shift_ary, Int_.Ary(0, 3, 0), 24); // 2nd 2 bits
fxt.Test_shift_lhs_to_int(shift_ary, Int_.Ary(0, 0, 1), 32); // 3rd 1 bit
fxt.Test_shift_lhs_to_int(shift_ary, Int_.Ary(7, 3, 1), 63); // many bits
int[] shift_ary = Int_ary_.New(0, 3, 5);
fxt.Test_shift_lhs_to_int(shift_ary, Int_ary_.New(0, 0, 0), 0);
fxt.Test_shift_lhs_to_int(shift_ary, Int_ary_.New(7, 0, 0), 7); // 1st 3 bits
fxt.Test_shift_lhs_to_int(shift_ary, Int_ary_.New(0, 3, 0), 24); // 2nd 2 bits
fxt.Test_shift_lhs_to_int(shift_ary, Int_ary_.New(0, 0, 1), 32); // 3rd 1 bit
fxt.Test_shift_lhs_to_int(shift_ary, Int_ary_.New(7, 3, 1), 63); // many bits
}
@Test public void Shift_rhs_to_ary() {
int[] shift_ary = Int_.Ary(0, 3, 5);
fxt.Test_shift_rhs_to_ary(shift_ary, 0, Int_.Ary(0, 0, 0));
fxt.Test_shift_rhs_to_ary(shift_ary, 7, Int_.Ary(7, 0, 0)); // 1st 3 bits
fxt.Test_shift_rhs_to_ary(shift_ary, 24, Int_.Ary(0, 3, 0)); // 2nd 2 bits
fxt.Test_shift_rhs_to_ary(shift_ary, 32, Int_.Ary(0, 0, 1)); // 3rd 1 bit
fxt.Test_shift_rhs_to_ary(shift_ary, 63, Int_.Ary(7, 3, 1)); // many bits
int[] shift_ary = Int_ary_.New(0, 3, 5);
fxt.Test_shift_rhs_to_ary(shift_ary, 0, Int_ary_.New(0, 0, 0));
fxt.Test_shift_rhs_to_ary(shift_ary, 7, Int_ary_.New(7, 0, 0)); // 1st 3 bits
fxt.Test_shift_rhs_to_ary(shift_ary, 24, Int_ary_.New(0, 3, 0)); // 2nd 2 bits
fxt.Test_shift_rhs_to_ary(shift_ary, 32, Int_ary_.New(0, 0, 1)); // 3rd 1 bit
fxt.Test_shift_rhs_to_ary(shift_ary, 63, Int_ary_.New(7, 3, 1)); // many bits
}
}
class Bit__fxt {
@ -59,7 +59,7 @@ class Bit__fxt {
public void Test_shift_rhs(int val, int shift, int expd) {Tfds.Eq(expd, Bit_.Shift_rhs(val, shift));}
public void Test_shift_lhs_to_int(int[] shift_ary, int[] val_ary, int expd) {Tfds.Eq(expd, Bit_.Shift_lhs_to_int(shift_ary, val_ary));}
public void Test_shift_rhs_to_ary(int[] shift_ary, int val, int[] expd_ary) {
int[] actl_ary = Int_.Ary(0, 0, 0);
int[] actl_ary = Int_ary_.New(0, 0, 0);
Bit_.Shift_rhs_to_ary(actl_ary, shift_ary, val);
Tfds.Eq_ary(expd_ary, actl_ary);
}

@ -47,7 +47,7 @@ public class Gfo_cmd_arg_itm {
public boolean Val_as_bool_or(boolean or) {return val == null ? or : String_.Eq((String)val, "y");}
public String Val_as_str_or(String or) {return val == null ? or : (String)val;}
public String Val_as_str() {return (String)val;}
public int Val_as_int_or(int or) {return val == null ? or : Int_.parse_or((String)val, or);}
public int Val_as_int_or(int or) {return val == null ? or : Int_.Parse_or((String)val, or);}
public Io_url Val_as_url__rel_dir_or(Io_url owner_dir, Io_url or) {return Val_as_url__rel_url_or(Bool_.Y, owner_dir, or);}
public Io_url Val_as_url__rel_fil_or(Io_url owner_dir, Io_url or) {return Val_as_url__rel_url_or(Bool_.N, owner_dir, or);}
public Io_url Val_as_url__rel_url_or(boolean to_dir, Io_url owner_dir, Io_url or) {return Gfo_cmd_arg_itm_.Val_as_url__rel_url_or(Val_as_str(), to_dir, owner_dir, or);}

@ -46,7 +46,7 @@ public class Gfo_url_parser {
if (!rel) { // search for ":"; NOTE: only search if not rel; i.e.: "//"
int colon_pos = Bry_find_.Find_fwd(src, Byte_ascii.Colon, pos, src_end); // no colon found; EX: "//a.org/b"; "a.org/b"
if (colon_pos != Bry_find_.Not_found) // colon found; EX: "http://" or "https://"
pos = colon_pos + Int_.Const_dlm_len;
pos = colon_pos + Byte_ascii.Len_1;
if (pos < src_end && src[pos] == Byte_ascii.Slash) { // skip slash after colon
pos += 1;
if (pos < src_end && src[pos] == Byte_ascii.Slash) // skip 2nd slash after colon

@ -46,7 +46,7 @@ public class Gfo_qarg_mgr {
public int Read_int_or(String key, int or) {return Read_int_or(Bry_.new_u8(key), or);}
public int Read_int_or(byte[] key, int or) {
byte[] val = Read_bry_or(key, null);
return val == null ? or : Int_.parse_or(String_.new_a7(val), or);
return val == null ? or : Int_.Parse_or(String_.new_a7(val), or);
}
public int Read_enm_as_int_or(Gfo_qarg_enum_itm enm, int or) {
Gfo_qarg_itm arg = (Gfo_qarg_itm)hash.Get_by_bry(enm.Key());

@ -34,8 +34,8 @@ public class Int_2_ref {
public static Int_2_ref parse(String raw) {
try {
String[] itms = String_.Split(raw, ",");
int v0 = Int_.parse(itms[0]);
int v1 = Int_.parse(itms[1]);
int v0 = Int_.Parse(itms[0]);
int v1 = Int_.Parse(itms[1]);
return new Int_2_ref(v0, v1);
} catch (Exception e) {Err_.Noop(e); throw Err_.new_parse("Int_2_ref", raw);}
}
@ -46,8 +46,8 @@ public class Int_2_ref {
Int_2_ref[] rv = new Int_2_ref[itms_len];
for (int i = 0; i < itms_len; i++) {
String[] vals = String_.Split(itms[i], ",");
int v0 = Int_.parse(vals[0]);
int v1 = Int_.parse(vals[1]);
int v0 = Int_.Parse(vals[0]);
int v1 = Int_.Parse(vals[1]);
rv[i] = new Int_2_ref(v0, v1);
}
return rv;

@ -16,15 +16,15 @@ Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
package gplx.core.primitives; import gplx.*; import gplx.core.*;
public class Int_2_val {
public Int_2_val(int v0, int v1) {val_0 = v0; val_1 = v1;}
public int Val_0() {return val_0;} final int val_0;
public int Val_1() {return val_1;} final int val_1;
public int Val_0() {return val_0;} final int val_0;
public int Val_1() {return val_1;} final int val_1;
public String Xto_str(Bry_bfr bfr) {return Xto_str(bfr, val_0, val_1);}
public static final Int_2_val Null_ptr = null;
public static final Int_2_val Null_ptr = null;
public static Int_2_val parse(String raw) {
String[] itms = String_.Split(raw, ',');
if (itms.length != 2) return Null_ptr;
int v0 = Int_.parse_or(itms[0], Int_.Min_value); if (v0 == Int_.Min_value) return Null_ptr;
int v1 = Int_.parse_or(itms[1], Int_.Min_value); if (v1 == Int_.Min_value) return Null_ptr;
int v0 = Int_.Parse_or(itms[0], Int_.Min_value); if (v0 == Int_.Min_value) return Null_ptr;
int v1 = Int_.Parse_or(itms[1], Int_.Min_value); if (v1 == Int_.Min_value) return Null_ptr;
return new Int_2_val(v0, v1);
}
public static String Xto_str(Bry_bfr bfr, int x, int y) {return bfr.Add_int_variable(x).Add_byte_comma().Add_int_variable(y).To_str_and_clear();}

@ -24,7 +24,7 @@ public class Int_ary_parser extends Obj_ary_parser_base {
}
@Override protected void Ary_len_(int v) {
if (v == 0)
ary = Int_.Ary_empty;
ary = Int_ary_.Empty;
else {
ary = new int[v]; // NOTE: always create new array; never reuse;
ary_idx = 0;

@ -17,9 +17,9 @@ package gplx.core.primitives; import gplx.*; import gplx.core.*;
import org.junit.*; import gplx.core.tests.*;
public class Int_ary_parser_tst {
private final Int_ary_parser_fxt fxt = new Int_ary_parser_fxt();
@Test public void Many() {fxt.Test__Parse_ary("1,2,3,4,5" , 0, 9, Int_.Ary(1, 2, 3, 4, 5));}
@Test public void One() {fxt.Test__Parse_ary("1" , 0, 1, Int_.Ary(1));}
@Test public void None() {fxt.Test__Parse_ary("" , 0, 0, Int_.Ary());}
@Test public void Many() {fxt.Test__Parse_ary("1,2,3,4,5" , 0, 9, Int_ary_.New(1, 2, 3, 4, 5));}
@Test public void One() {fxt.Test__Parse_ary("1" , 0, 1, Int_ary_.New(1));}
@Test public void None() {fxt.Test__Parse_ary("" , 0, 0, Int_ary_.New());}
}
class Int_ary_parser_fxt {
public void Test__Parse_ary(String raw, int bgn, int end, int[] expd) {

@ -21,16 +21,16 @@ public class Db_cfg_itm {
public String Val() {return val;} public Db_cfg_itm Val_(String v) {val = v; return this;} private String val;
public String To_str_or(String or) {return val == null ? or : val;}
public byte[] To_bry_or(byte[] or) {try {return val == null ? or : Bry_.new_u8(val) ;} catch (Exception e) {throw err_parse(e, Bry_.Cls_val_name);}}
public int To_int_or(int or) {try {return val == null ? or : Int_.parse_or(val, or) ;} catch (Exception e) {throw err_parse(e, Int_.Cls_val_name);}}
public int To_int_or(int or) {try {return val == null ? or : Int_.Parse_or(val, or) ;} catch (Exception e) {throw err_parse(e, Int_.Cls_val_name);}}
public long To_long_or(long or) {try {return val == null ? or : Long_.parse_or(val, or) ;} catch (Exception e) {throw err_parse(e, Long_.Cls_val_name);}}
public byte To_byte_or(byte or) {try {return val == null ? or : Byte_.parse_or(val, or) ;} catch (Exception e) {throw err_parse(e, Byte_.Cls_val_name);}}
public byte To_byte_or(byte or) {try {return val == null ? or : Byte_.Parse_or(val, or) ;} catch (Exception e) {throw err_parse(e, Byte_.Cls_val_name);}}
public boolean To_yn_or_n() {return To_yn_or(Bool_.N);}
public boolean To_yn_or(boolean or) {try {return val == null ? or : Yn.parse_by_char_or(val, or);} catch (Exception e) {throw err_parse(e, Bool_.Cls_val_name);}}
public DateAdp To_date_or(DateAdp or) {try {return val == null ? or : DateAdp_.parse_gplx(val) ;} catch (Exception e) {throw err_parse(e, DateAdp_.Cls_ref_name);}}
public Guid_adp To_guid_or(Guid_adp or) {try {return val == null ? or : Guid_adp_.Parse(val) ;} catch (Exception e) {throw err_parse(e, Guid_adp_.Cls_ref_name);}}
public boolean To_bool() {Fail_if_null(); try {return Yn.parse(val) ;} catch (Exception e) {throw err_parse(e, Bool_.Cls_val_name);}}
public byte To_byte() {Fail_if_null(); try {return Byte_.parse(val) ;} catch (Exception e) {throw err_parse(e, Byte_.Cls_val_name);}}
public int To_int() {Fail_if_null(); try {return Int_.parse(val) ;} catch (Exception e) {throw err_parse(e, Int_.Cls_val_name);}}
public byte To_byte() {Fail_if_null(); try {return Byte_.Parse(val) ;} catch (Exception e) {throw err_parse(e, Byte_.Cls_val_name);}}
public int To_int() {Fail_if_null(); try {return Int_.Parse(val) ;} catch (Exception e) {throw err_parse(e, Int_.Cls_val_name);}}
public String To_str() {Fail_if_null(); return val;}
private void Fail_if_null() {if (val == null) throw Err_.new_wo_type("cfg.val is empty", "grp", grp, "key", key); }
private Err err_parse(Exception e, String type) {return Err_.new_wo_type("cfg.val is not parseable", "grp", grp, "key", key, "val", val, "type", type).Trace_ignore_add_1_();}

@ -149,8 +149,8 @@ public class Db_cfg_tbl implements Db_tbl {
public Guid_adp Assert_guid (String grp, String key, Guid_adp or) {String val = Select_str_or(grp, key, null) ; if (val == null) {Insert_guid (grp, key, or); return or;} return Parse_guid (grp, key, val);}
public String Assert_str (String grp, String key, String or) {String val = Select_str_or(grp, key, null) ; if (val == null) {Insert_str (grp, key, or); return or;} return val;}
private boolean Parse_yn (String grp, String key, String val) {try {return Yn.parse(val) ;} catch (Exception e) {throw err_parse(e, grp, key, val, Bool_.Cls_val_name);}}
private byte Parse_byte (String grp, String key, String val) {try {return Byte_.parse(val) ;} catch (Exception e) {throw err_parse(e, grp, key, val, Byte_.Cls_val_name);}}
private int Parse_int (String grp, String key, String val) {try {return Int_.parse(val) ;} catch (Exception e) {throw err_parse(e, grp, key, val, Int_.Cls_val_name);}}
private byte Parse_byte (String grp, String key, String val) {try {return Byte_.Parse(val) ;} catch (Exception e) {throw err_parse(e, grp, key, val, Byte_.Cls_val_name);}}
private int Parse_int (String grp, String key, String val) {try {return Int_.Parse(val) ;} catch (Exception e) {throw err_parse(e, grp, key, val, Int_.Cls_val_name);}}
private long Parse_long (String grp, String key, String val) {try {return Long_.parse(val) ;} catch (Exception e) {throw err_parse(e, grp, key, val, Long_.Cls_val_name);}}
private byte[] Parse_bry (String grp, String key, String val) {try {return Bry_.new_u8(val) ;} catch (Exception e) {throw err_parse(e, grp, key, val, Bry_.Cls_val_name);}}
private DateAdp Parse_date (String grp, String key, String val) {try {return DateAdp_.parse_gplx(val) ;} catch (Exception e) {throw err_parse(e, grp, key, val, DateAdp_.Cls_ref_name);}}

@ -65,7 +65,7 @@ class Log_fld_itm__int extends Log_fld_itm__base {
public int Bgn() {return bgn;} private final int bgn;
public int End() {return end;} private final int end;
@Override public void Fmt(Bry_bfr bfr, Object val) {
int val_int = Int_.cast(val);
int val_int = Int_.Cast(val);
String val_str = String_.PadBgn(Int_.To_str(val_int), this.Len(), " ");
bfr.Add_str_u8(val_str);
}

@ -32,8 +32,8 @@ public class Sql_runner {
public String Msg() {return msg;} public void Msg_(String v) {msg = v;} private String msg;
public String Fill_next(String state) {
String[] vals = String_.Split(state, "|");
int val_lo = Int_.parse(vals[0]);
int interval = Int_.parse(vals[1]);
int val_lo = Int_.Parse(vals[0]);
int interval = Int_.Parse(vals[1]);
int val_hi = val_lo + interval;
Db_stmt_arg arg = list.Get_at(0);

@ -44,7 +44,7 @@ public class Gfs_nde {
subs[subs_len] = nde;
subs_len = new_len;
return this;
} Gfs_nde[] subs = Gfs_nde.Ary_empty; int subs_max; int[] subs_pos_ary = Int_.Ary_empty;
} Gfs_nde[] subs = Gfs_nde.Ary_empty; int subs_max; int[] subs_pos_ary = Int_ary_.Empty;
public Gfs_nde Subs_get_at(int i) {return subs[i];}
public Gfs_nde[] Subs_to_ary() {
Gfs_nde[] rv = new Gfs_nde[subs_len];
@ -71,7 +71,7 @@ public class Gfs_nde {
args[args_len] = nde;
args_len = new_len;
return this;
} Gfs_nde[] args = Gfs_nde.Ary_empty; int args_max; int[] args_pos_ary = Int_.Ary_empty;
} Gfs_nde[] args = Gfs_nde.Ary_empty; int args_max; int[] args_pos_ary = Int_ary_.Empty;
public Gfs_nde[] Atrs_to_ary() {
Gfs_nde[] rv = new Gfs_nde[args_len];
for (int i = 0; i < args_len; i++)

@ -27,7 +27,7 @@ public class Gfh_nde {
}
}
public byte[] Src() {return src;} private byte[] src;
public int[] Atrs() {return atrs;} private int[] atrs = Int_.Ary_empty;
public int[] Atrs() {return atrs;} private int[] atrs = Int_ary_.Empty;
public int Atrs_len() {return atrs_len;} private int atrs_len;
public boolean Tag_tid_is_inline() {return tag_tid_is_inline;} private boolean tag_tid_is_inline;
public int Tag_lhs_bgn() {return tag_lhs_bgn;} public Gfh_nde Tag_lhs_bgn_(int v) {tag_lhs_bgn = v; return this;} private int tag_lhs_bgn;

@ -49,14 +49,14 @@ class Gfo_url_encoder_itm_hex implements Gfo_url_encoder_itm {
return 0;
}
}
int hex_val = Int_.To_int_hex(src[idx + 1]);
int hex_val = Int_.By_hex_byte(src[idx + 1]);
if (hex_val == -1) { // invalid hex byte; EX: %GC; DATE:2014-04-10
bfr.Add_byte(b);
return 0;
}
int v_0 = hex_val * 16;
if (v_0 != -1) {
int v_1 = Int_.To_int_hex(src[idx + 2]);
int v_1 = Int_.By_hex_byte(src[idx + 2]);
if (v_1 != -1) {
bfr.Add_byte((byte)(v_0 + v_1));
return 2;

@ -164,8 +164,8 @@ public class Json_wtr {
switch (type_tid) {
case Type_ids_.Id__null: bfr.Add(Object_.Bry__null); break;
case Type_ids_.Id__bool: bfr.Add_bool(Bool_.Cast(obj)); break;
case Type_ids_.Id__byte: bfr.Add_byte(Byte_.cast(obj)); break;
case Type_ids_.Id__int: bfr.Add_int_variable(Int_.cast(obj)); break;
case Type_ids_.Id__byte: bfr.Add_byte(Byte_.Cast(obj)); break;
case Type_ids_.Id__int: bfr.Add_int_variable(Int_.Cast(obj)); break;
case Type_ids_.Id__long: bfr.Add_long_variable(Long_.cast(obj)); break;
case Type_ids_.Id__float: bfr.Add_float(Float_.cast(obj)); break;
case Type_ids_.Id__double: bfr.Add_double(Double_.cast(obj)); break;

@ -40,7 +40,7 @@ public class Php_srl_parser {
val = Xto_kv_ary(ary);
break;
case Php_srl_itm_.Tid_function:
val = new gplx.xowa.xtns.scribunto.Scrib_lua_proc(Object_.Xto_str_strict_or_null_mark(key), Int_.cast(itm_val.Val())); // NOTE: in most cases, key is a STRING (name of ScribFunction); however, for gsub it is an INT (arg_idx) b/c it is passed as a parameter
val = new gplx.xowa.xtns.scribunto.Scrib_lua_proc(Object_.Xto_str_strict_or_null_mark(key), Int_.Cast(itm_val.Val())); // NOTE: in most cases, key is a STRING (name of ScribFunction); however, for gsub it is an INT (arg_idx) b/c it is passed as a parameter
break;
default:
val = itm_val.Val();

@ -119,11 +119,11 @@ public class Php_text_itm_parser {
}
if (txt_bgn != -1) {tmp_list.Add(new Php_text_itm_text(txt_bgn, raw_len)); txt_bgn = -1; rslt_val = Rslt_dirty;}
rslt.Val_(rslt_val);
} private static final byte[] CONST_utf_prefix = Bry_.new_a7("\\u00");
} private static final byte[] CONST_utf_prefix = Bry_.new_a7("\\u00");
private void Parse_utf16(List_adp rv, byte[] src, int bgn, int src_len) {
int end = bgn + 4;
if (end >= src_len) throw Err_.new_wo_type("utf16_parse", "src", String_.new_u8(src));
int v = Int_.To_int_hex(src, bgn, end); // +2; skip "\" + "u"
int v = Int_.By_hex_bry(src, bgn, end); // +2; skip "\" + "u"
byte[] literal = gplx.core.intls.Utf16_.Encode_int_to_bry(v);
rv.Add(new Php_text_itm_utf16(bgn, end, literal));
}

@ -55,7 +55,7 @@ public class Xocfg_mgr implements Gfo_invk {
}
public int Get_int_app_or(String key, int or) {
String rv = cache_mgr.Get_or(Ctx__app, key, null);
return rv == null ? or : Int_.parse_or(rv, or);
return rv == null ? or : Int_.Parse_or(rv, or);
}
public long Get_long_app_or(String key, long or) {
String rv = cache_mgr.Get_or(Ctx__app, key, null);
@ -83,7 +83,7 @@ public class Xocfg_mgr implements Gfo_invk {
}
public int Get_int_wiki_or(Xow_wiki wiki, String key, int or) {
String rv = Get_str(wiki.Domain_itm().Abrv_xo_str(), key);
try {return Int_.parse(rv);}
try {return Int_.Parse(rv);}
catch (Exception exc) {
Err_.Noop(exc);
Gfo_usr_dlg_.Instance.Warn_many("", "", "cfg:failed to parse int; key=~{0} val=~{1}", key, rv);
@ -92,7 +92,7 @@ public class Xocfg_mgr implements Gfo_invk {
}
public int Get_int_or(String ctx, String key, int or) {
String rv = cache_mgr.Get(ctx, key);
try {return Int_.parse(rv);}
try {return Int_.Parse(rv);}
catch (Exception exc) {
Err_.Noop(exc);
Gfo_usr_dlg_.Instance.Warn_many("", "", "cfg:failed to parse int; key=~{0} val=~{1}", key, rv);

@ -51,7 +51,7 @@ public class Xocfg_map_tbl implements Db_tbl {
try {
if (!rdr.Move_next()) return 0;
Object max = rdr.Read_obj(fld__map_sort);
return max == null ? 0 : Int_.cast(max) + 10;
return max == null ? 0 : Int_.Cast(max) + 10;
}
finally {rdr.Rls();}
}

@ -30,7 +30,7 @@ class Xocfg_maint_parser {
private Xocfg_maint_nde Parse_nde(GfoMsg msg) {
Ordered_hash hash = To_atr_hash(msg);
// get common atrs
int id = Int_.parse(Get_atr_as_str_or_fail(hash, "id_"));
int id = Int_.Parse(Get_atr_as_str_or_fail(hash, "id_"));
String owner = Get_atr_as_str_or_fail(hash, "owner_");
String key = Get_atr_as_str_or_fail(hash, "key_");
String name = Get_atr_as_str_or_fail(hash, "name_");

@ -134,7 +134,7 @@ public class Xob_wiki_cfg_bldr_tst {
for (int j = 0; j < xndes_len; j++) {
gplx.langs.xmls.XmlNde ns_nde = xnde.SubNdes().Get_at(j);
if (!String_.Eq(ns_nde.Name(), "ns")) continue;
int id = Int_.parse(ns_nde.Atrs().FetchValOr("id", "-1"));
int id = Int_.Parse(ns_nde.Atrs().FetchValOr("id", "-1"));
String name = String_.Replace(String_.Replace(ns_nde.Text_inner(), " ", "_"), "'", "''");
sb.Add(Int_.To_str(id)).Add("|").Add(String_.Trim(name)).Add_char_nl();
}

@ -18,9 +18,9 @@ public class Xobc_task_step_hash {
private final Ordered_hash tasks_hash = Ordered_hash_.New();
private final Ordered_hash steps_hash = Ordered_hash_.New();
public int Tasks__len() {return tasks_hash.Len();}
public int Tasks__get_at(int i) {return Int_.cast(tasks_hash.Get_at(i));}
public int Tasks__get_at(int i) {return Int_.Cast(tasks_hash.Get_at(i));}
public int Steps__len() {return steps_hash.Len();}
public int Steps__get_at(int i) {return Int_.cast(steps_hash.Get_at(i));}
public int Steps__get_at(int i) {return Int_.Cast(steps_hash.Get_at(i));}
public void Clear() {tasks_hash.Clear(); steps_hash.Clear();}
public void Add(int task_id, int step_id) {
tasks_hash.Add_if_dupe_use_nth(task_id, task_id);

@ -32,7 +32,7 @@ public class Split_cfg implements Gfo_invk {
}
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
if (ctx.Match(k, Invk__ns_ids_)) this.Ns_itms_(Int_.Ary_parse(m.ReadStr("v"), "|"));
if (ctx.Match(k, Invk__ns_ids_)) this.Ns_itms_(Int_ary_.Parse(m.ReadStr("v"), "|"));
else if (ctx.Match(k, Invk__loader_rows_)) this.loader_rows = m.ReadInt("v");
else if (ctx.Match(k, Invk__force_rebuild_)) this.force_rebuild = m.ReadBool("v");
else if (ctx.Match(k, Invk__trg_max_)) this.trg_max = m.ReadLong("v");

@ -33,6 +33,6 @@ public class Split_file_tid_ {
int bgn = String_.FindFwd(raw, "ns."); if (bgn == Bry_find_.Not_found) throw Err_.new_wo_type("could not find ns in url", "fil", raw);
bgn += 3; // ns.
int end = String_.FindFwd(raw, ".", bgn); if (end == Bry_find_.Not_found) throw Err_.new_wo_type("could not find ns in url", "fil", raw);
return Int_.parse(String_.Mid(raw, bgn, end));
return Int_.Parse(String_.Mid(raw, bgn, end));
}
}

@ -26,7 +26,7 @@ public class Xobldr__fsdb_db__create_data extends Xob_cmd__base implements Xob_c
private Xof_bin_mgr src_bin_mgr; private Xof_bin_wkr__fsdb_sql src_fsdb_wkr; private boolean src_bin_mgr__cache_enabled = Bool_.N; private String src_bin_mgr__fsdb_version; private String[] src_bin_mgr__fsdb_skip_wkrs; private boolean src_bin_mgr__wmf_enabled;
private Fsm_mnt_itm trg_mnt_itm; private Fsm_cfg_mgr trg_cfg_mgr; private Fsm_atr_fil trg_atr_fil; private Fsm_bin_fil trg_bin_fil; private long trg_bin_db_max; private String trg_bin_mgr__fsdb_version;
private final Xof_bin_updater trg_bin_updater = new Xof_bin_updater(); private Xob_bin_db_mgr bin_db_mgr; private int[] ns_ids; private int prv_lnki_tier_id = -1;
private long download_size_max = Io_mgr.Len_mb_long * 5; private int[] download_keep_tier_ids = Int_.Ary(0);
private long download_size_max = Io_mgr.Len_mb_long * 5; private int[] download_keep_tier_ids = Int_ary_.New(0);
private Xobu_poll_mgr poll_mgr; private int poll_interval; private long time_bgn;
private int select_interval = 2500, progress_interval = 1, commit_interval = 1, delete_interval = 5000;
private boolean exec_done, resume_enabled; private int exec_count, exec_count_max = Int_.Max_value, exec_fail, exec_fail_max = 10000; // 115 errors over 900k images
@ -142,7 +142,7 @@ public class Xobldr__fsdb_db__create_data extends Xob_cmd__base implements Xob_c
}
else {
if (tier_id_bmk == -1) {
tier_id_bmk = Int_.parse(tier_id_str);
tier_id_bmk = Int_.Parse(tier_id_str);
usr_dlg.Note_many("", "", "restoring from bmk: tier_id=~{0}", tier_id_bmk);
}
if (page_id_bmk == -1) {
@ -312,14 +312,14 @@ public class Xobldr__fsdb_db__create_data extends Xob_cmd__base implements Xob_c
else if (ctx.Match(k, Invk_exit_after_commit_)) exit_after_commit = m.ReadYn("v");
else if (ctx.Match(k, Invk_exit_now_)) exit_now = m.ReadYn("v");
else if (ctx.Match(k, Invk_resume_enabled_)) resume_enabled = m.ReadYn("v");
else if (ctx.Match(k, Invk_ns_ids_)) ns_ids = Int_.Ary_parse(m.ReadStr("v"), "|");
else if (ctx.Match(k, Invk_ns_ids_)) ns_ids = Int_ary_.Parse(m.ReadStr("v"), "|");
else if (ctx.Match(k, Invk_src_bin_mgr__fsdb_version_)) src_bin_mgr__fsdb_version = m.ReadStr("v");
else if (ctx.Match(k, Invk_src_bin_mgr__fsdb_skip_wkrs_)) src_bin_mgr__fsdb_skip_wkrs = m.ReadStrAry("v", "|");
else if (ctx.Match(k, Invk_src_bin_mgr__wmf_enabled_)) src_bin_mgr__wmf_enabled = m.ReadYn("v");
else if (ctx.Match(k, Invk_src_bin_mgr__cache_enabled_)) src_bin_mgr__cache_enabled = m.ReadYn("v");
else if (ctx.Match(k, Invk_trg_bin_mgr__fsdb_version_)) trg_bin_mgr__fsdb_version = m.ReadStr("v");
else if (ctx.Match(k, Invk_poll_mgr)) return poll_mgr;
else if (ctx.Match(k, Invk_download_keep_tier_ids)) download_keep_tier_ids = Int_.Ary_parse(m.ReadStr("v"), "|");
else if (ctx.Match(k, Invk_download_keep_tier_ids)) download_keep_tier_ids = Int_ary_.Parse(m.ReadStr("v"), "|");
else if (ctx.Match(k, Invk_download_size_max)) download_size_max = Io_size_.To_long_by_msg_mb(m, download_size_max);
else return Gfo_invk_.Rv_unhandled;
return this;

@ -33,7 +33,7 @@ public class Xobldr__lnki_temp__create extends Xob_dump_mgr_base implements gplx
private final Xob_hdump_bldr hdump_bldr = new Xob_hdump_bldr(); private Vnt_convert_lang converter_lang;
public Xobldr__lnki_temp__create(Xob_bldr bldr, Xowe_wiki wiki) {this.Cmd_ctor(bldr, wiki);}
@Override public byte Init_redirect() {return Bool_.N_byte;} // lnki_temp does not look at redirect pages
@Override public int[] Init_ns_ary() {return ns_ids;} private int[] ns_ids = Int_.Ary(Xow_ns_.Tid__main);
@Override public int[] Init_ns_ary() {return ns_ids;} private int[] ns_ids = Int_ary_.New(Xow_ns_.Tid__main);
@Override protected void Init_reset(Db_conn conn) {
Db_cfg_tbl cfg_tbl = gplx.xowa.wikis.data.Xowd_cfg_tbl_.New(conn);
cfg_tbl.Delete_all();
@ -157,7 +157,7 @@ public class Xobldr__lnki_temp__create extends Xob_dump_mgr_base implements gplx
@Override public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
if (ctx.Match(k, Invk_wdata_enabled_)) wdata_enabled = m.ReadYn("v");
else if (ctx.Match(k, Invk_xtn_ref_enabled_)) xtn_ref_enabled = m.ReadYn("v");
else if (ctx.Match(k, Invk_ns_ids_)) ns_ids = Int_.Ary_parse(m.ReadStr("v"), "|");
else if (ctx.Match(k, Invk_ns_ids_)) ns_ids = Int_ary_.Parse(m.ReadStr("v"), "|");
else if (ctx.Match(k, Invk_ns_ids_by_aliases)) ns_ids = Xobldr__lnki_temp__create_.Ns_ids_by_aliases(wiki, m.ReadStrAry("v", "|"));
else if (ctx.Match(k, Invk_gen_html_)) gen_html = m.ReadYn("v");
else if (ctx.Match(k, Invk__load_all_imglinks_)) load_all_imglinks = m.ReadYn("v");

@ -24,7 +24,7 @@ public class Xobldr__redirect__create extends Xob_dump_mgr_base {
private Db_conn conn; private Xob_redirect_tbl redirect_tbl;
private Xodb_mgr_sql db_mgr; private Xop_redirect_mgr redirect_mgr; private Gfo_url_encoder encoder;
public Xobldr__redirect__create(Xob_bldr bldr, Xowe_wiki wiki) {this.Cmd_ctor(bldr, wiki); this.Reset_db_y_();}
@Override public int[] Init_ns_ary() {return Int_.Ary(Xow_ns_.Tid__file);} // restrict to file ns
@Override public int[] Init_ns_ary() {return Int_ary_.New(Xow_ns_.Tid__file);} // restrict to file ns
@Override public byte Init_redirect() {return Bool_.Y_byte;} // restrict to redirects
@Override protected void Init_reset(Db_conn conn) {
Db_cfg_tbl cfg_tbl = gplx.xowa.wikis.data.Xowd_cfg_tbl_.New(conn);

@ -37,7 +37,7 @@ class Xobc_info_html extends Xow_special_wtr__base {
long total_size = 0;
Bry_bfr tmp_size_bfr = Bry_bfr_.New();
for (int i = 0; i < len; ++i) {
int step_id = Int_.cast(list.Get_at(i));
int step_id = Int_.Cast(list.Get_at(i));
Xobc_import_step_itm step_itm = data_db.Tbl__import_step().Select_one(step_id);
if (i == 0) {
wiki_domain = Xow_abrv_xo_.To_itm(step_itm.Wiki_abrv()); // ASSUME: 1st step's wiki is same for all steps

@ -29,7 +29,7 @@ class Xomp_init_mgr {
mgr_db.Remake();
// insert ns into cfg; need for lnki_temp.tier in xomp.make
mgr_db.Tbl__cfg().Insert_str("", gplx.xowa.addons.bldrs.mass_parses.parses.wkrs.Xomp_parse_wkr.Cfg__ns_ids, Int_.Ary_concat("|", cfg.Ns_ids()));
mgr_db.Tbl__cfg().Insert_str("", gplx.xowa.addons.bldrs.mass_parses.parses.wkrs.Xomp_parse_wkr.Cfg__ns_ids, Int_ary_.To_str("|", cfg.Ns_ids()));
// fill page tbl
Db_attach_mgr attach_mgr = new Db_attach_mgr(mgr_conn, new Db_attach_itm("page_db", wiki.Data__core_mgr().Db__core().Conn()));

@ -28,7 +28,7 @@ class Xomp_init_mgr_cfg implements Gfo_invk {
return rv;
}
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
if (ctx.Match(k, Invk__ns_ids_)) ns_ids = Int_.Ary_parse(m.ReadStr("v"), "|");
if (ctx.Match(k, Invk__ns_ids_)) ns_ids = Int_ary_.Parse(m.ReadStr("v"), "|");
else return Gfo_invk_.Rv_unhandled;
return this;
}

@ -60,7 +60,7 @@ class Xomp_html_db_wtr {
if (prv_ns_id != ns_id
|| ns_itm == null) {
prv_ns_id = ns_id;
ns_itm = new Xob_ns_file_itm(Xow_db_file_.Tid__html_data, "ns." + Int_.To_str_pad_bgn_zero(ns_id, 3), Int_.Ary(ns_id));
ns_itm = new Xob_ns_file_itm(Xow_db_file_.Tid__html_data, "ns." + Int_.To_str_pad_bgn_zero(ns_id, 3), Int_ary_.New(ns_id));
}
String file_name = is_all_or_few ? "-html.xowa" : ns_itm.Make_file_name();
this.html_db = wiki.Data__core_mgr().Dbs__make_by_tid(Xow_db_file_.Tid__html_data, Int_.To_str(ns_id), ns_itm.Nth_db_idx(), file_name);

@ -57,7 +57,7 @@ public class Xomp_parse_mgr {
Xomp_parse_wkr[] wkrs = new Xomp_parse_wkr[wkr_len];
// init ns_ord_mgr
Xomp_ns_ord_mgr ns_ord_mgr = new Xomp_ns_ord_mgr(Int_.Ary_parse(mgr_db.Tbl__cfg().Select_str("", Xomp_parse_wkr.Cfg__ns_ids), "|"));
Xomp_ns_ord_mgr ns_ord_mgr = new Xomp_ns_ord_mgr(Int_ary_.Parse(mgr_db.Tbl__cfg().Select_str("", Xomp_parse_wkr.Cfg__ns_ids), "|"));
// init indexer
Xofulltext_indexer_wkr indexer = cfg.Indexer_enabled() ? new Xofulltext_indexer_wkr() : null;
@ -131,7 +131,7 @@ public class Xomp_parse_mgr {
} finally {rdr.Rls();}
// mark ns
int[] ns_ids = Int_.Ary_parse(ns_list, ",");
int[] ns_ids = Int_ary_.Parse(ns_list, ",");
cache.Add_ns_loaded(ns_ids);
}
}

@ -65,9 +65,9 @@ class Xoh_toc_wkr__lvl {
sub_lvl_count[toc_lvl - List_adp_.Base1] = sub_lvl_count[toc_lvl - List_adp_.Base1] + 1;
prv_lvl = lvl; // NOTE: same as "if ( $toclevel ) $prevlevel = $level;" but at end of block
// Tfds.Write(lvl, prv_lvl, lvl, toc_lvl, Int_.Ary_concat(",", lvl_count), Int_.Ary_concat(",", sub_lvl_count));
// Tfds.Write(lvl, prv_lvl, lvl, toc_lvl, Int_ary_.To_str(",", lvl_count), Int_ary_.To_str(",", sub_lvl_count));
int[] copy = new int[toc_lvl];
Int_.Ary_copy_to(sub_lvl_count, toc_lvl, copy);
Int_ary_.Copy_to(sub_lvl_count, toc_lvl, copy);
rv.Set__lvl(++uid, toc_lvl, copy);
}
}

@ -18,32 +18,32 @@ import org.junit.*; import gplx.core.tests.*;
public class Xoh_toc_wkr__lvl__basic__tst {
@Before public void init() {fxt.Clear();} private final Xoh_toc_wkr__lvl__fxt fxt = new Xoh_toc_wkr__lvl__fxt();
@Test public void D1_S0_S0() {
fxt.Test__calc(2, fxt.Make(1, 1, Int_.Ary(1)));
fxt.Test__calc(2, fxt.Make(2, 1, Int_.Ary(2)));
fxt.Test__calc(2, fxt.Make(3, 1, Int_.Ary(3)));
fxt.Test__calc(2, fxt.Make(1, 1, Int_ary_.New(1)));
fxt.Test__calc(2, fxt.Make(2, 1, Int_ary_.New(2)));
fxt.Test__calc(2, fxt.Make(3, 1, Int_ary_.New(3)));
}
@Test public void D1_D1_D1() {
fxt.Test__calc(2, fxt.Make(1, 1, Int_.Ary(1)));
fxt.Test__calc(3, fxt.Make(2, 2, Int_.Ary(1, 1)));
fxt.Test__calc(4, fxt.Make(3, 3, Int_.Ary(1, 1, 1)));
fxt.Test__calc(2, fxt.Make(1, 1, Int_ary_.New(1)));
fxt.Test__calc(3, fxt.Make(2, 2, Int_ary_.New(1, 1)));
fxt.Test__calc(4, fxt.Make(3, 3, Int_ary_.New(1, 1, 1)));
}
@Test public void D1_D1_S0_U1() {
fxt.Test__calc(2, fxt.Make(1, 1, Int_.Ary(1)));
fxt.Test__calc(3, fxt.Make(2, 2, Int_.Ary(1, 1)));
fxt.Test__calc(3, fxt.Make(3, 2, Int_.Ary(1, 2)));
fxt.Test__calc(2, fxt.Make(4, 1, Int_.Ary(2)));
fxt.Test__calc(2, fxt.Make(1, 1, Int_ary_.New(1)));
fxt.Test__calc(3, fxt.Make(2, 2, Int_ary_.New(1, 1)));
fxt.Test__calc(3, fxt.Make(3, 2, Int_ary_.New(1, 2)));
fxt.Test__calc(2, fxt.Make(4, 1, Int_ary_.New(2)));
}
@Test public void D1_D1_U1_D1() {
fxt.Test__calc(2, fxt.Make(1, 1, Int_.Ary(1)));
fxt.Test__calc(3, fxt.Make(2, 2, Int_.Ary(1, 1)));
fxt.Test__calc(2, fxt.Make(3, 1, Int_.Ary(2)));
fxt.Test__calc(3, fxt.Make(4, 2, Int_.Ary(2, 1)));
fxt.Test__calc(2, fxt.Make(1, 1, Int_ary_.New(1)));
fxt.Test__calc(3, fxt.Make(2, 2, Int_ary_.New(1, 1)));
fxt.Test__calc(2, fxt.Make(3, 1, Int_ary_.New(2)));
fxt.Test__calc(3, fxt.Make(4, 2, Int_ary_.New(2, 1)));
}
@Test public void D1_D1_D1_U2() {
fxt.Test__calc(2, fxt.Make(1, 1, Int_.Ary(1)));
fxt.Test__calc(3, fxt.Make(2, 2, Int_.Ary(1, 1)));
fxt.Test__calc(4, fxt.Make(3, 3, Int_.Ary(1, 1, 1)));
fxt.Test__calc(2, fxt.Make(4, 1, Int_.Ary(2)));
fxt.Test__calc(2, fxt.Make(1, 1, Int_ary_.New(1)));
fxt.Test__calc(3, fxt.Make(2, 2, Int_ary_.New(1, 1)));
fxt.Test__calc(4, fxt.Make(3, 3, Int_ary_.New(1, 1, 1)));
fxt.Test__calc(2, fxt.Make(4, 1, Int_ary_.New(2)));
}
}
class Xoh_toc_wkr__lvl__fxt {

@ -175,7 +175,7 @@ public class Xosync_img_src_parser {
}
private boolean Check_md5() { // check if md5; also, skip past md5; EX: "a/a0/"
int pos = rdr.Pos();
if (!Byte_.Eq_many(Byte_ascii.Slash, raw[pos + 1], raw[pos + 4])) return false; // check slashes
if (!Byte_.Match_all(Byte_ascii.Slash, raw[pos + 1], raw[pos + 4])) return false; // check slashes
byte b_0 = raw[pos + 0], b_2 = raw[pos + 2];
if (b_0 != b_2) return false; // WM repeats 1st MD5 char; EX: "a" in "a/a0"
if (!gplx.core.encoders.Hex_utl_.Is_hex_many(b_0, b_2, raw[pos + 3])) return false; // check rest is hex

@ -28,10 +28,10 @@ public class Srch_urlbar_mgr implements Gfo_invk { // NOTE: needs to be app-leve
private final Srch_ns_mgr ns_mgr = new Srch_ns_mgr().Add_main_if_empty();
private Srch_crt_scanner_syms syms = Srch_crt_scanner_syms.New__dflt();
private void Ns_ids_(String s) {
int[] ns_ids = Int_.Ary_empty;
int[] ns_ids = Int_ary_.Empty;
if (String_.Eq(s, "*")) {} // leave as int[0]; ns_mgr will interpret as wildcard
else {
ns_ids = Int_.Ary_parse(s, ",");
ns_ids = Int_ary_.Parse(s, ",");
}
ns_mgr.Add_by_int_ids(ns_ids);
if (addon != null) addon.Clear_rslts_cache(); // invalidate cache when ns changes; else ns_0 rslts will show up in ns_100; DATE:2016-03-24

@ -81,8 +81,8 @@ public class Srch_ns_mgr {
}
}
public int[] To_int_ary() {
if (ns_all) return Int_.Ary_empty;
else if (ns_main) return Int_.Ary(Xow_ns_.Tid__main);
if (ns_all) return Int_ary_.Empty;
else if (ns_main) return Int_ary_.New(Xow_ns_.Tid__main);
else {
int len = ns_hash.Count();
int[] rv = new int[len];

@ -25,7 +25,7 @@ public class Xoa_fmtr_itm implements Gfo_invk {
}
public String Run() {
Gfo_invk src_invk = (Gfo_invk)app.Gfs_mgr().Run_str(src);
int len = Int_.cast(Gfo_invk_.Invk_by_key(src_invk, Invk_len));
int len = Int_.Cast(Gfo_invk_.Invk_by_key(src_invk, Invk_len));
Bry_bfr bfr = Bry_bfr_.New();
Bfmtr_eval_invk eval_mgr = new Bfmtr_eval_invk(app);
Bry_fmtr fmtr = Bry_fmtr.new_bry_(fmt).Eval_mgr_(eval_mgr);

@ -176,7 +176,7 @@ public class Xow_url_parser {
}
if (xwiki != null) return true;
if (app.Wiki_mgri().Has(domain)) return true;
return Byte_.In(tmp_protocol_tid, Gfo_protocol_itm.Tid_http, Gfo_protocol_itm.Tid_https);
return Byte_.Match_any(tmp_protocol_tid, Gfo_protocol_itm.Tid_http, Gfo_protocol_itm.Tid_https);
}
private void Bld_page(int bgn_seg) {
tmp_tid = Xoa_url_.Tid_page;

@ -28,7 +28,7 @@ public class Xoa_version_ {
for (int i = 0; i < lhs_ary_len; ++i) {
String lhs_itm = lhs_ary[i];
String rhs_itm = rhs_ary[i];
int itm_comp = Int_.Compare(Int_.parse_or(lhs_itm, 0), Int_.parse_or(rhs_itm, 0));
int itm_comp = Int_.Compare(Int_.Parse_or(lhs_itm, 0), Int_.Parse_or(rhs_itm, 0));
if (itm_comp != CompareAble_.Same) return itm_comp;
}
return CompareAble_.Same;

@ -56,7 +56,7 @@ public class Xob_ns_to_db_mgr {
return rv;
}
private Xow_db_file Init_db(Xob_ns_file_itm ns_file_itm) {
Xow_db_file rv = db_mgr.Dbs__make_by_tid(ns_file_itm.Db_file_tid(), Int_.To_str(ns_file_itm.Ns_ids(), "|"), ns_file_itm.Nth_db_idx(), ns_file_itm.Make_file_name());
Xow_db_file rv = db_mgr.Dbs__make_by_tid(ns_file_itm.Db_file_tid(), Int_ary_.To_str("|", ns_file_itm.Ns_ids()), ns_file_itm.Nth_db_idx(), ns_file_itm.Make_file_name());
ns_file_itm.Nth_db_id_(rv.Id());
Init_tbl(rv);
return rv;

@ -42,7 +42,7 @@ public class Xob_ns_file_itm_parser extends Dsv_wkr_base {
for (int i = 0; i < len; ++i) {
Xow_ns ns = ns_mgr.Ords_get_at(i);
int ns_id = ns.Id();
rslts.Add(new Xob_ns_file_itm(db_file_tid, "ns." + Int_.To_str_pad_bgn_zero(ns_id, 3), Int_.Ary(ns_id)));
rslts.Add(new Xob_ns_file_itm(db_file_tid, "ns." + Int_.To_str_pad_bgn_zero(ns_id, 3), Int_ary_.New(ns_id)));
}
return;
}
@ -65,7 +65,7 @@ public class Xob_ns_file_itm_parser extends Dsv_wkr_base {
ns_ids[i] = ns_mgr.Ords_get_at(i).Id();
}
else
ns_ids = Int_.Ary_parse(String_.new_u8(ns_ids_bry), ",");
ns_ids = Int_ary_.Parse(String_.new_u8(ns_ids_bry), ",");
if (ns_ids.length == 0) throw Err_.new_wo_type("map.invalid.ns_missing", "src", this.Src());
if (String_.Len_eq_0(name)) { // no name; auto-generate
int ns_id_1st = ns_ids[0]; // take 1st ns_id

@ -18,7 +18,7 @@ import gplx.xowa.bldrs.wkrs.*;
public class Xob_diff_build_cmd implements Xob_cmd {
private final Xob_bldr bldr; private final Xowe_wiki wiki;
private String prev_url, curr_url, diff_url; private int commit_interval;
private int[] db_ids = Int_.Ary_empty; private String bld_name = "all";
private int[] db_ids = Int_ary_.Empty; private String bld_name = "all";
public Xob_diff_build_cmd(Xob_bldr bldr, Xowe_wiki wiki) {this.bldr = bldr; this.wiki = wiki;}
public String Cmd_key() {return Xob_cmd_keys.Key_diff_build;}
public Xob_cmd Cmd_clone(Xob_bldr bldr, Xowe_wiki wiki) {return null;}
@ -30,7 +30,7 @@ public class Xob_diff_build_cmd implements Xob_cmd {
else if (ctx.Match(k, Invk__curr_url_)) curr_url = m.ReadStr("v");
else if (ctx.Match(k, Invk__diff_url_)) diff_url = m.ReadStr("v");
else if (ctx.Match(k, Invk__commit_interval_)) commit_interval = m.ReadInt("v");
else if (ctx.Match(k, Invk__db_ids_)) db_ids = Int_.Ary_parse(m.ReadStr("v"), "|");
else if (ctx.Match(k, Invk__db_ids_)) db_ids = Int_ary_.Parse(m.ReadStr("v"), "|");
else if (ctx.Match(k, Invk__bld_name_)) bld_name = m.ReadStr("v");
else return Gfo_invk_.Rv_unhandled;
return this;

@ -71,7 +71,7 @@ public class Xob_siteinfo_parser_ {
String ns_id = itm_nde.Atrs().FetchValOr("key", null); if (ns_id == null) throw Err_.new_("Xob_siteinfo_parser_", "missing key for ns", "ns_xml", itm_nde.Text_inner());
String case_match = itm_nde.Atrs().FetchValOr("case", case_dflt); // NOTE: some dumps can omit "case"; EX: https://dumps.wikimedia.org/sep11wiki; DATE:2015-11-01
String name = itm_nde.Text_inner();
ns_mgr.Add_new(Int_.parse(ns_id), Bry_.new_u8(name), Xow_ns_case_.To_tid(case_match), false);
ns_mgr.Add_new(Int_.Parse(ns_id), Bry_.new_u8(name), Xow_ns_case_.To_tid(case_match), false);
}
ns_mgr.Init_w_defaults();
}

@ -130,7 +130,7 @@ public class Xoa_css_img_downloader {
bfr.Add(css_trg_bry).Add_byte_nl();
bfr.Add_byte_nl();
int semic_pos = Bry_find_.Find_fwd(src, Byte_ascii.Semic, find_bgn + url_raw.length, src_len);
return semic_pos + Int_.Const_dlm_len;
return semic_pos + Byte_ascii.Len_1;
}
private static final byte[]
Wikisource_dynimg_ttl = Bry_.new_a7("en.wikisource.org/w/index.php?title=MediaWiki:Dynimg.css")

@ -29,7 +29,7 @@ class Xosql_tbl_parser {
byte[] line = lines[i];
// get fld bgn / end; EX: "`fld_1`"
int bgn = Bry_find_.Find_fwd(line, Byte_ascii.Tick); if (bgn == Bry_find_.Not_found) continue; // skip blank lines
bgn += Int_.Const_position_after_char;
bgn += Int_.Offset_1;
int end = Bry_find_.Find_fwd(line, Byte_ascii.Tick, bgn); if (end == Bry_find_.Not_found) continue; // skip blank lines
// add fld

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save