1   /*
2    * SPDX-FileCopyrightText: none
3    * SPDX-License-Identifier: CC0-1.0
4    */
5   
6   package gov.nist.secauto.metaschema.databind.model;
7   
8   import gov.nist.secauto.metaschema.core.model.IValued;
9   
10  import java.lang.reflect.ParameterizedType;
11  import java.lang.reflect.Type;
12  
13  import edu.umd.cs.findbugs.annotations.NonNull;
14  
15  @FunctionalInterface
16  public interface IValuedMutable extends IValued {
17    /**
18     * Set the provided value on the provided object. The provided object must be of
19     * the item's type associated with this instance.
20     *
21     * @param parentObject
22     *          the object
23     * @param value
24     *          a value, which may be a simple {@link Type} or a
25     *          {@link ParameterizedType} for a collection
26     */
27    void setValue(@NonNull Object parentObject, Object value);
28  }