001/* 002 * SPDX-FileCopyrightText: none 003 * SPDX-License-Identifier: CC0-1.0 004 */ 005 006package dev.metaschema.databind.model.annotations; 007 008import static java.lang.annotation.ElementType.ANNOTATION_TYPE; 009import static java.lang.annotation.RetentionPolicy.RUNTIME; 010 011import java.lang.annotation.Retention; 012import java.lang.annotation.Target; 013 014import dev.metaschema.core.model.IAttributable; 015import edu.umd.cs.findbugs.annotations.NonNull; 016 017/** 018 * Defines a name-value property for a Metaschema definition or instance. 019 */ 020@Retention(RUNTIME) 021@Target(ANNOTATION_TYPE) 022public @interface Property { 023 /** 024 * The name of the property. 025 * 026 * @return the name 027 */ 028 @NonNull 029 String name(); 030 031 /** 032 * The namespace of the property's name. 033 * 034 * @return the namespace 035 */ 036 @NonNull 037 String namespace() default IAttributable.DEFAULT_PROPERY_NAMESPACE; 038 039 /** 040 * The values for the property's name and namespace. 041 * 042 * @return the namespace 043 */ 044 @NonNull 045 String[] values(); 046}