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.ElementType.ANNOTATION_TYPE;
9   import static java.lang.annotation.RetentionPolicy.RUNTIME;
10  
11  import gov.nist.secauto.metaschema.core.model.IAttributable;
12  
13  import java.lang.annotation.Retention;
14  import java.lang.annotation.Target;
15  
16  import edu.umd.cs.findbugs.annotations.NonNull;
17  
18  @Retention(RUNTIME)
19  @Target(ANNOTATION_TYPE)
20  public @interface Property {
21    /**
22     * The name of the property.
23     *
24     * @return the name
25     */
26    @NonNull
27    String name();
28  
29    /**
30     * The namespace of the property's name.
31     *
32     * @return the namespace
33     */
34    @NonNull
35    String namespace() default IAttributable.DEFAULT_PROPERY_NAMESPACE;
36  
37    /**
38     * The values for the property's name and namespace.
39     *
40     * @return the namespace
41     */
42    @NonNull
43    String[] values();
44  }