1 /* 2 * SPDX-FileCopyrightText: none 3 * SPDX-License-Identifier: CC0-1.0 4 */ 5 6 package gov.nist.secauto.metaschema.databind.model.annotations; 7 8 import static java.lang.annotation.RetentionPolicy.RUNTIME; 9 10 import java.lang.annotation.Documented; 11 import java.lang.annotation.ElementType; 12 import java.lang.annotation.Retention; 13 import java.lang.annotation.Target; 14 15 import edu.umd.cs.findbugs.annotations.NonNull; 16 17 @Documented 18 @Retention(RUNTIME) 19 @Target(ElementType.ANNOTATION_TYPE) 20 public @interface ValueConstraints { 21 /** 22 * Get the let statements for the type of field this annotation is applied to. 23 * 24 * @return the let statements or an empty array if no let statements are defined 25 */ 26 @NonNull 27 Let[] lets() default {}; 28 29 /** 30 * Get the allowed value constraints for the type or field this annotation is 31 * applied to. 32 * 33 * @return the allowed values or an empty array if no allowed values constraints 34 * are defined 35 */ 36 @NonNull 37 AllowedValues[] allowedValues() default {}; 38 39 /** 40 * Get the matches constraints for the type or field this annotation is applied 41 * to. 42 * 43 * @return the allowed values or an empty array if no allowed values constraints 44 * are defined 45 */ 46 @NonNull 47 Matches[] matches() default {}; 48 49 /** 50 * Get the index-has-key constraints for the type or field this annotation is 51 * applied to. 52 * 53 * @return the allowed values or an empty array if no allowed values constraints 54 * are defined 55 */ 56 @NonNull 57 IndexHasKey[] indexHasKey() default {}; 58 59 /** 60 * Get the expect constraints for the type or field this annotation is applied 61 * to. 62 * 63 * @return the expected constraints or an empty array if no expected constraints 64 * are defined 65 */ 66 @NonNull 67 Expect[] expect() default {}; 68 }