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.IValued;
009
010import java.lang.reflect.ParameterizedType;
011import java.lang.reflect.Type;
012
013import edu.umd.cs.findbugs.annotations.NonNull;
014
015@FunctionalInterface
016public interface IValuedMutable extends IValued {
017  /**
018   * Set the provided value on the provided object. The provided object must be of
019   * the item's type associated with this instance.
020   *
021   * @param parentObject
022   *          the object
023   * @param value
024   *          a value, which may be a simple {@link Type} or a
025   *          {@link ParameterizedType} for a collection
026   */
027  void setValue(@NonNull Object parentObject, Object value);
028}