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