jp.objectfanatics.assertion.constraints.Max Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of assertion-constraints Show documentation
Show all versions of assertion-constraints Show documentation
OBJECT FANATICS Assertion Library [assertion-constraints]
/*
* Copyright (C) 2005-2009 Makoto Sato. All Rights Reserved.
* Copyright (C) 2010 OBJECT FANATICS Co.,Ltd. All Rights Reserved.
*
* 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 jp.objectfanatics.assertion.constraints;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.ElementType.PARAMETER;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
//DOUBLE_CHECKED 04.04.2010
/**
* The annotated element must be non-null, and equals to or less than the specified value.
*
* Supported types are:
*
* byte
* short
* int
* long
* float
* double
* Byte
* Short
* Integer
* Long
* Float
* Double
* BigInteger
* BigDecimal
* AtomicInteger
* AtomicLong
*
*
*
* @author Makoto Sato
* @author Hirokatsu Endo
*/
@Documented
@Retention(RUNTIME)
@Target( { METHOD, PARAMETER })
@ConstraintAnnotation
public @interface Max {
// TODO: MaxやMinのような数値比較を行う場合のパラメータについては、文字列で指定するようにして、文字列から適切な型に変換するようにする。
// この場合、コンパイラによる文字列チェックをいれることはできないが、ウィービング時にエラーとなるので、実害はない。
// 現状は、すべて double として扱われるため、long のような double よりも精度の大きい数を扱う場合に、暗黙的条件が入るので、よろしくない。
// また、入力値をdoubleとして受け取るので、実際に入力した文字列がわからない(100L, 10E2, 100.0等)。
// javadoc として、この考え方を残しておきましょう。
double value();
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy