001/* 002 * SPDX-FileCopyrightText: none 003 * SPDX-License-Identifier: CC0-1.0 004 */ 005 006package dev.metaschema.databind.model; 007 008import java.lang.reflect.ParameterizedType; 009import java.lang.reflect.Type; 010 011import dev.metaschema.core.model.IValued; 012import edu.umd.cs.findbugs.annotations.NonNull; 013 014/** 015 * Extends {@link IValued} to provide the ability to set a value on a parent 016 * object. 017 */ 018@FunctionalInterface 019public interface IValuedMutable extends IValued { 020 /** 021 * Set the provided value on the provided object. The provided object must be of 022 * the item's type associated with this instance. 023 * 024 * @param parentObject 025 * the object 026 * @param value 027 * a value, which may be a simple {@link Type} or a 028 * {@link ParameterizedType} for a collection 029 */ 030 void setValue(@NonNull Object parentObject, Object value); 031}