apply method

  1. @override
int apply (
  1. QueryBuilder builder,
  2. 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()}');
  }
}