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  }