package org.bindgen; /** * Interface for a property (field or method) binding. * * @param R the type of the root object of the binding * @param T the type of the leaf object of the binding */ public interface BindingRoot<R, T> extends Binding<T> { /** * @param root the explicit root to use for traversing the path * @return the value for this binding when evaluated against <code>root</code> */ T getWithRoot(R root); /** * @param root the explicit root to use for traversing the path * @return the value for this binding when evaluated against <code>root</code>, or <code>null</code> if any binding is null */ T getSafelyWithRoot(R root); /** * @param root the explicit root to use for traversing the path * @param value the new value for this binding */ void setWithRoot(R root, T value); }