001/*
002 * SPDX-FileCopyrightText: none
003 * SPDX-License-Identifier: CC0-1.0
004 */
005
006package gov.nist.secauto.metaschema.databind.model;
007
008import gov.nist.secauto.metaschema.core.model.IModuleExtended;
009import gov.nist.secauto.metaschema.databind.IBindingContext;
010
011import java.net.URI;
012import java.util.Collection;
013
014import javax.xml.namespace.QName;
015
016import edu.umd.cs.findbugs.annotations.NonNull;
017
018public interface IBoundModule
019    extends IModuleExtended<
020        IBoundModule,
021        IBoundDefinitionModelComplex,
022        IBoundDefinitionFlag,
023        IBoundDefinitionModelField<?>,
024        IBoundDefinitionModelAssembly> {
025
026  /**
027   * Get the Module binding context.
028   *
029   * @return the context
030   */
031  @NonNull
032  IBindingContext getBindingContext();
033
034  @Override
035  default URI getLocation() { // NOPMD - intentional
036    // not known
037    return null;
038  }
039
040  @Override
041  Collection<IBoundDefinitionModelAssembly> getAssemblyDefinitions();
042
043  @Override
044  IBoundDefinitionModelAssembly getAssemblyDefinitionByName(@NonNull QName name);
045
046  @Override
047  Collection<IBoundDefinitionModelField<?>> getFieldDefinitions();
048
049  @Override
050  IBoundDefinitionModelField<?> getFieldDefinitionByName(@NonNull QName name);
051}