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}