001/* 002 * SPDX-FileCopyrightText: none 003 * SPDX-License-Identifier: CC0-1.0 004 */ 005 006package dev.metaschema.databind.codegen; 007 008import dev.metaschema.core.model.IModelDefinition; 009import edu.umd.cs.findbugs.annotations.NonNull; 010 011/** 012 * Represents a generated Java class for a Metaschema definition. 013 */ 014public interface IGeneratedDefinitionClass extends IGeneratedClass { 015 016 /** 017 * Get the Module definition associated with this class. 018 * 019 * @return the definition 020 */ 021 @NonNull 022 IModelDefinition getDefinition(); 023 024 /** 025 * Indicates if the class represents a root Module assembly which can be the 026 * top-level element/property of an XML, JSON, or YAML instance. 027 * 028 * @return {@code true} if the class is a root assembly, or {@code false} 029 * otherwise 030 */ 031 boolean isRootClass(); 032}