Provides a level of indirection for property value access, most often used for deferred faulting of to-one relationships. A ValueHolder abstracts how a property value is obtained (fetched from DB, etc.), thus simplifying design of an object that uses it.
Here is an example of a bean property implemented using ValueHolder:
protected ValueHolder someProperty; public SomeClass getSomeProperty() { return (SomeClass) somePropertyHolder.getValue(SomeClass.class); } public void setSomeProperty(SomeClass newValue) { somePropertyHolder.setValue(SomeClass.class, newValue); }
@since 1.2