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