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.ElementType.ANNOTATION_TYPE;
009import static java.lang.annotation.RetentionPolicy.RUNTIME;
010
011import gov.nist.secauto.metaschema.core.model.IAttributable;
012
013import java.lang.annotation.Retention;
014import java.lang.annotation.Target;
015
016import edu.umd.cs.findbugs.annotations.NonNull;
017
018@Retention(RUNTIME)
019@Target(ANNOTATION_TYPE)
020public @interface Property {
021  /**
022   * The name of the property.
023   *
024   * @return the name
025   */
026  @NonNull
027  String name();
028
029  /**
030   * The namespace of the property's name.
031   *
032   * @return the namespace
033   */
034  @NonNull
035  String namespace() default IAttributable.DEFAULT_PROPERY_NAMESPACE;
036
037  /**
038   * The values for the property's name and namespace.
039   *
040   * @return the namespace
041   */
042  @NonNull
043  String[] values();
044}