001/*
002 * SPDX-FileCopyrightText: none
003 * SPDX-License-Identifier: CC0-1.0
004 */
005
006package gov.nist.secauto.metaschema.databind.model.annotations;
007
008import static java.lang.annotation.RetentionPolicy.RUNTIME;
009
010import java.lang.annotation.Documented;
011import java.lang.annotation.ElementType;
012import java.lang.annotation.Retention;
013import java.lang.annotation.Target;
014
015import edu.umd.cs.findbugs.annotations.NonNull;
016
017@Documented
018@Retention(RUNTIME)
019@Target(ElementType.ANNOTATION_TYPE)
020public @interface Let {
021  /**
022   * The variable name.
023   *
024   * @return the variable name
025   */
026  @NonNull
027  String name();
028
029  /**
030   * A Metapath to use the query the values assigned to the variable.
031   *
032   * @return the value Metapath
033   */
034  @NonNull
035  String target();
036
037  /**
038   * Any remarks about the let statement, encoded as an escaped Markdown string.
039   *
040   * @return an encoded Markdown string or an empty string if no remarks are
041   *         provided
042   */
043  @NonNull
044  String remarks() default "";
045}