001/*
002 * SPDX-FileCopyrightText: none
003 * SPDX-License-Identifier: CC0-1.0
004 */
005
006package gov.nist.secauto.metaschema.schemagen.json;
007
008import gov.nist.secauto.metaschema.core.model.IDefinition;
009
010import java.util.Map;
011
012import edu.umd.cs.findbugs.annotations.NonNull;
013
014public interface IDefinitionJsonSchema<D extends IDefinition>
015    extends IDefineableJsonSchema {
016  @NonNull
017  D getDefinition();
018
019  void gatherDefinitions(
020      @NonNull Map<IKey, IDefinitionJsonSchema<?>> gatheredDefinitions,
021      @NonNull IJsonGenerationState state);
022
023  @NonNull
024  IKey getKey();
025}