- Indexed Children
- Named Children
- Attributes.
Lets convert the above statement in English Language to Java language
RenderingContext - Interface representing the context when OAF(UIX) builds(renders) the UI nodes.
BoundValue - Is a simple interface with a single method getValue(RenderingContext context). It is left to the implementation of getValue() method to achieve the run time behavior based on rendering context object.
So OAWebBean (MutableUINode to be precise) have a method to set attribute value.
public void setAttributeValue(AttributeKey attrKey,Object value)
Value can be any implementation of BoundValue interface if it must be determined at runtime.
And at run time, when OAF(UIX) uses getAttributeValue(RenderingContext context, AttributeKey key), a typical code might look like
if ((value instanceof BoundValue))
{
return ((BoundValue)value).getValue(context);
}
Generally the parameters that determine the run time value will be passed to the constructor of BoundValue implementing object. For example DataBoundValue is a implementation of BoundValue which reads value based on DataObject in the context. DataObject is very simple interface to extract arbitarily structured data.
So one of the construtor of that Class is
public DataBoundValue(
Object select
)
where the parameter, select, is used to get the DataObject from RenderingContext.
And getValue() method implementation will be simple
return context.getCurrentDataObject().selectValue(context, select);