private void initForInt(int v) { this.value = (VALUE) (Integer) v; switch (operator) { case EQUAL: nativeDelegate = ObjectFilter.eqInt(name, v); break; case NOT_EQUAL: nativeDelegate = ObjectFilter.notEqInt(name, v); break; case LESS_THAN: nativeDelegate = ObjectFilter.ltInt(name, v); break; case LESS_THAN_EQUAL: nativeDelegate = ObjectFilter.lteInt(name, v); break; case GREATER_THAN: nativeDelegate = ObjectFilter.gtInt(name, v); break; case GREATER_THAN_EQUAL: nativeDelegate = ObjectFilter.gteInt(name, v); break; case BETWEEN: nativeDelegate = ObjectFilter.betweenInt(name, v, Conversions.toInt(values[1])); break; case IN: nativeDelegate = ObjectFilter.inInts(name, Conversions.iarray(values)); break; case NOT_IN: nativeDelegate = ObjectFilter.notInInts(name, Conversions.iarray(values)); break; default: useDelegate = false; } }
private void initIfNeeded() { if (initialized) return; initialized = true; String name = this.name.toString(); FieldAccess field = field(); if (field == null) { return; } Class type = field.type(); if (!type.isPrimitive() && type != Typ.date) { return; } if (type == Typ.date) { if (!(value instanceof Date)) { initForDate(); } return; } useDelegate = true; if (type == Typ.intgr) { int v = Conversions.toInt(value); initForInt(v); } else if (type == Typ.bt) { byte v = Conversions.toByte(value); initForByte(v); } else if (type == Typ.shrt) { short v = Conversions.toShort(value); initForShortValue(v); } else if (type == Typ.lng) { long v = Conversions.toLong(value); initForLong(v); } else if (type == Typ.flt) { float v = Conversions.toFloat(value); initForFloat(v); } else if (type == Typ.dbl) { double v = Conversions.toDouble(value); initForDouble(v); } else if (type == Typ.bln) { switch (operator) { case EQUAL: nativeDelegate = ObjectFilter.eqBoolean(name, Conversions.toBoolean(value)); break; case NOT_EQUAL: nativeDelegate = ObjectFilter.notEqBoolean(name, Conversions.toBoolean(value)); break; default: useDelegate = false; } } else if (type == Typ.chr) { char v = Conversions.toChar(value); initForChar(v); } }
@Override public int intValue() { return Conversions.toInt(value); }