package net.sf.oval.constraint;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import net.sf.oval.configuration.annotation.Constraint;

/**
 * Контрактная спецификация, описывающая допустимые длины строки
 */
@Retention(RetentionPolicy.RUNTIME)
@Target( { ElementType.FIELD, ElementType.PARAMETER, ElementType.METHOD })
@Constraint(checkWith = PossibleLengthCheck.class)
public @interface PossibleLength {
	/**
	 * @return допустимые значения длины
	 */
	int[] lengths() default {};

	/**
	 * @return сообщение об ошибке
	 */
	String message() default "";
}
