/** * midgard_query_constraint_group_add_constraints: * @self: #MidgardQueryConstraintGroup instance * @constraints: (array) (element-type MidgardQueryConstraintSimple) (array length=n_objects): array of #MidgardQueryConstraintSimple objects * @n_objects: number of elements in given array * * Returns: %TRUE on success, %FALSE otherwise * Since: 10.05.5 */ gboolean midgard_query_constraint_group_add_constraints (MidgardQueryConstraintGroup *self, MidgardQueryConstraintSimple **constraints, guint n_objects) { g_return_val_if_fail (self != NULL, FALSE); g_return_val_if_fail (constraints != NULL, FALSE); guint i; for (i = 0; i < n_objects; i++) { if (!midgard_query_constraint_group_add_constraint (self, constraints[i])) return FALSE; } return TRUE; }
static PHP_METHOD(midgard_query_constraint_group, add_constraint) { zval *z_constraint = NULL; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "O", &z_constraint, php_midgard_query_constraint_simple_class) == FAILURE) { return; } MidgardQueryConstraintGroup *constraint_group = MIDGARD_QUERY_CONSTRAINT_GROUP(__php_gobject_ptr(getThis())); MidgardQueryConstraintSimple *constraint = MIDGARD_QUERY_CONSTRAINT_SIMPLE(__php_gobject_ptr(z_constraint)); zend_bool result = midgard_query_constraint_group_add_constraint(constraint_group, constraint, NULL); RETURN_BOOL(result); }
/** * midgard_query_constraint_group_new_with_constraints: * @type: constraints group type * @constraints: an array of #MidgardQueryConstraintSimple constraints * @n_constraints: the length of given constraints array * * Returns: #MidgardQueryConstraintGroup instance or %NULL * * Since: 10.05.1 */ MidgardQueryConstraintGroup * midgard_query_constraint_group_new_with_constraints (const gchar *type, MidgardQueryConstraintSimple **constraints, guint n_constraints) { g_return_val_if_fail (type != NULL, NULL); g_return_val_if_fail (constraints != NULL, NULL); MidgardQueryConstraintGroup *self = midgard_query_constraint_group_new_valist (type, NULL); if (!self) return NULL; if (n_constraints == 0) return self; guint i; for (i = 0; i < n_constraints; i++) { midgard_query_constraint_group_add_constraint (self, constraints[i]); } return self; }
/** * midgard_query_constraint_group_new_valist: * @type: constraints group type ('OR' or 'AND') * @constraint: list of constraints to add to group or NULL * * This is C convinient function. It's not designed for language bindings. * * Returns: #MidgardQueryConstraintGroup instance or %NULL * * Since: 10.05.1 */ MidgardQueryConstraintGroup * midgard_query_constraint_group_new_valist (const gchar *type, MidgardQueryConstraintSimple *constraint, ...) { g_return_val_if_fail (type != NULL, NULL); GdaSqlOperatorType op_type = __get_operator_type (type); if (op_type == -1) return NULL; MidgardQueryConstraintGroup *self = g_object_new (MIDGARD_TYPE_QUERY_CONSTRAINT_GROUP, NULL); self->priv->type = g_strdup (type); self->priv->op_type = op_type; MidgardQueryConstraintSimple *cnstr = constraint; va_list args; va_start (args, constraint); while (cnstr != NULL) { midgard_query_constraint_group_add_constraint (self, cnstr); cnstr = va_arg (args, MidgardQueryConstraintSimple*); } va_end (args); return self; }