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

com.github.rutledgepaulv.qbuilders.properties.virtual.NumberProperty Maven / Gradle / Ivy

/*
 *
 *  *  com.github.rutledgepaulv.qbuilders.properties.virtual.NumberProperty
 *  *  *
 *  *  * 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.virtual;

import com.github.rutledgepaulv.qbuilders.builders.QBuilder;
import com.github.rutledgepaulv.qbuilders.conditions.Condition;

/**
 * For numerical fields.
 *
 * @param  The final type of the builder.
 * @param  The type of the numbers that the property supports.
 */
public interface NumberProperty, S extends Number>
        extends ListableProperty, EquitableProperty {

    /**
     * Specifies that the field's value must be greater than the provided value.
     * @param number The value that the field's value must be greater than.
     * @return The logically complete condition.
     */
    Condition gt(S number);

    /**
     * Specifies that the field's value must be less than the provided value.
     * @param number The value that the field's value must be less than.
     * @return The logically complete condition.
     */
    Condition lt(S number);

    /**
     * Specifies that the field's value must be greater than or equal to the provided value.
     * @param number The value that the field's value must be greater than or equal to.
     * @return The logically complete condition.
     */
    Condition gte(S number);

    /**
     * Specifies that the field's value must be less than or equal to the provided value.
     * @param number The value that the field's value must be less than or equal to.
     * @return The logically complete condition.
     */
    Condition lte(S number);

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy