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.PACKAGE; 009import static java.lang.annotation.RetentionPolicy.RUNTIME; 010 011import java.lang.annotation.Retention; 012import java.lang.annotation.Target; 013 014import dev.metaschema.core.model.IModule; 015import dev.metaschema.databind.model.IBoundModule; 016 017/** 018 * Associates Metaschema module classes with a package. 019 */ 020@Retention(RUNTIME) 021@Target(PACKAGE) 022public @interface MetaschemaPackage { 023 /** 024 * Get the metaschemas associated with this package. 025 * 026 * @return the classes that extend {@link IModule} or an empty array if no 027 * metaschemas are defined 028 */ 029 Class<? extends IBoundModule>[] moduleClass() default {}; 030}