1 /*
2 * SPDX-FileCopyrightText: none
3 * SPDX-License-Identifier: CC0-1.0
4 */
5
6 package gov.nist.secauto.metaschema.core.model;
7
8 /**
9 * Represents a model element that can contain child instances.
10 * <p>
11 * This interface is implemented by model definitions that may contain flags,
12 * fields, or assemblies as part of their structure.
13 */
14 @FunctionalInterface
15 public interface IContainer {
16 /**
17 * Identifies if the container allows child instances or not.
18 * <p>
19 * This can be the case if the container has flags or a complex model with at
20 * least a choice, choice group, field, or assembly instance.
21 *
22 * @return {@code true} if there are flags or a model, or {@code false}
23 * otherwise
24 */
25 boolean hasChildren();
26 }