Interface ValueRef
- All Known Implementing Classes:
ValueRef.NullValueRef
,ValueRef.TypedValueHolderValueRef
public interface ValueRef
Represents a reference to a value. With a reference it is possible to get or set the value. Passing around value references rather than the values themselves can avoid incorrect duplication of operand evaluation. For example in 'list[index++]++' without a value reference for 'list[index++]' it would be necessary to evaluate list[index++] twice (once to get the value, once to determine where the value goes) and that would double increment index.- Since:
- 3.2
- Author:
- Andy Clement
Nested Class Summary
Nested Classes Modifier and Type Interface Description static class
ValueRef.NullValueRef
A ValueRef for the null value.static class
ValueRef.TypedValueHolderValueRef
A ValueRef holder for a single value, which cannot be set.
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description TypedValue
getValue()
Returns the value this ValueRef points to, it should not require expression component re-evaluation.boolean
isWritable()
Indicates whether calling setValue(Object) is supported.void
setValue(Object newValue)
Sets the value this ValueRef points to, it should not require expression component re-evaluation.
Method Detail
getValue
TypedValue getValue()
Returns the value this ValueRef points to, it should not require expression component re-evaluation.- Returns:
- the value
setValue
void setValue(Object newValue)
Sets the value this ValueRef points to, it should not require expression component re-evaluation.- Parameters:
newValue
- the new value
isWritable
boolean isWritable()
Indicates whether calling setValue(Object) is supported.- Returns:
- true if setValue() is supported for this value reference.