All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.rutledgepaulv.qbuilders.properties.concrete.ConditionProperty Maven / Gradle / Ivy

/*
 *
 *  *  com.github.rutledgepaulv.qbuilders.properties.concrete.ConditionProperty
 *  *  *
 *  *  * Copyright (C) 2016 Paul Rutledge 
 *  *  *
 *  *  * This software may be modified and distributed under the terms
 *  *  * of the MIT license.  See the LICENSE file for details.
 *  *
 *
 */

package com.github.rutledgepaulv.qbuilders.properties.concrete;

import com.github.rutledgepaulv.qbuilders.builders.QBuilder;
import com.github.rutledgepaulv.qbuilders.conditions.Condition;
import com.github.rutledgepaulv.qbuilders.properties.virtual.Property;


/**
 * A property view for multi-value fields containing objects who themselves
 * may have additional fields.
 *
 * @param  The type of the final builder.
 */
public interface ConditionProperty, S extends QBuilder> extends Property {

    /**
     * Mandates that at least one of the elements of the multi-valued fields must match the
     * provided condition exactly.
     *
     * @param condition The condition that should be imposed individually against each element
     *                  in the multi valued field.
     *
     * @return The logically complete condition.
     */
    Condition any(Condition condition);

}