001package arez.spy;
002
003import grim.annotations.OmitType;
004
005/**
006 * Returning the value of an ObservableValue.
007 *
008 * @param <T> The type of the ObservableValue value.
009 */
010@OmitType( unless = "arez.enable_property_introspection" )
011@FunctionalInterface
012public interface PropertyAccessor<T>
013{
014  /**
015   * Return the value of an ObservableValue.
016   *
017   * @return the value of an ObservableValue.
018   * @throws Throwable if unable to retrieve value.
019   */
020  T get()
021    throws Throwable;
022}