package sample.model.constraints;
import static java.lang.annotation.ElementType.*;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.*;
import javax.validation.*;
import javax.validation.constraints.*;
import org.hibernate.validator.constraints.NotBlank;
/**
* 名称(必須)を表現する制約注釈。
* low: 実際は姓名(ミドルネーム)の考慮やモノ系の名称などを意識する必要があります。
*/
@Documented
@Constraint(validatedBy = {})
@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER })
@Retention(RUNTIME)
@ReportAsSingleViolation
@NotBlank
@Size
@Pattern(regexp = "")
public @interface Name {
String message() default "{error.domain.name}";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
@OverridesAttribute(constraint = Size.class, name = "max")
int max() default 30;
@OverridesAttribute(constraint = Pattern.class, name = "regexp")
String regexp() default ".*";
@OverridesAttribute(constraint = Pattern.class, name = "flags")
Pattern.Flag[] flags() default {};
@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER })
@Retention(RUNTIME)
@Documented
public @interface List {
Name[] value();
}
}