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 Let {
21    /**
22     * The variable name.
23     *
24     * @return the variable name
25     */
26    @NonNull
27    String name();
28  
29    /**
30     * A Metapath to use the query the values assigned to the variable.
31     *
32     * @return the value Metapath
33     */
34    @NonNull
35    String target();
36  
37    /**
38     * Any remarks about the let statement, encoded as an escaped Markdown string.
39     *
40     * @return an encoded Markdown string or an empty string if no remarks are
41     *         provided
42     */
43    @NonNull
44    String remarks() default "";
45  }