001/*
002 * SPDX-FileCopyrightText: none
003 * SPDX-License-Identifier: CC0-1.0
004 */
005
006package dev.metaschema.core.model;
007
008import java.util.Collection;
009
010/**
011 * Represents a model container with absolute (non-grouped) instances.
012 * <p>
013 * Absolute instances are identified by their effective name (index) rather than
014 * a use name. This interface narrows the return types of
015 * {@link IContainerModel} methods to absolute instance types.
016 */
017public interface IContainerModelAbsolute extends IContainerModel {
018
019  @Override
020  Collection<? extends IModelInstanceAbsolute> getModelInstances();
021
022  @Override
023  Collection<? extends INamedModelInstanceAbsolute> getNamedModelInstances();
024
025  @Override
026  INamedModelInstanceAbsolute getNamedModelInstanceByName(Integer name);
027
028  @Override
029  Collection<? extends IFieldInstanceAbsolute> getFieldInstances();
030
031  @Override
032  IFieldInstanceAbsolute getFieldInstanceByName(Integer name);
033
034  @Override
035  Collection<? extends IAssemblyInstanceAbsolute> getAssemblyInstances();
036
037  @Override
038  IAssemblyInstanceAbsolute getAssemblyInstanceByName(Integer name);
039}