001/*
002 * SPDX-FileCopyrightText: none
003 * SPDX-License-Identifier: CC0-1.0
004 */
005
006package dev.metaschema.databind.model;
007
008import dev.metaschema.core.model.IFeatureContainerFlag;
009import dev.metaschema.databind.IBindingContext;
010import edu.umd.cs.findbugs.annotations.NonNull;
011
012/**
013 * Represents a field or assembly instance bound to Java data.
014 *
015 * @param <ITEM>
016 *          the Java type for associated bound objects
017 */
018public interface IBoundDefinitionModel<ITEM>
019    extends IBoundModelObject<ITEM>, IFeatureContainerFlag<IBoundInstanceFlag>, IBoundDefinition {
020  /**
021   * Get the binding context used for the definition.
022   *
023   * @return the binding context
024   */
025  @NonNull
026  IBindingContext getBindingContext();
027
028  @Override
029  IBoundInstanceModelNamed<ITEM> getInlineInstance();
030
031  //
032  // @Override
033  // IBoundInstanceFlag getJsonKeyFlagInstance();
034}