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.IFieldDefinition; 009import edu.umd.cs.findbugs.annotations.Nullable; 010 011/** 012 * Represents a field definition bound to Java data. 013 * <p> 014 * Classes and interfaces implementing this interface can be: 015 * <ul> 016 * <li>"scalar", meaning they have only a scalar field value, or 017 * <li>"complex", meaning they allow flags and are bound to a Java class. 018 * </ul> 019 * 020 * @param <ITEM> 021 * the Java type for associated bound objects 022 */ 023public interface IBoundDefinitionModelField<ITEM> 024 extends IFieldDefinition, IBoundDefinitionModel<ITEM> { 025 026 @Override 027 default IBoundInstanceModelField<ITEM> getInlineInstance() { 028 // never inline 029 return null; 030 } 031 032 @Override 033 @Nullable 034 IBoundInstanceFlag getJsonValueKeyFlagInstance(); 035}