1   /*
2    * SPDX-FileCopyrightText: none
3    * SPDX-License-Identifier: CC0-1.0
4    */
5   
6   package dev.metaschema.core.model;
7   
8   import java.util.Collection;
9   
10  /**
11   * Represents a model container with absolute (non-grouped) instances.
12   * <p>
13   * Absolute instances are identified by their effective name (index) rather than
14   * a use name. This interface narrows the return types of
15   * {@link IContainerModel} methods to absolute instance types.
16   */
17  public interface IContainerModelAbsolute extends IContainerModel {
18  
19    @Override
20    Collection<? extends IModelInstanceAbsolute> getModelInstances();
21  
22    @Override
23    Collection<? extends INamedModelInstanceAbsolute> getNamedModelInstances();
24  
25    @Override
26    INamedModelInstanceAbsolute getNamedModelInstanceByName(Integer name);
27  
28    @Override
29    Collection<? extends IFieldInstanceAbsolute> getFieldInstances();
30  
31    @Override
32    IFieldInstanceAbsolute getFieldInstanceByName(Integer name);
33  
34    @Override
35    Collection<? extends IAssemblyInstanceAbsolute> getAssemblyInstances();
36  
37    @Override
38    IAssemblyInstanceAbsolute getAssemblyInstanceByName(Integer name);
39  }