1 /*
2 * SPDX-FileCopyrightText: none
3 * SPDX-License-Identifier: CC0-1.0
4 */
5
6 package gov.nist.secauto.metaschema.schemagen.json.impl;
7
8 import gov.nist.secauto.metaschema.core.model.IAssemblyDefinition;
9 import gov.nist.secauto.metaschema.core.model.IChoiceInstance;
10
11 import java.util.List;
12
13 import edu.umd.cs.findbugs.annotations.NonNull;
14
15 /**
16 * Supports generation of a JSON schema based on a Metaschema model assembly
17 * definition, which can be generated inline or as a JSON schema definition.
18 */
19 public interface IJsonSchemaDefinitionAssembly extends IJsonSchemaModelDefinition {
20 @Override
21 IAssemblyDefinition getDefinition();
22
23 /**
24 * Get the property combinations, which are exploded based on the presence of an
25 * {@link IChoiceInstance} in the assembly definition's model.
26 *
27 * @return the sequence of possible property combinations or an empty list if
28 * the resulting JSON schema has no properties
29 */
30 @NonNull
31 List<JsonSchemaHelper.Choice> getChoices();
32 }