コード例 #1
0
/**
 * 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;
}
コード例 #2
0
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);
}
コード例 #3
0
/**
 * 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;
}
コード例 #4
0
/**
 * 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;
}