apply method
- @override
- QueryBuilder builder,
- bool isRoot
override
Implementation
@override
int apply(QueryBuilder builder, bool isRoot) {
final c = tryApply(builder);
if (c != 0) {
return c;
}
switch (_op) {
case ConditionOp.eq:
return _op1(builder, bindings.obx_qb_equals_int);
case ConditionOp.notEq:
return _op1(builder, bindings.obx_qb_not_equals_int);
case ConditionOp.gt:
return _op1(builder, bindings.obx_qb_greater_than_int);
case ConditionOp.lt:
return _op1(builder, bindings.obx_qb_less_than_int);
case ConditionOp.between:
return bindings.obx_qb_between_2ints(
builder._cBuilder, _property._propertyId, _value, _value2);
case ConditionOp.inside:
switch (_property._type) {
case OBXPropertyType.Int:
return _opList32(builder, bindings.obx_qb_in_int32s);
case OBXPropertyType.Long:
return _opList64(builder, bindings.obx_qb_in_int64s);
default:
throw Exception('Unsupported type for IN: ${_property._type}');
}
break;
case ConditionOp.notIn:
switch (_property._type) {
case OBXPropertyType.Int:
return _opList32(builder, bindings.obx_qb_not_in_int32s);
case OBXPropertyType.Long:
return _opList64(builder, bindings.obx_qb_not_in_int64s);
default:
throw Exception('Unsupported type for IN: ${_property._type}');
}
break;
default:
throw Exception('Unsupported operation ${_op.toString()}');
}
}