1 /*
2 * SPDX-FileCopyrightText: none
3 * SPDX-License-Identifier: CC0-1.0
4 */
5
6 package gov.nist.secauto.metaschema.core.model;
7
8 import edu.umd.cs.findbugs.annotations.NonNull;
9 import edu.umd.cs.findbugs.annotations.Nullable;
10
11 /**
12 * A marker interface for Metaschema constructs that can have a value.
13 */
14 public interface IValued extends IDefaultable {
15 /**
16 * Get the current value from the provided {@code parentInstance} object.
17 * <p>
18 * The provided object must be of the type associated with the definition
19 * containing this instance.
20 *
21 * @param parent
22 * the object associated with the definition containing this property
23 * @return the value if available, or {@code null} otherwise
24 */
25 // from IInstanceAbsolute
26 @Nullable
27 default Object getValue(@NonNull Object parent) {
28 return getResolvedDefaultValue();
29 }
30 }