mirror of
https://github.com/gnosygnu/xowa.git
synced 2024-09-28 22:40:50 +00:00
Refactor: Clean up Int_ classes
This commit is contained in:
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
|
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
|
||||||
*/
|
*/
|
||||||
package gplx;
|
package gplx;
|
||||||
import gplx.langs.gfs.*;
|
public class Bool_ {//RF:2017-10-08
|
||||||
public class Bool_ {
|
|
||||||
public static final String Cls_val_name = "bool";
|
public static final String Cls_val_name = "bool";
|
||||||
public static final Class<?> Cls_ref_type = Boolean.class;
|
public static final Class<?> Cls_ref_type = Boolean.class;
|
||||||
|
|
||||||
public static final boolean N = false , Y = true;
|
public static final boolean N = false , Y = true;
|
||||||
public static final byte N_byte = 0 , Y_byte = 1 , __byte = 127;
|
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 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 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 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 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(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 Cast_or(Object obj, boolean or) {try {return (Boolean)obj;} catch (Exception e) {Err_.Noop(e); return or;}}
|
||||||
|
|
||||||
public static boolean Parse(String raw) {
|
public static boolean Parse(String raw) {
|
||||||
if ( String_.Eq(raw, True_str)
|
if ( String_.Eq(raw, True_str)
|
||||||
|| String_.Eq(raw, "True") // needed for Store_Wtr(){boolVal.toString();}
|
|| String_.Eq(raw, "True") // needed for Store_Wtr(){boolVal.toString();}
|
||||||
@ -49,13 +56,10 @@ public class Bool_ {
|
|||||||
return false;
|
return false;
|
||||||
return or;
|
return or;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int Compare(boolean lhs, boolean rhs) {
|
public static int Compare(boolean lhs, boolean rhs) {
|
||||||
if ( lhs == rhs) return CompareAble_.Same;
|
if ( lhs == rhs) return CompareAble_.Same;
|
||||||
else if (!lhs && rhs) return CompareAble_.Less;
|
else if (!lhs && rhs) return CompareAble_.Less;
|
||||||
else /*lhs && !rhs*/ return CompareAble_.More;
|
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) {
|
for (int i = 0; i < len; ++i) {
|
||||||
Object itm = ary[i];
|
Object itm = ary[i];
|
||||||
Class<?> type = Type_.Type_by_obj(itm);
|
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, String.class)) bfr.Add_str_u8((String)itm);
|
||||||
else if (Type_.Eq(type, byte[].class)) bfr.Add((byte[])itm);
|
else if (Type_.Eq(type, byte[].class)) bfr.Add((byte[])itm);
|
||||||
else throw Err_.new_unhandled(Type_.Canonical_name(type));
|
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)'|'));}
|
} 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() {
|
@Test public void ReadCsvInt() {
|
||||||
tst_ReadCsvInt("1234567890");
|
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() {
|
@Test public void Trim() {
|
||||||
Trim_tst("a b c", 1, 4, "b");
|
Trim_tst("a b c", 1, 4, "b");
|
||||||
Trim_tst("a c", 1, 3, "");
|
Trim_tst("a c", 1, 3, "");
|
||||||
|
@ -453,8 +453,8 @@ public class Bry_bfr {
|
|||||||
if (o == null) return this; // treat null as empty String;
|
if (o == null) return this; // treat null as empty String;
|
||||||
Class<?> o_type = o.getClass();
|
Class<?> o_type = o.getClass();
|
||||||
if (o_type == byte[].class) Add((byte[])o);
|
if (o_type == byte[].class) Add((byte[])o);
|
||||||
else if (o_type == Integer.class) Add_int_variable(Int_.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 == Byte.class) Add_byte(Byte_.Cast(o));
|
||||||
else if (o_type == Long.class) Add_long_variable(Long_.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 == String.class) Add_str_u8((String)o);
|
||||||
else if (o_type == Bry_bfr.class) Add_bfr_and_preserve((Bry_bfr)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;
|
if (o == null) return this; // treat null as empty String;
|
||||||
Class<?> o_type = o.getClass();
|
Class<?> o_type = o.getClass();
|
||||||
if (o_type == byte[].class) Add((byte[])o);
|
if (o_type == byte[].class) Add((byte[])o);
|
||||||
else if (o_type == Integer.class) Add_int_variable(Int_.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 == Byte.class) Add_byte(Byte_.Cast(o));
|
||||||
else if (o_type == Long.class) Add_long_variable(Long_.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 == String.class) Add_str_u8((String)o);
|
||||||
else if (o_type == Bry_bfr.class) Add_bfr_and_preserve((Bry_bfr)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) {
|
void Add_int_variable(int val) {
|
||||||
bb.Clear();
|
bb.Clear();
|
||||||
bb.Add_int_variable(val);
|
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_len3() {tst_Add_int_fixed(123, 3, "123");}
|
||||||
@Test public void Add_int_fixed_pad_1() {tst_Add_int_fixed(2, 1, "2");}
|
@Test public void Add_int_fixed_pad_1() {tst_Add_int_fixed(2, 1, "2");}
|
||||||
|
@ -14,9 +14,10 @@ GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt
|
|||||||
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
|
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
|
||||||
*/
|
*/
|
||||||
package gplx;
|
package gplx;
|
||||||
public class Byte_ {
|
public class Byte_ {//RF:2017-10-08
|
||||||
public static final String Cls_val_name = "byte";
|
public static final String Cls_val_name = "byte";
|
||||||
public static final Class<?> Cls_ref_type = Byte.class;
|
public static final Class<?> Cls_ref_type = Byte.class;
|
||||||
|
|
||||||
public static final byte
|
public static final byte
|
||||||
Zero = 0
|
Zero = 0
|
||||||
, Min_value = Byte.MIN_VALUE
|
, Min_value = Byte.MIN_VALUE
|
||||||
@ -24,32 +25,37 @@ public class Byte_ {
|
|||||||
, Val_128 = -128
|
, Val_128 = -128
|
||||||
, Val_255 = -1
|
, 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 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 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 String To_str(byte v) {return new Byte(v).toString();}
|
||||||
public static byte[] To_bry(byte v) {return new byte[] {v};}
|
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)
|
for (byte itm : ary)
|
||||||
if (v == itm) return true;
|
if (v == itm) return true;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
public static boolean Eq_many(byte v, byte... ary) {
|
public static boolean Match_all(byte v, byte... ary) {
|
||||||
for (byte itm : ary)
|
for (byte itm : ary)
|
||||||
if (v != itm) return false;
|
if (v != itm) return false;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int Compare(byte lhs, byte rhs) {
|
public static int Compare(byte lhs, byte rhs) {
|
||||||
if (lhs == rhs) return CompareAble_.Same;
|
if (lhs == rhs) return CompareAble_.Same;
|
||||||
else if (lhs < rhs) return CompareAble_.Less;
|
else if (lhs < rhs) return CompareAble_.Less;
|
||||||
else return CompareAble_.More;
|
else return CompareAble_.More;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static byte[] Ary(byte... ary) {return ary;}
|
public static byte[] Ary(byte... ary) {return ary;}
|
||||||
public static byte[] Ary_by_ints(int... ary) {
|
public static byte[] Ary_by_ints(int... ary) {
|
||||||
int ary_len = ary.length;
|
int ary_len = ary.length;
|
||||||
|
@ -43,6 +43,8 @@ public class Byte_ascii {
|
|||||||
public static final byte
|
public static final byte
|
||||||
Angle_bgn = Lt, Angle_end = Gt
|
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 final byte Max_7_bit = (byte)127, Ascii_min = 0, Ascii_max = 127;
|
||||||
public static boolean Is_sym(byte b) {
|
public static boolean Is_sym(byte b) {
|
||||||
switch (b) {
|
switch (b) {
|
||||||
|
@ -131,8 +131,8 @@ class GfoMsg_base implements GfoMsg {
|
|||||||
return this;
|
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 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 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 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 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 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);}
|
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 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 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 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 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 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);}
|
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,10 +258,10 @@ class XtoStrWkr_gplx implements XtoStrWkr {
|
|||||||
if (o == null) return "<<NULL>>";
|
if (o == null) return "<<NULL>>";
|
||||||
Class<?> type = Type_.Type_by_obj(o);
|
Class<?> type = Type_.Type_by_obj(o);
|
||||||
String rv = null;
|
String rv = null;
|
||||||
if (type == String.class) rv = String_.cast(o);
|
if (Type_.Eq(type, String_.Cls_ref_type)) rv = String_.cast(o);
|
||||||
else if (Int_.TypeMatch(type)) return Int_.To_str(Int_.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, Bool_.Cls_ref_type)) return Yn.To_str(Bool_.Cast(o));
|
||||||
else if (type == DateAdp.class) return DateAdp_.cast(o).XtoStr_gplx();
|
else if (Type_.Eq(type, DateAdp_.Cls_ref_type)) return DateAdp_.cast(o).XtoStr_gplx();
|
||||||
else rv = Object_.Xto_str_strict_or_empty(o);
|
else rv = Object_.Xto_str_strict_or_empty(o);
|
||||||
return String_.Replace(rv, "'", "''");
|
return String_.Replace(rv, "'", "''");
|
||||||
}
|
}
|
||||||
|
@ -18,47 +18,44 @@ import gplx.core.strings.*; import gplx.langs.gfs.*;
|
|||||||
public class Int_ {
|
public class Int_ {
|
||||||
public static final String Cls_val_name = "int";
|
public static final String Cls_val_name = "int";
|
||||||
public static final Class<?> Cls_ref_type = Integer.class;
|
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
|
||||||
public static final int Const_position_after_char = 1;
|
Min_value = Integer.MIN_VALUE
|
||||||
public static final int Null = Int_.Min_value;
|
, Max_value = Integer.MAX_VALUE
|
||||||
public static int coerce_(Object v) {
|
, Max_value__31 = 2147483647
|
||||||
try {String s = String_.as_(v); return s == null ? Int_.cast(v) : Int_.parse(s);}
|
, 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 int Cast_or(Object obj, int or) {
|
||||||
|
try {
|
||||||
|
return (Integer)obj;
|
||||||
|
}
|
||||||
|
catch(Exception e) {
|
||||||
|
Err_.Noop(e);
|
||||||
|
return or;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
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);}
|
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 Parse(String raw) {try {return Integer.parseInt(raw);} catch(Exception e) {throw Err_.new_parse_exc(e, int.class, raw);}}
|
||||||
public static int[] Ary_copy(int[] ary) {return Ary_copy(ary, ary.length);}
|
public static int Parse_or(String raw, int or) {
|
||||||
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 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);
|
|
||||||
}
|
|
||||||
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 boolean Bounds_chk(int bgn, int end, int len) {return bgn > -1 && end < len;}
|
|
||||||
public static int parse_or(String raw, int or) {
|
|
||||||
if (raw == null) return or;
|
if (raw == null) return or;
|
||||||
int rawLen = String_.Len(raw); if (rawLen == 0) return or;
|
int rawLen = String_.Len(raw); if (rawLen == 0) return or;
|
||||||
int rv = 0, tmp = 0, factor = 1;
|
int rv = 0, tmp = 0, factor = 1;
|
||||||
@ -75,15 +72,95 @@ public class Int_ {
|
|||||||
}
|
}
|
||||||
return rv;
|
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 comp0, int comp1) {return v == comp0 || v == comp1;}
|
||||||
public static boolean In(int v, int... ary) {
|
public static boolean In(int v, int... ary) {
|
||||||
for (int itm : ary)
|
for (int itm : ary)
|
||||||
if (v == itm) return true;
|
if (v == itm) return true;
|
||||||
return false;
|
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 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 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) {
|
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");
|
int len = ary.length; if (len == 0) throw Err_.new_wo_type("Min_many requires at least 1 value");
|
||||||
boolean init = true;
|
boolean init = true;
|
||||||
@ -101,16 +178,8 @@ public class Int_ {
|
|||||||
}
|
}
|
||||||
return min;
|
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 int Subtract_long(long lhs, long rhs) {return (int)(lhs - rhs);}
|
||||||
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 Div(int v, float divisor) {return (int)((float)v / divisor);}
|
public static int Div(int v, float divisor) {return (int)((float)v / divisor);}
|
||||||
public static int DivAndRoundUp(int v, int divisor) {
|
public static int DivAndRoundUp(int v, int divisor) {
|
||||||
int whole = v / 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
|
float product = ((float)v * multiplier); // WORKAROUND (DotNet): (int)((float)v * multiplier) returns 0 for 100 and .01f
|
||||||
return (int)product;
|
return (int)product;
|
||||||
}
|
}
|
||||||
public static int Compare(int lhs, int rhs) {
|
|
||||||
if (lhs == rhs) return CompareAble_.Same;
|
public static int[] Log10Ary = new int[] {1, 10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000, 1000000000, Int_.Max_value};
|
||||||
else if (lhs < rhs) return CompareAble_.Less;
|
public static int Log10AryLen = 11;
|
||||||
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 Log10(int v) {
|
public static int Log10(int v) {
|
||||||
if (v == 0) return 0;
|
if (v == 0) return 0;
|
||||||
int sign = 1;
|
int sign = 1;
|
||||||
@ -148,124 +211,10 @@ public class Int_ {
|
|||||||
if (v < Log10Ary[i]) {rv = i - 1; break;}
|
if (v < Log10Ary[i]) {rv = i - 1; break;}
|
||||||
}
|
}
|
||||||
return rv * sign;
|
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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static int DigitCount(int v) {
|
||||||
|
int log10 = Log10(v);
|
||||||
|
return v > -1 ? log10 + 1 : log10 * -1 + 2;
|
||||||
}
|
}
|
||||||
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 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.*;
|
import org.junit.*;
|
||||||
public class Int__tst {
|
public class Int__tst {
|
||||||
@Test public void XtoStr_PadBgn() {
|
@Test public void XtoStr_PadBgn() {
|
||||||
// tst_XtoStr_PadLeft_Zeroes(1 , 3, "001"); // pad
|
tst_XtoStr_PadLeft_Zeroes(1 , 3, "001"); // pad
|
||||||
// tst_XtoStr_PadLeft_Zeroes(123 , 3, "123"); // no 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(1234 , 3, "1234"); // val exceeds pad; confirm noop
|
||||||
tst_XtoStr_PadLeft_Zeroes(-1 , 3, "-01"); // negative
|
tst_XtoStr_PadLeft_Zeroes(-1 , 3, "-01"); // negative
|
||||||
tst_XtoStr_PadLeft_Zeroes(-12 , 3, "-12"); // negative
|
tst_XtoStr_PadLeft_Zeroes(-12 , 3, "-12"); // negative
|
||||||
tst_XtoStr_PadLeft_Zeroes(-123 , 3, "-123"); // negative
|
tst_XtoStr_PadLeft_Zeroes(-123 , 3, "-123"); // negative
|
||||||
@ -29,7 +29,7 @@ public class Int__tst {
|
|||||||
tst_ParseOr("", -1); // empty
|
tst_ParseOr("", -1); // empty
|
||||||
tst_ParseOr("123", 123); // single
|
tst_ParseOr("123", 123); // single
|
||||||
tst_ParseOr("1a", -1); // fail
|
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() {
|
@Test public void Between() {
|
||||||
tst_Between(1, 0, 2, true); // simple true
|
tst_Between(1, 0, 2, true); // simple true
|
||||||
tst_Between(3, 0, 2, false); // simple false
|
tst_Between(3, 0, 2, false); // simple false
|
||||||
@ -40,9 +40,6 @@ public class Int__tst {
|
|||||||
tst_XtoStr_fmt(1, "1");
|
tst_XtoStr_fmt(1, "1");
|
||||||
tst_XtoStr_fmt(1000, "1,000");
|
tst_XtoStr_fmt(1000, "1,000");
|
||||||
} void tst_XtoStr_fmt(int v, String expd) {Tfds.Eq(expd, Int_.To_str_fmt(v, "#,###"));}
|
} 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() {
|
@Test public void Log10_pos() {
|
||||||
tst_Log10(0, 0);
|
tst_Log10(0, 0);
|
||||||
tst_Log10(1, 0);
|
tst_Log10(1, 0);
|
||||||
@ -96,18 +93,5 @@ public class Int__tst {
|
|||||||
}
|
}
|
||||||
@Test public void Xto_int_hex_tst() {
|
@Test public void Xto_int_hex_tst() {
|
||||||
Xto_int_hex("007C", 124);
|
Xto_int_hex("007C", 124);
|
||||||
} void Xto_int_hex(String raw, int expd) {Tfds.Eq(expd, Int_.To_int_hex(Bry_.new_a7(raw)));}
|
} void Xto_int_hex(String raw, int expd) {Tfds.Eq(expd, Int_.By_hex_bry(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));}
|
|
||||||
}
|
}
|
||||||
|
@ -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
|
GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt
|
||||||
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
|
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
|
||||||
*/
|
*/
|
||||||
package gplx.core.primitives; import gplx.*; import gplx.core.*;
|
package gplx;
|
||||||
public class Int_ary_ {
|
import gplx.core.strings.*;
|
||||||
public static int[] Parse_list_or(byte[] src, int[] or) {
|
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 {
|
try {
|
||||||
if (Bry_.Len_eq_0(src)) return or; // null, "" should return [0]
|
if (Bry_.Len_eq_0(src)) return or; // null, "" should return [0]
|
||||||
int raw_len = src.length;
|
int raw_len = src.length;
|
58
100_core/src/gplx/Int_ary__tst.java
Normal file
58
100_core/src/gplx/Int_ary__tst.java
Normal file
@ -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();
|
list.Shuffle();
|
||||||
int hasMovedCount = 0;
|
int hasMovedCount = 0;
|
||||||
for (int i = 0; i < list.Count(); i++) {
|
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++;
|
if (val != i) hasMovedCount++;
|
||||||
}
|
}
|
||||||
Tfds.Eq_true(hasMovedCount > 0, "all documents have the same index"); // NOTE: may still fail occasionally (1%)
|
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 class Short_ {
|
||||||
public static final String Cls_val_name = "short";
|
public static final String Cls_val_name = "short";
|
||||||
public static final Class<?> Cls_ref_type = Short.class;
|
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 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;}
|
public static short By_int(int v) {return (short)v;}
|
||||||
}
|
}
|
||||||
|
@ -396,7 +396,7 @@ public class String_ {
|
|||||||
numberStr = "";
|
numberStr = "";
|
||||||
}
|
}
|
||||||
else if (c == bracketEnd) {
|
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
|
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]);
|
aryVal = Object_.Xto_str_strict_or_empty(ary[aryIdx]);
|
||||||
else
|
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
|
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
|
||||||
*/
|
*/
|
||||||
package gplx;
|
package gplx;
|
||||||
public interface To_str_able {
|
public interface To_str_able {//RF:2017-10-08
|
||||||
String To_str();
|
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
|
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
|
||||||
*/
|
*/
|
||||||
package gplx;
|
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;}
|
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
|
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
|
||||||
*/
|
*/
|
||||||
package gplx;
|
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_obj(Object o) {return o.getClass();}
|
||||||
public static Class<?> Type_by_primitive(Object o) {
|
public static Class<?> Type_by_primitive(Object o) {
|
||||||
Class<?> rv = o.getClass();
|
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
|
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
|
||||||
*/
|
*/
|
||||||
package gplx;
|
package gplx;
|
||||||
public class Type_ids_ {
|
public class Type_ids_ {//RF:2017-10-08
|
||||||
public static final int // SERIALIZABLE.N
|
public static final int // SERIALIZABLE.N
|
||||||
Id__obj = 0
|
Id__obj = 0
|
||||||
, Id__null = 1
|
, 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
|
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.mgr_id = mgr_id;
|
||||||
this.reset = reset;
|
this.reset = reset;
|
||||||
this.free = Int_.Ary_empty;
|
this.free = Int_ary_.Empty;
|
||||||
this.free_len = 0;
|
this.free_len = 0;
|
||||||
}
|
}
|
||||||
public Bry_bfr Get() {
|
public Bry_bfr Get() {
|
||||||
@ -66,7 +66,7 @@ public class Bry_bfr_mkr_mgr {
|
|||||||
used[i] = null;
|
used[i] = null;
|
||||||
}
|
}
|
||||||
used = Bry_bfr_.Ary_empty;
|
used = Bry_bfr_.Ary_empty;
|
||||||
free = Int_.Ary_empty;
|
free = Int_ary_.Empty;
|
||||||
free_len = used_len = used_max = 0;
|
free_len = used_len = used_max = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -78,7 +78,7 @@ public class Bry_bfr_mkr_mgr {
|
|||||||
used[i] = null;
|
used[i] = null;
|
||||||
}
|
}
|
||||||
used = Bry_bfr_.Ary_empty;
|
used = Bry_bfr_.Ary_empty;
|
||||||
free = Int_.Ary_empty;
|
free = Int_ary_.Empty;
|
||||||
free_len = 0;
|
free_len = 0;
|
||||||
used_len = used_max = 0;
|
used_len = used_max = 0;
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,7 @@ public class Bfr_arg__int implements Bfr_arg {
|
|||||||
private int val, val_digits;
|
private int val, val_digits;
|
||||||
public Bfr_arg__int(int v) {Set(v);}
|
public Bfr_arg__int(int v) {Set(v);}
|
||||||
public Bfr_arg__int Set(int v) {
|
public Bfr_arg__int Set(int v) {
|
||||||
this.val = Int_.cast(v);
|
this.val = Int_.Cast(v);
|
||||||
this.val_digits = Int_.DigitCount(val);
|
this.val_digits = Int_.DigitCount(val);
|
||||||
return this;
|
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 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));
|
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 + Int_.Const_dlm_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 + 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));
|
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 + Int_.Const_dlm_len, eval_rhs_bgn);
|
byte[] eval_cmd = Bry_.Mid(fmt, eval_lhs_end + Byte_ascii.Len_1, eval_rhs_bgn);
|
||||||
byte[] eval_rslt = eval_mgr.Eval(eval_cmd);
|
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
|
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));
|
list.Add(Bry_fmtr_itm.dat_bry_(eval_rslt));
|
||||||
return eval_rhs_end;
|
return eval_rhs_end;
|
||||||
|
@ -30,7 +30,7 @@ class GfoFldList_base implements GfoFldList {
|
|||||||
public boolean Has(String key) {return hash.Has(key);}
|
public boolean Has(String key) {return hash.Has(key);}
|
||||||
public int Idx_of(String key) {
|
public int Idx_of(String key) {
|
||||||
Object rv = idxs.Get_by(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 Get_at(int i) {return (GfoFld)hash.Get_at(i);}
|
||||||
public GfoFld FetchOrNull(String key) {return (GfoFld)hash.Get_by(key);}
|
public GfoFld FetchOrNull(String key) {return (GfoFld)hash.Get_by(key);}
|
||||||
|
@ -26,6 +26,6 @@ public class IoItmClassXtn extends ClassXtn_base implements ClassXtn {
|
|||||||
else if (String_.Eq(rawLower, "fil")) return IoItmFil.Type_Fil;
|
else if (String_.Eq(rawLower, "fil")) return IoItmFil.Type_Fil;
|
||||||
else throw Err_.new_unhandled(raw);
|
else throw Err_.new_unhandled(raw);
|
||||||
}
|
}
|
||||||
@Override public Object XtoDb(Object obj) {return Int_.cast(obj);}
|
@Override public Object XtoDb(Object obj) {return Int_.Cast(obj);}
|
||||||
public static final IoItmClassXtn Instance = new IoItmClassXtn(); IoItmClassXtn() {}
|
public static final IoItmClassXtn Instance = new IoItmClassXtn(); IoItmClassXtn() {}
|
||||||
}
|
}
|
||||||
|
@ -34,9 +34,9 @@ public class EnmMgr {
|
|||||||
if (prefix != null) term = String_.Replace(term, prefix, "");
|
if (prefix != null) term = String_.Replace(term, prefix, "");
|
||||||
int cur = -1;
|
int cur = -1;
|
||||||
if (String_.Has_at_bgn(term, "#"))
|
if (String_.Has_at_bgn(term, "#"))
|
||||||
cur = Int_.parse(String_.Mid(term, 1));
|
cur = Int_.Parse(String_.Mid(term, 1));
|
||||||
else
|
else
|
||||||
cur = Int_.cast(rawRegy.Get_by(term));
|
cur = Int_.Cast(rawRegy.Get_by(term));
|
||||||
rv |= cur;
|
rv |= cur;
|
||||||
}
|
}
|
||||||
return rv;
|
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.*;
|
package gplx.core.primitives; import gplx.*; import gplx.core.*;
|
||||||
public class Int_list {
|
public class Int_list {
|
||||||
private int capacity = 0;
|
private int capacity = 0;
|
||||||
private int[] ary = Int_.Ary_empty; private int ary_len, ary_max;
|
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() {this.capacity = 0; this.ary = Int_ary_.Empty;}
|
||||||
public Int_list(int capacity) {this.capacity = capacity; this.ary = new int[capacity];}
|
public Int_list(int capacity) {this.capacity = capacity; this.ary = new int[capacity];}
|
||||||
public void Add(int uid) {
|
public void Add(int uid) {
|
||||||
int new_len = ary_len + 1;
|
int new_len = ary_len + 1;
|
||||||
if (new_len > ary_max) {
|
if (new_len > ary_max) {
|
||||||
ary_max += 16;
|
ary_max += 16;
|
||||||
int[] new_ary = new int[ary_max];
|
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 = new_ary;
|
||||||
}
|
}
|
||||||
ary[ary_len] = uid;
|
ary[ary_len] = uid;
|
||||||
@ -34,7 +34,7 @@ public class Int_list {
|
|||||||
public int Get_at(int i) {return ary[i];}
|
public int Get_at(int i) {return ary[i];}
|
||||||
public void Clear() {
|
public void Clear() {
|
||||||
if (ary_len > capacity) {
|
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;
|
ary_len = ary_max = 0;
|
||||||
}
|
}
|
||||||
|
@ -62,12 +62,12 @@ public abstract class DataRdr_base implements SrlMgr {
|
|||||||
|
|
||||||
public int ReadInt(String key) {
|
public int ReadInt(String key) {
|
||||||
Object val = Read(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);}
|
catch (Exception exc) {throw Err_dataRdr_ReadFailed_err(int.class, key, val, exc);}
|
||||||
}
|
}
|
||||||
public int ReadIntOr(String key, int or) {
|
public int ReadIntOr(String key, int or) {
|
||||||
Object val = Read(key); if (val == null) return 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;}
|
catch (Exception exc) {Err_dataRdr_ReadFailed_useOr(exc, int.class, key, val, or); return or;}
|
||||||
}
|
}
|
||||||
public long ReadLongOr(String key, long 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) {
|
@gplx.Virtual public byte ReadByte(String key) {
|
||||||
Object val = Read(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);}
|
catch (Exception exc) {throw Err_dataRdr_ReadFailed_err(byte.class, key, val, exc);}
|
||||||
}
|
}
|
||||||
@gplx.Virtual public byte ReadByteOr(String key, byte or) {
|
@gplx.Virtual public byte ReadByteOr(String key, byte or) {
|
||||||
Object val = Read(key); if (val == null) return 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;}
|
catch (Exception exc) {Err_dataRdr_ReadFailed_useOr(exc, byte.class, key, val, or); return or;}
|
||||||
}
|
}
|
||||||
@gplx.Virtual public DateAdp ReadDate(String key) {
|
@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__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__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__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__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__byte: bfr.Add_int_variable((int)(Byte_.Cast(Array_.Get_at(ary, idx)))); break;
|
||||||
default: throw Err_.new_unhandled_default(type_id);
|
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__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__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__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__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__byte: eq = Byte_.Cast(expd_obj) == Byte_.Cast(actl_obj); break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!eq) {
|
if (!eq) {
|
||||||
|
@ -19,8 +19,8 @@ public class ByteClassXtn extends ClassXtn_base implements ClassXtn {
|
|||||||
public String Key() {return Key_const;}
|
public String Key() {return Key_const;}
|
||||||
@Override public Class<?> UnderClass() {return byte.class;}
|
@Override public Class<?> UnderClass() {return byte.class;}
|
||||||
public Object DefaultValue() {return 0;}
|
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;}}
|
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 ParseOrNull(String raw) {return raw == null ? (Object)null : Byte_.Parse(raw);}
|
||||||
@Override public Object XtoDb(Object obj) {return Byte_.cast(obj);}
|
@Override public Object XtoDb(Object obj) {return Byte_.Cast(obj);}
|
||||||
public static final ByteClassXtn Instance = new ByteClassXtn(); ByteClassXtn() {} // added to ClassXtnPool by default
|
public static final ByteClassXtn Instance = new ByteClassXtn(); ByteClassXtn() {} // added to ClassXtnPool by default
|
||||||
}
|
}
|
@ -18,9 +18,9 @@ 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;}
|
@Override public Class<?> UnderClass() {return Integer.class;}
|
||||||
public Object DefaultValue() {return 0;}
|
public Object DefaultValue() {return 0;}
|
||||||
@Override public Object ParseOrNull(String raw) {return raw == null ? (Object)null : Int_.parse(raw);}
|
@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;}}
|
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 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_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_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 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(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_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));}
|
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) {
|
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));
|
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) {
|
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));
|
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);}
|
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) {
|
private Object Exec_select_as_obj(String sql) {
|
||||||
Db_rdr rdr = Exec_rdr(sql);
|
Db_rdr rdr = Exec_rdr(sql);
|
||||||
|
@ -34,8 +34,8 @@ public class Db_conn_utl {
|
|||||||
Object val = row[j];
|
Object val = row[j];
|
||||||
switch (fld.Type().Tid_ansi()) {
|
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__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__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__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__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__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;
|
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 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 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 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 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 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 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 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 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 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_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);}}
|
@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);
|
int tid = Type_ids_.To_id_by_obj(val);
|
||||||
switch (tid) {
|
switch (tid) {
|
||||||
case Type_ids_.Id__bool: stmt.Val_bool_as_byte (key, Bool_.Cast(val)); break;
|
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__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__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__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__float: stmt.Val_float (key, Float_.cast(val)); break;
|
||||||
case Type_ids_.Id__double: stmt.Val_double (key, Double_.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) {
|
for (int i = 0; i < crt_len; ++i) {
|
||||||
Dbmeta_dat_itm crt = crt_mgr.Get_at(i);
|
Dbmeta_dat_itm crt = crt_mgr.Get_at(i);
|
||||||
switch (crt.Tid) {
|
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();
|
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) {
|
for (int i = 0; i < crt_len; ++i) {
|
||||||
Dbmeta_dat_itm crt = crt_mgr.Get_at(i);
|
Dbmeta_dat_itm crt = crt_mgr.Get_at(i);
|
||||||
switch (crt.Tid) {
|
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();
|
delete.Exec_delete();
|
||||||
|
@ -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
|
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();}
|
@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 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 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 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 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 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 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 int Fld_len() {return row.Len();}
|
||||||
public Object Read_obj(String k) {return row.Get_by(k);}
|
public Object Read_obj(String k) {return row.Get_by(k);}
|
||||||
public Object Read_at(int i) {return row.Get_at(i);}
|
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();
|
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) {
|
@Override public boolean Read_bool_by_byte(String k) {
|
||||||
try {
|
try {
|
||||||
int val = rdr.getInt(k);
|
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 ReadBool(String key) {return ReadBoolOr(key, false);}
|
||||||
@Override public boolean ReadBoolOr(String key, boolean or) {
|
@Override public boolean ReadBoolOr(String key, boolean or) {
|
||||||
Object val = Read(key);
|
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 ReadByte(String key) {return ReadByteOr(key, Byte_.Zero);}
|
||||||
@Override public byte ReadByteOr(String key, byte or) {
|
@Override public byte ReadByteOr(String key, byte or) {
|
||||||
Object val = Read(key);
|
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 ReadLong(String key) {return ReadLongOr(key, Long_.Min_value);}
|
||||||
@Override public long ReadLongOr(String key, long or) {
|
@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__bool:
|
||||||
case Dbmeta_fld_tid.Tid__byte:
|
case Dbmeta_fld_tid.Tid__byte:
|
||||||
case Dbmeta_fld_tid.Tid__short:
|
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__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__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;
|
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;}
|
if (val == null) {bfr.Add(Bry_null); return;}
|
||||||
Class<?> val_type = val.getClass();
|
Class<?> val_type = val.getClass();
|
||||||
if (Type_.Eq(val_type, Int_.Cls_ref_type))
|
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))
|
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"
|
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))
|
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))
|
else if (Type_.Eq(val_type, Float_.Cls_ref_type))
|
||||||
bfr.Add_float(Float_.cast(val));
|
bfr.Add_float(Float_.cast(val));
|
||||||
else if (Type_.Eq(val_type, Byte_.Cls_ref_type))
|
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))
|
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();
|
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))
|
else if (Type_.Eq(val_type, Decimal_adp_.Cls_ref_type))
|
||||||
|
@ -26,15 +26,15 @@ 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 void GroupBy_type(ClassXtn type) {this.Val_type_(IntClassXtn.Instance);}
|
||||||
@Override public Object GroupBy_eval(Object groupByVal, Object curVal, ClassXtn type) {
|
@Override public Object GroupBy_eval(Object groupByVal, Object curVal, ClassXtn type) {
|
||||||
if (groupByVal == null) return 1;
|
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);}
|
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 String XtoSql_functionName() {return "SUM";}
|
||||||
@Override public void GroupBy_type(ClassXtn type) {this.Val_type_(IntClassXtn.Instance);}
|
@Override public void GroupBy_type(ClassXtn type) {this.Val_type_(IntClassXtn.Instance);}
|
||||||
@Override public Object GroupBy_eval(Object groupByVal, Object curVal, ClassXtn type) {
|
@Override public Object GroupBy_eval(Object groupByVal, Object curVal, ClassXtn type) {
|
||||||
if (groupByVal == null) return Int_.cast(curVal);
|
if (groupByVal == null) return Int_.Cast(curVal);
|
||||||
return Int_.cast(groupByVal) + 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;
|
||||||
|
@ -29,9 +29,9 @@ public class Sql_val_wtr {
|
|||||||
int tid_type = Type_ids_.To_id_by_type(val.getClass());
|
int tid_type = Type_ids_.To_id_by_type(val.getClass());
|
||||||
switch (tid_type) {
|
switch (tid_type) {
|
||||||
case Type_ids_.Id__bool: Bld_val__bool (bfr, Bool_.Cast(val)); break;
|
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__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__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__float: Bld_val__float (bfr, Float_.cast(val)); break;
|
||||||
case Type_ids_.Id__double: Bld_val__double (bfr, Double_.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) {
|
public static void Fill_crt(Db_stmt stmt, int tid, String key, Object val) {
|
||||||
switch (tid) {
|
switch (tid) {
|
||||||
case Dbmeta_fld_tid.Tid__bool: stmt.Crt_bool_as_byte (key, Bool_.Cast(val)); break;
|
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__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__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__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__float: stmt.Crt_float (key, Float_.cast(val)); break;
|
||||||
case Dbmeta_fld_tid.Tid__double: stmt.Crt_double (key, Double_.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) {
|
public static void Fill_val(Db_stmt stmt, int tid, String key, Object val) {
|
||||||
switch (tid) {
|
switch (tid) {
|
||||||
case Dbmeta_fld_tid.Tid__bool: stmt.Val_bool_as_byte (key, Bool_.Cast(val)); break;
|
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__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__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__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__float: stmt.Val_float (key, Float_.cast(val)); break;
|
||||||
case Dbmeta_fld_tid.Tid__double: stmt.Val_double (key, Double_.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 void Create_tbl() {conn.Meta_tbl_create(Dbmeta_tbl_itm.New(tbl_name, flds));}
|
||||||
public int Assert_int_or(String key, int or) {
|
public int Assert_int_or(String key, int or) {
|
||||||
String rv = Assert_str_or(key, Int_.To_str(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;}
|
catch (Exception e) {Err_.Noop(e); return or;}
|
||||||
}
|
}
|
||||||
public String Assert_str_or(String key, String or) {
|
public String Assert_str_or(String key, String or) {
|
||||||
|
@ -24,7 +24,7 @@ public class PointAdp_ {
|
|||||||
public static PointAdp parse(String raw) {
|
public static PointAdp parse(String raw) {
|
||||||
try {
|
try {
|
||||||
String[] ary = String_.Split(raw, ",");
|
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);}
|
} 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) {
|
public static RectAdp parse(String raw) {
|
||||||
try {
|
try {
|
||||||
String[] ary = String_.Split(raw, ",");
|
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);}
|
} 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());}
|
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(String raw) {return parse_or(raw, SizeAdp_.Null);}
|
||||||
public static SizeAdp parse_or(String raw, SizeAdp or) {
|
public static SizeAdp parse_or(String raw, SizeAdp or) {
|
||||||
String[] ary = String_.Split(raw, ","); if (ary.length != 2) return 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 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 h = Int_.Parse_or(ary[1], Int_.Min_value); if (h == Int_.Min_value) return or;
|
||||||
return new SizeAdp(w, h);
|
return new SizeAdp(w, h);
|
||||||
}
|
}
|
||||||
public static SizeAdp corners_(PointAdp topLeft, PointAdp bottomRight) {
|
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) {
|
@gplx.Internal protected static ColorAdp parse_int_(String v) {
|
||||||
String[] ary = String_.Split(v, ",");
|
String[] ary = String_.Split(v, ",");
|
||||||
switch (ary.length) {
|
switch (ary.length) {
|
||||||
case 1: return new_int_(Int_.parse(ary[0]));
|
case 1: return new_int_(Int_.Parse(ary[0]));
|
||||||
case 3:
|
case 3:
|
||||||
case 4: return parse_int_ary_(ary);
|
case 4: return parse_int_ary_(ary);
|
||||||
default: throw Err_.new_wo_type("invalid array", "len", ary.length);
|
default: throw Err_.new_wo_type("invalid array", "len", ary.length);
|
||||||
@ -79,10 +79,10 @@ public class ColorAdp_ implements ParseAble {
|
|||||||
int a;
|
int a;
|
||||||
int idx = 0;
|
int idx = 0;
|
||||||
if (ary.length == 3) {idx = 0; a = 255;}
|
if (ary.length == 3) {idx = 0; a = 255;}
|
||||||
else {idx = 1; a = Int_.parse(ary[0]);}
|
else {idx = 1; a = Int_.Parse(ary[0]);}
|
||||||
int r = Int_.parse(ary[idx++]);
|
int r = Int_.Parse(ary[idx++]);
|
||||||
int g = Int_.parse(ary[idx++]);
|
int g = Int_.Parse(ary[idx++]);
|
||||||
int b = Int_.parse(ary[idx++]);
|
int b = Int_.Parse(ary[idx++]);
|
||||||
return ColorAdp_.new_(a, r, g, b);
|
return ColorAdp_.new_(a, r, g, b);
|
||||||
}
|
}
|
||||||
public static ColorAdp new_int_(int val) {
|
public static ColorAdp new_int_(int val) {
|
||||||
|
@ -27,7 +27,7 @@ public class ScreenAdp_ {
|
|||||||
try {
|
try {
|
||||||
raw = String_.Replace(raw, "{screen{", "");
|
raw = String_.Replace(raw, "{screen{", "");
|
||||||
raw = String_.Replace(raw, "}", "");
|
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);}
|
} 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
|
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 (String_.Eq(find, (String)list[i].Val())) idx = i;
|
||||||
}
|
}
|
||||||
if (idx == Int_.Min_value) { // try to find .Text in list.Keys
|
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;
|
idx = GetByKey(key); if (idx == Int_.Min_value) return Gfo_invk_.Rv_unhandled;
|
||||||
}
|
}
|
||||||
ExecCmd(setCmd, idx);
|
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_inc)) ExecCmd(cmd, curVal + 1);
|
||||||
else if (ctx.Match(k, Invk_TxtBox_exec)) {
|
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());
|
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 if (ctx.Match(k, evt)) WhenEvt(ctx, m);
|
||||||
else return Gfo_invk_.Rv_unhandled;
|
else return Gfo_invk_.Rv_unhandled;
|
||||||
|
@ -26,7 +26,7 @@ public class IptMouseWheel_ {
|
|||||||
else throw Err_.new_parse_type(IptMouseWheel.class, raw);
|
else throw Err_.new_parse_type(IptMouseWheel.class, raw);
|
||||||
}
|
}
|
||||||
public static IptMouseWheel api_(Object obj) {
|
public static IptMouseWheel api_(Object obj) {
|
||||||
int delta = Int_.cast(obj);
|
int delta = Int_.Cast(obj);
|
||||||
if (delta > 0) return Up;
|
if (delta > 0) return Up;
|
||||||
else if (delta < 0) return Down;
|
else if (delta < 0) return Down;
|
||||||
else return None;
|
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_location = new Swt_html_lnr_location(this);
|
||||||
lnr_status = new Swt_html_lnr_status(this);
|
lnr_status = new Swt_html_lnr_status(this);
|
||||||
Object browser_tid_obj = ctorArgs.Get_val_or(Swt_kit.Cfg_Html_BrowserType, null);
|
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);
|
browser = new Browser(owner_control.Under_composite(), browser_tid);
|
||||||
core = new Swt_core_cmds_html(this, browser);
|
core = new Swt_core_cmds_html(this, browser);
|
||||||
browser.addKeyListener(new Swt_lnr_key(this));
|
browser.addKeyListener(new Swt_lnr_key(this));
|
||||||
|
@ -37,20 +37,20 @@ public class Bit__tst {
|
|||||||
fxt.Test_shift_rhs(8, 1, 4);
|
fxt.Test_shift_rhs(8, 1, 4);
|
||||||
}
|
}
|
||||||
@Test public void Shift_lhs_to_int() {
|
@Test public void Shift_lhs_to_int() {
|
||||||
int[] shift_ary = Int_.Ary(0, 3, 5);
|
int[] shift_ary = Int_ary_.New(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_.New(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_.New(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_.New(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_.New(0, 0, 1), 32); // 3rd 1 bit
|
||||||
fxt.Test_shift_lhs_to_int(shift_ary, Int_.Ary(7, 3, 1), 63); // many bits
|
fxt.Test_shift_lhs_to_int(shift_ary, Int_ary_.New(7, 3, 1), 63); // many bits
|
||||||
}
|
}
|
||||||
@Test public void Shift_rhs_to_ary() {
|
@Test public void Shift_rhs_to_ary() {
|
||||||
int[] shift_ary = Int_.Ary(0, 3, 5);
|
int[] shift_ary = Int_ary_.New(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, 0, Int_ary_.New(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, 7, Int_ary_.New(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, 24, Int_ary_.New(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, 32, Int_ary_.New(0, 0, 1)); // 3rd 1 bit
|
||||||
fxt.Test_shift_rhs_to_ary(shift_ary, 63, Int_.Ary(7, 3, 1)); // many bits
|
fxt.Test_shift_rhs_to_ary(shift_ary, 63, Int_ary_.New(7, 3, 1)); // many bits
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
class Bit__fxt {
|
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_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_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) {
|
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);
|
Bit_.Shift_rhs_to_ary(actl_ary, shift_ary, val);
|
||||||
Tfds.Eq_ary(expd_ary, actl_ary);
|
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 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_or(String or) {return val == null ? or : (String)val;}
|
||||||
public String Val_as_str() {return (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_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_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);}
|
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.: "//"
|
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"
|
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://"
|
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
|
if (pos < src_end && src[pos] == Byte_ascii.Slash) { // skip slash after colon
|
||||||
pos += 1;
|
pos += 1;
|
||||||
if (pos < src_end && src[pos] == Byte_ascii.Slash) // skip 2nd slash after colon
|
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(String key, int or) {return Read_int_or(Bry_.new_u8(key), or);}
|
||||||
public int Read_int_or(byte[] key, int or) {
|
public int Read_int_or(byte[] key, int or) {
|
||||||
byte[] val = Read_bry_or(key, null);
|
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) {
|
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());
|
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) {
|
public static Int_2_ref parse(String raw) {
|
||||||
try {
|
try {
|
||||||
String[] itms = String_.Split(raw, ",");
|
String[] itms = String_.Split(raw, ",");
|
||||||
int v0 = Int_.parse(itms[0]);
|
int v0 = Int_.Parse(itms[0]);
|
||||||
int v1 = Int_.parse(itms[1]);
|
int v1 = Int_.Parse(itms[1]);
|
||||||
return new Int_2_ref(v0, v1);
|
return new Int_2_ref(v0, v1);
|
||||||
} catch (Exception e) {Err_.Noop(e); throw Err_.new_parse("Int_2_ref", raw);}
|
} 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];
|
Int_2_ref[] rv = new Int_2_ref[itms_len];
|
||||||
for (int i = 0; i < itms_len; i++) {
|
for (int i = 0; i < itms_len; i++) {
|
||||||
String[] vals = String_.Split(itms[i], ",");
|
String[] vals = String_.Split(itms[i], ",");
|
||||||
int v0 = Int_.parse(vals[0]);
|
int v0 = Int_.Parse(vals[0]);
|
||||||
int v1 = Int_.parse(vals[1]);
|
int v1 = Int_.Parse(vals[1]);
|
||||||
rv[i] = new Int_2_ref(v0, v1);
|
rv[i] = new Int_2_ref(v0, v1);
|
||||||
}
|
}
|
||||||
return rv;
|
return rv;
|
||||||
|
@ -23,8 +23,8 @@ public class Int_2_val {
|
|||||||
public static Int_2_val parse(String raw) {
|
public static Int_2_val parse(String raw) {
|
||||||
String[] itms = String_.Split(raw, ',');
|
String[] itms = String_.Split(raw, ',');
|
||||||
if (itms.length != 2) return Null_ptr;
|
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 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 v1 = Int_.Parse_or(itms[1], Int_.Min_value); if (v1 == Int_.Min_value) return Null_ptr;
|
||||||
return new Int_2_val(v0, v1);
|
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();}
|
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) {
|
@Override protected void Ary_len_(int v) {
|
||||||
if (v == 0)
|
if (v == 0)
|
||||||
ary = Int_.Ary_empty;
|
ary = Int_ary_.Empty;
|
||||||
else {
|
else {
|
||||||
ary = new int[v]; // NOTE: always create new array; never reuse;
|
ary = new int[v]; // NOTE: always create new array; never reuse;
|
||||||
ary_idx = 0;
|
ary_idx = 0;
|
||||||
|
@ -17,9 +17,9 @@ package gplx.core.primitives; import gplx.*; import gplx.core.*;
|
|||||||
import org.junit.*; import gplx.core.tests.*;
|
import org.junit.*; import gplx.core.tests.*;
|
||||||
public class Int_ary_parser_tst {
|
public class Int_ary_parser_tst {
|
||||||
private final Int_ary_parser_fxt fxt = new Int_ary_parser_fxt();
|
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 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(1));}
|
@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());}
|
@Test public void None() {fxt.Test__Parse_ary("" , 0, 0, Int_ary_.New());}
|
||||||
}
|
}
|
||||||
class Int_ary_parser_fxt {
|
class Int_ary_parser_fxt {
|
||||||
public void Test__Parse_ary(String raw, int bgn, int end, int[] expd) {
|
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 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 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 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 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_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 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 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 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 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 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 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;}
|
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 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_();}
|
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 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;}
|
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 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 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 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 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 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);}}
|
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 Bgn() {return bgn;} private final int bgn;
|
||||||
public int End() {return end;} private final int end;
|
public int End() {return end;} private final int end;
|
||||||
@Override public void Fmt(Bry_bfr bfr, Object val) {
|
@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(), " ");
|
String val_str = String_.PadBgn(Int_.To_str(val_int), this.Len(), " ");
|
||||||
bfr.Add_str_u8(val_str);
|
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 Msg() {return msg;} public void Msg_(String v) {msg = v;} private String msg;
|
||||||
public String Fill_next(String state) {
|
public String Fill_next(String state) {
|
||||||
String[] vals = String_.Split(state, "|");
|
String[] vals = String_.Split(state, "|");
|
||||||
int val_lo = Int_.parse(vals[0]);
|
int val_lo = Int_.Parse(vals[0]);
|
||||||
int interval = Int_.parse(vals[1]);
|
int interval = Int_.Parse(vals[1]);
|
||||||
int val_hi = val_lo + interval;
|
int val_hi = val_lo + interval;
|
||||||
|
|
||||||
Db_stmt_arg arg = list.Get_at(0);
|
Db_stmt_arg arg = list.Get_at(0);
|
||||||
|
@ -44,7 +44,7 @@ public class Gfs_nde {
|
|||||||
subs[subs_len] = nde;
|
subs[subs_len] = nde;
|
||||||
subs_len = new_len;
|
subs_len = new_len;
|
||||||
return this;
|
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_get_at(int i) {return subs[i];}
|
||||||
public Gfs_nde[] Subs_to_ary() {
|
public Gfs_nde[] Subs_to_ary() {
|
||||||
Gfs_nde[] rv = new Gfs_nde[subs_len];
|
Gfs_nde[] rv = new Gfs_nde[subs_len];
|
||||||
@ -71,7 +71,7 @@ public class Gfs_nde {
|
|||||||
args[args_len] = nde;
|
args[args_len] = nde;
|
||||||
args_len = new_len;
|
args_len = new_len;
|
||||||
return this;
|
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() {
|
public Gfs_nde[] Atrs_to_ary() {
|
||||||
Gfs_nde[] rv = new Gfs_nde[args_len];
|
Gfs_nde[] rv = new Gfs_nde[args_len];
|
||||||
for (int i = 0; i < args_len; i++)
|
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 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 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 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;
|
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;
|
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
|
if (hex_val == -1) { // invalid hex byte; EX: %GC; DATE:2014-04-10
|
||||||
bfr.Add_byte(b);
|
bfr.Add_byte(b);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
int v_0 = hex_val * 16;
|
int v_0 = hex_val * 16;
|
||||||
if (v_0 != -1) {
|
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) {
|
if (v_1 != -1) {
|
||||||
bfr.Add_byte((byte)(v_0 + v_1));
|
bfr.Add_byte((byte)(v_0 + v_1));
|
||||||
return 2;
|
return 2;
|
||||||
|
@ -164,8 +164,8 @@ public class Json_wtr {
|
|||||||
switch (type_tid) {
|
switch (type_tid) {
|
||||||
case Type_ids_.Id__null: bfr.Add(Object_.Bry__null); break;
|
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__bool: bfr.Add_bool(Bool_.Cast(obj)); break;
|
||||||
case Type_ids_.Id__byte: bfr.Add_byte(Byte_.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__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__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__float: bfr.Add_float(Float_.cast(obj)); break;
|
||||||
case Type_ids_.Id__double: bfr.Add_double(Double_.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);
|
val = Xto_kv_ary(ary);
|
||||||
break;
|
break;
|
||||||
case Php_srl_itm_.Tid_function:
|
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;
|
break;
|
||||||
default:
|
default:
|
||||||
val = itm_val.Val();
|
val = itm_val.Val();
|
||||||
|
@ -123,7 +123,7 @@ public class Php_text_itm_parser {
|
|||||||
private void Parse_utf16(List_adp rv, byte[] src, int bgn, int src_len) {
|
private void Parse_utf16(List_adp rv, byte[] src, int bgn, int src_len) {
|
||||||
int end = bgn + 4;
|
int end = bgn + 4;
|
||||||
if (end >= src_len) throw Err_.new_wo_type("utf16_parse", "src", String_.new_u8(src));
|
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);
|
byte[] literal = gplx.core.intls.Utf16_.Encode_int_to_bry(v);
|
||||||
rv.Add(new Php_text_itm_utf16(bgn, end, literal));
|
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) {
|
public int Get_int_app_or(String key, int or) {
|
||||||
String rv = cache_mgr.Get_or(Ctx__app, key, null);
|
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) {
|
public long Get_long_app_or(String key, long or) {
|
||||||
String rv = cache_mgr.Get_or(Ctx__app, key, null);
|
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) {
|
public int Get_int_wiki_or(Xow_wiki wiki, String key, int or) {
|
||||||
String rv = Get_str(wiki.Domain_itm().Abrv_xo_str(), key);
|
String rv = Get_str(wiki.Domain_itm().Abrv_xo_str(), key);
|
||||||
try {return Int_.parse(rv);}
|
try {return Int_.Parse(rv);}
|
||||||
catch (Exception exc) {
|
catch (Exception exc) {
|
||||||
Err_.Noop(exc);
|
Err_.Noop(exc);
|
||||||
Gfo_usr_dlg_.Instance.Warn_many("", "", "cfg:failed to parse int; key=~{0} val=~{1}", key, rv);
|
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) {
|
public int Get_int_or(String ctx, String key, int or) {
|
||||||
String rv = cache_mgr.Get(ctx, key);
|
String rv = cache_mgr.Get(ctx, key);
|
||||||
try {return Int_.parse(rv);}
|
try {return Int_.Parse(rv);}
|
||||||
catch (Exception exc) {
|
catch (Exception exc) {
|
||||||
Err_.Noop(exc);
|
Err_.Noop(exc);
|
||||||
Gfo_usr_dlg_.Instance.Warn_many("", "", "cfg:failed to parse int; key=~{0} val=~{1}", key, rv);
|
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 {
|
try {
|
||||||
if (!rdr.Move_next()) return 0;
|
if (!rdr.Move_next()) return 0;
|
||||||
Object max = rdr.Read_obj(fld__map_sort);
|
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();}
|
finally {rdr.Rls();}
|
||||||
}
|
}
|
||||||
|
@ -30,7 +30,7 @@ class Xocfg_maint_parser {
|
|||||||
private Xocfg_maint_nde Parse_nde(GfoMsg msg) {
|
private Xocfg_maint_nde Parse_nde(GfoMsg msg) {
|
||||||
Ordered_hash hash = To_atr_hash(msg);
|
Ordered_hash hash = To_atr_hash(msg);
|
||||||
// get common atrs
|
// 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 owner = Get_atr_as_str_or_fail(hash, "owner_");
|
||||||
String key = Get_atr_as_str_or_fail(hash, "key_");
|
String key = Get_atr_as_str_or_fail(hash, "key_");
|
||||||
String name = Get_atr_as_str_or_fail(hash, "name_");
|
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++) {
|
for (int j = 0; j < xndes_len; j++) {
|
||||||
gplx.langs.xmls.XmlNde ns_nde = xnde.SubNdes().Get_at(j);
|
gplx.langs.xmls.XmlNde ns_nde = xnde.SubNdes().Get_at(j);
|
||||||
if (!String_.Eq(ns_nde.Name(), "ns")) continue;
|
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(), " ", "_"), "'", "''");
|
String name = String_.Replace(String_.Replace(ns_nde.Text_inner(), " ", "_"), "'", "''");
|
||||||
sb.Add(Int_.To_str(id)).Add("|").Add(String_.Trim(name)).Add_char_nl();
|
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 tasks_hash = Ordered_hash_.New();
|
||||||
private final Ordered_hash steps_hash = Ordered_hash_.New();
|
private final Ordered_hash steps_hash = Ordered_hash_.New();
|
||||||
public int Tasks__len() {return tasks_hash.Len();}
|
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__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 Clear() {tasks_hash.Clear(); steps_hash.Clear();}
|
||||||
public void Add(int task_id, int step_id) {
|
public void Add(int task_id, int step_id) {
|
||||||
tasks_hash.Add_if_dupe_use_nth(task_id, task_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) {
|
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__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__force_rebuild_)) this.force_rebuild = m.ReadBool("v");
|
||||||
else if (ctx.Match(k, Invk__trg_max_)) this.trg_max = m.ReadLong("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);
|
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.
|
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);
|
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 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 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 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 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 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
|
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 {
|
else {
|
||||||
if (tier_id_bmk == -1) {
|
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);
|
usr_dlg.Note_many("", "", "restoring from bmk: tier_id=~{0}", tier_id_bmk);
|
||||||
}
|
}
|
||||||
if (page_id_bmk == -1) {
|
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_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_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_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_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__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__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_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_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_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 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;
|
else return Gfo_invk_.Rv_unhandled;
|
||||||
return this;
|
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;
|
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);}
|
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 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) {
|
@Override protected void Init_reset(Db_conn conn) {
|
||||||
Db_cfg_tbl cfg_tbl = gplx.xowa.wikis.data.Xowd_cfg_tbl_.New(conn);
|
Db_cfg_tbl cfg_tbl = gplx.xowa.wikis.data.Xowd_cfg_tbl_.New(conn);
|
||||||
cfg_tbl.Delete_all();
|
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) {
|
@Override public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
|
||||||
if (ctx.Match(k, Invk_wdata_enabled_)) wdata_enabled = m.ReadYn("v");
|
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_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_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_gen_html_)) gen_html = m.ReadYn("v");
|
||||||
else if (ctx.Match(k, Invk__load_all_imglinks_)) load_all_imglinks = 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 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;
|
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_();}
|
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 public byte Init_redirect() {return Bool_.Y_byte;} // restrict to redirects
|
||||||
@Override protected void Init_reset(Db_conn conn) {
|
@Override protected void Init_reset(Db_conn conn) {
|
||||||
Db_cfg_tbl cfg_tbl = gplx.xowa.wikis.data.Xowd_cfg_tbl_.New(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;
|
long total_size = 0;
|
||||||
Bry_bfr tmp_size_bfr = Bry_bfr_.New();
|
Bry_bfr tmp_size_bfr = Bry_bfr_.New();
|
||||||
for (int i = 0; i < len; ++i) {
|
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);
|
Xobc_import_step_itm step_itm = data_db.Tbl__import_step().Select_one(step_id);
|
||||||
if (i == 0) {
|
if (i == 0) {
|
||||||
wiki_domain = Xow_abrv_xo_.To_itm(step_itm.Wiki_abrv()); // ASSUME: 1st step's wiki is same for all steps
|
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();
|
mgr_db.Remake();
|
||||||
|
|
||||||
// insert ns into cfg; need for lnki_temp.tier in xomp.make
|
// 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
|
// 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()));
|
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;
|
return rv;
|
||||||
}
|
}
|
||||||
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
|
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;
|
else return Gfo_invk_.Rv_unhandled;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
@ -60,7 +60,7 @@ class Xomp_html_db_wtr {
|
|||||||
if (prv_ns_id != ns_id
|
if (prv_ns_id != ns_id
|
||||||
|| ns_itm == null) {
|
|| ns_itm == null) {
|
||||||
prv_ns_id = ns_id;
|
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();
|
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);
|
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];
|
Xomp_parse_wkr[] wkrs = new Xomp_parse_wkr[wkr_len];
|
||||||
|
|
||||||
// init ns_ord_mgr
|
// 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
|
// init indexer
|
||||||
Xofulltext_indexer_wkr indexer = cfg.Indexer_enabled() ? new Xofulltext_indexer_wkr() : null;
|
Xofulltext_indexer_wkr indexer = cfg.Indexer_enabled() ? new Xofulltext_indexer_wkr() : null;
|
||||||
@ -131,7 +131,7 @@ public class Xomp_parse_mgr {
|
|||||||
} finally {rdr.Rls();}
|
} finally {rdr.Rls();}
|
||||||
|
|
||||||
// mark ns
|
// mark ns
|
||||||
int[] ns_ids = Int_.Ary_parse(ns_list, ",");
|
int[] ns_ids = Int_ary_.Parse(ns_list, ",");
|
||||||
cache.Add_ns_loaded(ns_ids);
|
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;
|
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
|
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[] 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);
|
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 {
|
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();
|
@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() {
|
@Test public void D1_S0_S0() {
|
||||||
fxt.Test__calc(2, fxt.Make(1, 1, Int_.Ary(1)));
|
fxt.Test__calc(2, fxt.Make(1, 1, Int_ary_.New(1)));
|
||||||
fxt.Test__calc(2, fxt.Make(2, 1, Int_.Ary(2)));
|
fxt.Test__calc(2, fxt.Make(2, 1, Int_ary_.New(2)));
|
||||||
fxt.Test__calc(2, fxt.Make(3, 1, Int_.Ary(3)));
|
fxt.Test__calc(2, fxt.Make(3, 1, Int_ary_.New(3)));
|
||||||
}
|
}
|
||||||
@Test public void D1_D1_D1() {
|
@Test public void D1_D1_D1() {
|
||||||
fxt.Test__calc(2, fxt.Make(1, 1, Int_.Ary(1)));
|
fxt.Test__calc(2, fxt.Make(1, 1, Int_ary_.New(1)));
|
||||||
fxt.Test__calc(3, fxt.Make(2, 2, Int_.Ary(1, 1)));
|
fxt.Test__calc(3, fxt.Make(2, 2, Int_ary_.New(1, 1)));
|
||||||
fxt.Test__calc(4, fxt.Make(3, 3, Int_.Ary(1, 1, 1)));
|
fxt.Test__calc(4, fxt.Make(3, 3, Int_ary_.New(1, 1, 1)));
|
||||||
}
|
}
|
||||||
@Test public void D1_D1_S0_U1() {
|
@Test public void D1_D1_S0_U1() {
|
||||||
fxt.Test__calc(2, fxt.Make(1, 1, Int_.Ary(1)));
|
fxt.Test__calc(2, fxt.Make(1, 1, Int_ary_.New(1)));
|
||||||
fxt.Test__calc(3, fxt.Make(2, 2, Int_.Ary(1, 1)));
|
fxt.Test__calc(3, fxt.Make(2, 2, Int_ary_.New(1, 1)));
|
||||||
fxt.Test__calc(3, fxt.Make(3, 2, Int_.Ary(1, 2)));
|
fxt.Test__calc(3, fxt.Make(3, 2, Int_ary_.New(1, 2)));
|
||||||
fxt.Test__calc(2, fxt.Make(4, 1, Int_.Ary(2)));
|
fxt.Test__calc(2, fxt.Make(4, 1, Int_ary_.New(2)));
|
||||||
}
|
}
|
||||||
@Test public void D1_D1_U1_D1() {
|
@Test public void D1_D1_U1_D1() {
|
||||||
fxt.Test__calc(2, fxt.Make(1, 1, Int_.Ary(1)));
|
fxt.Test__calc(2, fxt.Make(1, 1, Int_ary_.New(1)));
|
||||||
fxt.Test__calc(3, fxt.Make(2, 2, Int_.Ary(1, 1)));
|
fxt.Test__calc(3, fxt.Make(2, 2, Int_ary_.New(1, 1)));
|
||||||
fxt.Test__calc(2, fxt.Make(3, 1, Int_.Ary(2)));
|
fxt.Test__calc(2, fxt.Make(3, 1, Int_ary_.New(2)));
|
||||||
fxt.Test__calc(3, fxt.Make(4, 2, Int_.Ary(2, 1)));
|
fxt.Test__calc(3, fxt.Make(4, 2, Int_ary_.New(2, 1)));
|
||||||
}
|
}
|
||||||
@Test public void D1_D1_D1_U2() {
|
@Test public void D1_D1_D1_U2() {
|
||||||
fxt.Test__calc(2, fxt.Make(1, 1, Int_.Ary(1)));
|
fxt.Test__calc(2, fxt.Make(1, 1, Int_ary_.New(1)));
|
||||||
fxt.Test__calc(3, fxt.Make(2, 2, Int_.Ary(1, 1)));
|
fxt.Test__calc(3, fxt.Make(2, 2, Int_ary_.New(1, 1)));
|
||||||
fxt.Test__calc(4, fxt.Make(3, 3, Int_.Ary(1, 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(2)));
|
fxt.Test__calc(2, fxt.Make(4, 1, Int_ary_.New(2)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
class Xoh_toc_wkr__lvl__fxt {
|
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/"
|
private boolean Check_md5() { // check if md5; also, skip past md5; EX: "a/a0/"
|
||||||
int pos = rdr.Pos();
|
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];
|
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 (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
|
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 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 Srch_crt_scanner_syms syms = Srch_crt_scanner_syms.New__dflt();
|
||||||
private void Ns_ids_(String s) {
|
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
|
if (String_.Eq(s, "*")) {} // leave as int[0]; ns_mgr will interpret as wildcard
|
||||||
else {
|
else {
|
||||||
ns_ids = Int_.Ary_parse(s, ",");
|
ns_ids = Int_ary_.Parse(s, ",");
|
||||||
}
|
}
|
||||||
ns_mgr.Add_by_int_ids(ns_ids);
|
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
|
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() {
|
public int[] To_int_ary() {
|
||||||
if (ns_all) return Int_.Ary_empty;
|
if (ns_all) return Int_ary_.Empty;
|
||||||
else if (ns_main) return Int_.Ary(Xow_ns_.Tid__main);
|
else if (ns_main) return Int_ary_.New(Xow_ns_.Tid__main);
|
||||||
else {
|
else {
|
||||||
int len = ns_hash.Count();
|
int len = ns_hash.Count();
|
||||||
int[] rv = new int[len];
|
int[] rv = new int[len];
|
||||||
|
@ -25,7 +25,7 @@ public class Xoa_fmtr_itm implements Gfo_invk {
|
|||||||
}
|
}
|
||||||
public String Run() {
|
public String Run() {
|
||||||
Gfo_invk src_invk = (Gfo_invk)app.Gfs_mgr().Run_str(src);
|
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();
|
Bry_bfr bfr = Bry_bfr_.New();
|
||||||
Bfmtr_eval_invk eval_mgr = new Bfmtr_eval_invk(app);
|
Bfmtr_eval_invk eval_mgr = new Bfmtr_eval_invk(app);
|
||||||
Bry_fmtr fmtr = Bry_fmtr.new_bry_(fmt).Eval_mgr_(eval_mgr);
|
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 (xwiki != null) return true;
|
||||||
if (app.Wiki_mgri().Has(domain)) 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) {
|
private void Bld_page(int bgn_seg) {
|
||||||
tmp_tid = Xoa_url_.Tid_page;
|
tmp_tid = Xoa_url_.Tid_page;
|
||||||
|
@ -28,7 +28,7 @@ public class Xoa_version_ {
|
|||||||
for (int i = 0; i < lhs_ary_len; ++i) {
|
for (int i = 0; i < lhs_ary_len; ++i) {
|
||||||
String lhs_itm = lhs_ary[i];
|
String lhs_itm = lhs_ary[i];
|
||||||
String rhs_itm = rhs_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;
|
if (itm_comp != CompareAble_.Same) return itm_comp;
|
||||||
}
|
}
|
||||||
return CompareAble_.Same;
|
return CompareAble_.Same;
|
||||||
|
@ -56,7 +56,7 @@ public class Xob_ns_to_db_mgr {
|
|||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
private Xow_db_file Init_db(Xob_ns_file_itm ns_file_itm) {
|
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());
|
ns_file_itm.Nth_db_id_(rv.Id());
|
||||||
Init_tbl(rv);
|
Init_tbl(rv);
|
||||||
return 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) {
|
for (int i = 0; i < len; ++i) {
|
||||||
Xow_ns ns = ns_mgr.Ords_get_at(i);
|
Xow_ns ns = ns_mgr.Ords_get_at(i);
|
||||||
int ns_id = ns.Id();
|
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;
|
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();
|
ns_ids[i] = ns_mgr.Ords_get_at(i).Id();
|
||||||
}
|
}
|
||||||
else
|
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 (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
|
if (String_.Len_eq_0(name)) { // no name; auto-generate
|
||||||
int ns_id_1st = ns_ids[0]; // take 1st ns_id
|
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 {
|
public class Xob_diff_build_cmd implements Xob_cmd {
|
||||||
private final Xob_bldr bldr; private final Xowe_wiki wiki;
|
private final Xob_bldr bldr; private final Xowe_wiki wiki;
|
||||||
private String prev_url, curr_url, diff_url; private int commit_interval;
|
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 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 String Cmd_key() {return Xob_cmd_keys.Key_diff_build;}
|
||||||
public Xob_cmd Cmd_clone(Xob_bldr bldr, Xowe_wiki wiki) {return null;}
|
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__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__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__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 if (ctx.Match(k, Invk__bld_name_)) bld_name = m.ReadStr("v");
|
||||||
else return Gfo_invk_.Rv_unhandled;
|
else return Gfo_invk_.Rv_unhandled;
|
||||||
return this;
|
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 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 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();
|
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();
|
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(css_trg_bry).Add_byte_nl();
|
||||||
bfr.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);
|
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[]
|
private static final byte[]
|
||||||
Wikisource_dynimg_ttl = Bry_.new_a7("en.wikisource.org/w/index.php?title=MediaWiki:Dynimg.css")
|
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];
|
byte[] line = lines[i];
|
||||||
// get fld bgn / end; EX: "`fld_1`"
|
// 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
|
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
|
int end = Bry_find_.Find_fwd(line, Byte_ascii.Tick, bgn); if (end == Bry_find_.Not_found) continue; // skip blank lines
|
||||||
|
|
||||||
// add fld
|
// add fld
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user