mirror of
https://github.com/gnosygnu/xowa.git
synced 2026-03-02 03:49:30 +00:00
Refactor: Clean up Type_ classes
This commit is contained in:
@@ -66,7 +66,7 @@ public class DbMaprWtr extends DataWtr_base implements DataWtr {
|
||||
}
|
||||
void WriteDataVal(String fld, Object val) {
|
||||
if (insertCmd == null) insertCmd = Db_qry_.insert_(curTableName);
|
||||
if (Type_adp_.Eq_typeSafe(val, String.class))
|
||||
if (Type_.Eq_by_obj(val, String.class))
|
||||
insertCmd.Val_obj_type(fld, val, Db_val_type.Tid_varchar);
|
||||
else
|
||||
insertCmd.Val_obj(fld, val);
|
||||
|
||||
@@ -58,16 +58,16 @@ public class Db_stmt_ {
|
||||
}
|
||||
public static Db_stmt Rls(Db_stmt v) {if (v != null) v.Rls(); return null;}
|
||||
public static void Val_by_obj(Db_stmt stmt, String key, Object val) {
|
||||
int tid = Type_adp_.To_tid_obj(val);
|
||||
int tid = Type_ids_.To_id_by_obj(val);
|
||||
switch (tid) {
|
||||
case Type_adp_.Tid__bool: stmt.Val_bool_as_byte (key, Bool_.Cast(val)); break;
|
||||
case Type_adp_.Tid__byte: stmt.Val_byte (key, Byte_.cast(val)); break;
|
||||
case Type_adp_.Tid__int: stmt.Val_int (key, Int_.cast(val)); break;
|
||||
case Type_adp_.Tid__long: stmt.Val_long (key, Long_.cast(val)); break;
|
||||
case Type_adp_.Tid__float: stmt.Val_float (key, Float_.cast(val)); break;
|
||||
case Type_adp_.Tid__double: stmt.Val_double (key, Double_.cast(val)); break;
|
||||
case Type_adp_.Tid__str: stmt.Val_str (key, String_.cast(val)); break;
|
||||
case Type_adp_.Tid__bry: stmt.Val_bry (key, Bry_.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__int: stmt.Val_int (key, Int_.cast(val)); break;
|
||||
case Type_ids_.Id__long: stmt.Val_long (key, Long_.cast(val)); break;
|
||||
case Type_ids_.Id__float: stmt.Val_float (key, Float_.cast(val)); break;
|
||||
case Type_ids_.Id__double: stmt.Val_double (key, Double_.cast(val)); break;
|
||||
case Type_ids_.Id__str: stmt.Val_str (key, String_.cast(val)); break;
|
||||
case Type_ids_.Id__bry: stmt.Val_bry (key, Bry_.cast(val)); break;
|
||||
default: throw Err_.new_unhandled_default(tid);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,7 +53,7 @@ public class TdbTable {
|
||||
flds = ndeRdr.UnderNde().SubFlds();
|
||||
}
|
||||
else { // XmlRdr needs to load each row again...
|
||||
throw Err_.new_invalid_op("TableLoad not implemented").Args_add("rdrType", Type_adp_.NameOf_obj(rdr), "rdrName", rdr.NameOfNode());
|
||||
throw Err_.new_invalid_op("TableLoad not implemented").Args_add("rdrType", Type_.Name_by_obj(rdr), "rdrName", rdr.NameOfNode());
|
||||
}
|
||||
isLoaded = true;
|
||||
}
|
||||
|
||||
@@ -55,21 +55,21 @@ public class Db_qry_sql implements Db_qry {
|
||||
private static void Gen_sql_arg(Bry_bfr bfr, Object val) {
|
||||
if (val == null) {bfr.Add(Bry_null); return;}
|
||||
Class<?> val_type = val.getClass();
|
||||
if (Type_adp_.Eq(val_type, Int_.Cls_ref_type))
|
||||
if (Type_.Eq(val_type, Int_.Cls_ref_type))
|
||||
bfr.Add_int_variable(Int_.cast(val));
|
||||
else if (Type_adp_.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"
|
||||
else if (Type_adp_.Eq(val_type, Double_.Cls_ref_type))
|
||||
else if (Type_.Eq(val_type, Double_.Cls_ref_type))
|
||||
bfr.Add_double(Double_.cast(val));
|
||||
else if (Type_adp_.Eq(val_type, Long_.Cls_ref_type))
|
||||
else if (Type_.Eq(val_type, Long_.Cls_ref_type))
|
||||
bfr.Add_long_variable(Long_.cast(val));
|
||||
else if (Type_adp_.Eq(val_type, Float_.Cls_ref_type))
|
||||
else if (Type_.Eq(val_type, Float_.Cls_ref_type))
|
||||
bfr.Add_float(Float_.cast(val));
|
||||
else if (Type_adp_.Eq(val_type, Byte_.Cls_ref_type))
|
||||
else if (Type_.Eq(val_type, Byte_.Cls_ref_type))
|
||||
bfr.Add_byte(Byte_.cast(val));
|
||||
else if (Type_adp_.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();
|
||||
else if (Type_adp_.Eq(val_type, Decimal_adp_.Cls_ref_type))
|
||||
else if (Type_.Eq(val_type, Decimal_adp_.Cls_ref_type))
|
||||
bfr.Add_str_a7(Decimal_adp_.cast(val).To_str());
|
||||
else {
|
||||
byte[] val_bry = Bry_.new_u8(Object_.Xto_str_strict_or_null(val));
|
||||
|
||||
@@ -178,7 +178,7 @@ public class Db_stmt_sql implements Db_stmt {// used for formatting SQL statemen
|
||||
str = "NULL";
|
||||
else {
|
||||
str = Object_.Xto_str_strict_or_null(obj);
|
||||
if (Type_adp_.Eq(obj.getClass(), String_.Cls_ref_type))
|
||||
if (Type_.Eq(obj.getClass(), String_.Cls_ref_type))
|
||||
str = "'" + String_.Replace(str, "'", "''") + "'";
|
||||
}
|
||||
ary[i] = str;
|
||||
|
||||
@@ -19,10 +19,10 @@ import gplx.dbs.sqls.wtrs.*;
|
||||
public class Db_obj_ary_tst {
|
||||
@Before public void init() {} private Db_obj_ary_fxt fxt = new Db_obj_ary_fxt();
|
||||
@Test public void Int() {
|
||||
fxt.Init_fld("fld_0", Type_adp_.Tid__int).Init_fld("fld_1", Type_adp_.Tid__int).Init_vals(1, 10).Init_vals(2, 20).Test_sql("(fld_0=1 AND fld_1=10) OR (fld_0=2 AND fld_1=20)");
|
||||
fxt.Init_fld("fld_0", Type_ids_.Id__int).Init_fld("fld_1", Type_ids_.Id__int).Init_vals(1, 10).Init_vals(2, 20).Test_sql("(fld_0=1 AND fld_1=10) OR (fld_0=2 AND fld_1=20)");
|
||||
}
|
||||
@Test public void Str() {
|
||||
fxt.Init_fld("fld_0", Type_adp_.Tid__int).Init_fld("fld_1", Type_adp_.Tid__str).Init_vals(1, "a").Init_vals(2, "b").Test_sql("(fld_0=1 AND fld_1='a') OR (fld_0=2 AND fld_1='b')");
|
||||
fxt.Init_fld("fld_0", Type_ids_.Id__int).Init_fld("fld_1", Type_ids_.Id__str).Init_vals(1, "a").Init_vals(2, "b").Test_sql("(fld_0=1 AND fld_1='a') OR (fld_0=2 AND fld_1='b')");
|
||||
}
|
||||
}
|
||||
class Db_obj_ary_fxt {
|
||||
|
||||
@@ -26,19 +26,19 @@ public class Sql_val_wtr {
|
||||
bfr.Add_str_a7("NULL");
|
||||
return;
|
||||
}
|
||||
int tid_type = Type_adp_.To_tid_type(val.getClass());
|
||||
int tid_type = Type_ids_.To_id_by_type(val.getClass());
|
||||
switch (tid_type) {
|
||||
case Type_adp_.Tid__bool: Bld_val__bool (bfr, Bool_.Cast(val)); break;
|
||||
case Type_adp_.Tid__byte: Bld_val__byte (bfr, Byte_.cast(val)); break;
|
||||
case Type_adp_.Tid__short: Bld_val__short (bfr, Short_.cast(val)); break;
|
||||
case Type_adp_.Tid__int: Bld_val__int (bfr, Int_.cast(val)); break;
|
||||
case Type_adp_.Tid__long: Bld_val__long (bfr, Long_.cast(val)); break;
|
||||
case Type_adp_.Tid__float: Bld_val__float (bfr, Float_.cast(val)); break;
|
||||
case Type_adp_.Tid__double: Bld_val__double (bfr, Double_.cast(val)); break;
|
||||
case Type_adp_.Tid__decimal: Bld_val__decimal (bfr, Decimal_adp_.cast(val)); break;
|
||||
case Type_adp_.Tid__str: Bld_val__str (bfr, String_.cast(val)); break;
|
||||
case Type_adp_.Tid__date: Bld_val__date (bfr, DateAdp_.cast(val)); break;
|
||||
case Type_adp_.Tid__obj: Bld_val__str (bfr, Object_.Xto_str_strict_or_null(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__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__long: Bld_val__long (bfr, Long_.cast(val)); break;
|
||||
case Type_ids_.Id__float: Bld_val__float (bfr, Float_.cast(val)); break;
|
||||
case Type_ids_.Id__double: Bld_val__double (bfr, Double_.cast(val)); break;
|
||||
case Type_ids_.Id__decimal: Bld_val__decimal (bfr, Decimal_adp_.cast(val)); break;
|
||||
case Type_ids_.Id__str: Bld_val__str (bfr, String_.cast(val)); break;
|
||||
case Type_ids_.Id__date: Bld_val__date (bfr, DateAdp_.cast(val)); break;
|
||||
case Type_ids_.Id__obj: Bld_val__str (bfr, Object_.Xto_str_strict_or_null(val)); break;
|
||||
}
|
||||
}
|
||||
@gplx.Virtual public void Bld_val__bool (Bry_bfr bfr, boolean val) {bfr.Add_int_digits(1, val ? 1 : 0);} // NOTE: save boolean to 0 or 1 b/c sqlite doesn't support true / false //{bfr.Add_str_a7(val ? "true" : "false");}
|
||||
|
||||
@@ -16,8 +16,8 @@ Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
|
||||
package gplx.dbs.sqls.wtrs; import gplx.*; import gplx.dbs.*; import gplx.dbs.sqls.*;
|
||||
import gplx.core.criterias.*; import gplx.dbs.sqls.itms.*;
|
||||
public class Sql_where_wtr {
|
||||
private final Sql_core_wtr qry_wtr;
|
||||
private final Sql_val_wtr val_wtr;
|
||||
private final Sql_core_wtr qry_wtr;
|
||||
private final Sql_val_wtr val_wtr;
|
||||
public Sql_where_wtr(Sql_core_wtr qry_wtr, Sql_val_wtr val_wtr) {this.qry_wtr = qry_wtr; this.val_wtr = val_wtr;}
|
||||
public void Bld_where(Bry_bfr bfr, Sql_wtr_ctx ctx, Sql_where_clause where_itm) {
|
||||
if (where_itm == Sql_where_clause.Where__null) return;
|
||||
@@ -125,9 +125,9 @@ public class Sql_where_wtr {
|
||||
Object val = itm[j];
|
||||
boolean quote = false;
|
||||
switch (fld.Type_tid()) {
|
||||
case Type_adp_.Tid__str:
|
||||
case Type_adp_.Tid__char:
|
||||
case Type_adp_.Tid__date:
|
||||
case Type_ids_.Id__str:
|
||||
case Type_ids_.Id__char:
|
||||
case Type_ids_.Id__date:
|
||||
quote = true;
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user