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

net.hasor.dataql.HintValue Maven / Gradle / Ivy

There is a newer version: 4.2.5
Show newest version
/*
 * Copyright 2008-2009 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package net.hasor.dataql;
/**
 * Hint 的值定义。
 * @author 赵永春 ([email protected])
 * @version : 2017-03-23
 */
public interface HintValue {
    /** 最大保留的小数位数,默认为:20。超出该范围将会根据 NUMBER_ROUNDING 选项指定的舍入模式进行舍入,默认是四舍五入。 */
    public static final String MAX_DECIMAL_DIGITS          = "MAX_DECIMAL_DIGITS";
    /** 小数的舍入模式,参考 RoundingEnum 定义的舍入模式(一共八种),默认为:四舍五入。详细配置参考:RoundingEnum 枚举。 */
    public static final String NUMBER_ROUNDING             = "NUMBER_ROUNDING";
    /** 浮点数计算使用的最小数值宽度,可选值有:float,double,big。默认为:double */
    public static final String MIN_DECIMAL_WIDTH           = "MIN_DECIMAL_WIDTH";
    /** 整数计算使用的最小数值宽度,可选值有:byte,short,int,long,big。默认为:int */
    public static final String MIN_INTEGER_WIDTH           = "MIN_INTEGER_WIDTH";
    //
    //
    //
    //
    //
    //
    //
    //
    //
    /** 当遇到索引溢出情况时严格的抛出 ArrayIndexOutOfBoundsException 异常*/
    public static final String INDEX_OVERFLOW_THROW        = "throw";
    /** 当遇到索引溢出情况时返回 null。*/
    public static final String INDEX_OVERFLOW_NULL         = "null";
    /** 当遇到索引溢出情况时取最近的元素。例:正向索引溢出:`list[100]`,取最后一个、反向索引溢出:`list[-100]`,取第一个。 */
    public static final String INDEX_OVERFLOW_NEAR         = "near";
    //
    //
    /** 浮点数计算使用的最小数值宽度,可选值有:float,double,big。默认为:double */
    public static final String MIN_DECIMAL_WIDTH_FLOAT     = "float";
    public static final String MIN_DECIMAL_WIDTH_DOUBLE    = "double";
    public static final String MIN_DECIMAL_WIDTH_BIG       = "big";
    //
    //
    /** 整数计算使用的最小数值宽度,可选值有:byte,short,int,long,big。默认为:int */
    public static final String MIN_INTEGER_WIDTH_BYTE      = "byte";
    public static final String MIN_INTEGER_WIDTH_SHORT     = "short";
    public static final String MIN_INTEGER_WIDTH_INT       = "int";
    public static final String MIN_INTEGER_WIDTH_LONG      = "long";
    public static final String MIN_INTEGER_WIDTH_BIG       = "big";
    //
    //
    /** 向远离零的方向舍入。舍弃非零部分,并将非零舍弃部分相邻的一位数字加一。*/
    public static final String NUMBER_ROUNDING_UP          = "UP";
    /** 向接近零的方向舍入。舍弃非零部分,同时不会非零舍弃部分相邻的一位数字加一,采取截取行为。*/
    public static final String NUMBER_ROUNDING_DOWN        = "DOWN";
    /** 向正无穷的方向舍入。如果为正数,舍入结果同ROUND_UP一致;如果为负数,舍入结果同ROUND_DOWN一致。注意:此模式不会减少数值大小。*/
    public static final String NUMBER_ROUNDING_CEILING     = "CEILING";
    /**
     * 向负无穷的方向舍入。如果为正数,舍入结果同ROUND_DOWN一致;如果为负数,舍入结果同ROUND_UP一致。
     * 注意:此模式不会增加数值大小。
     */
    public static final String NUMBER_ROUNDING_FLOOR       = "FLOOR";
    /**
     * 向“最接近”的数字舍入,如果与两个相邻数字的距离相等,则为向上舍入的舍入模式。如果舍弃部分>= 0.5,则舍入行为与ROUND_UP相同;否则舍入行为与ROUND_DOWN相同。
     * 这种模式也就是我们常说的我们的“四舍五入”。*/
    public static final String NUMBER_ROUNDING_HALF_UP     = "HALF_UP";
    /**
     * 向“最接近”的数字舍入,如果与两个相邻数字的距离相等,则为向下舍入的舍入模式。如果舍弃部分> 0.5,则舍入行为与ROUND_UP相同;否则舍入行为与ROUND_DOWN相同。
     * 这种模式也就是我们常说的我们的“五舍六入”。
     */
    public static final String NUMBER_ROUNDING_HALF_DOWN   = "HALF_DOWN";
    /**
     * 向“最接近”的数字舍入,如果与两个相邻数字的距离相等,则相邻的偶数舍入。如果舍弃部分左边的数字奇数,则舍入行为与 ROUND_HALF_UP 相同;如果为偶数,则舍入行为与 ROUND_HALF_DOWN 相同。
     * 注意:在重复进行一系列计算时,此舍入模式可以将累加错误减到最小。
     * 此舍入模式也称为“银行家舍入法”,主要在美国使用。
     * 四舍六入,五分两种情况,如果前一位为奇数,则入位,否则舍去。
     */
    public static final String NUMBER_ROUNDING_HALF_EVEN   = "HALF_EVEN";
    /** 断言请求的操作具有精确的结果,因此不需要舍入。如果对获得精确结果的操作指定此舍入模式,则抛出ArithmeticException。*/
    public static final String NUMBER_ROUNDING_UNNECESSARY = "UNNECESSARY";
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy