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 ClassesModifier and TypeInterfaceDescriptionstatic classA ValueRef for the null value.static classA ValueRef holder for a single value, which cannot be set. -
Method Summary
Modifier and TypeMethodDescriptiongetValue()Returns the value this ValueRef points to, it should not require expression component re-evaluation.booleanIndicates whether calling setValue(Object) is supported.voidSets the value this ValueRef points to, it should not require expression component re-evaluation.
-
Method Details
-
getValue
TypedValue getValue()Returns the value this ValueRef points to, it should not require expression component re-evaluation.- Returns:
- the value
-
setValue
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.
-