Interface for data objects that support being frozen into immutable representations.
| abstract T |
freeze()
Freeze a volatile representation into an immutable representation.
|
| abstract boolean |
isDataValid()
Check to see if this object is valid for use.
|
Freeze a volatile representation into an immutable representation. Objects returned from this call are safe to cache.
Note that the output of freeze may not be identical to the parent
object, but should be equal. In other words:
Freezable f1 = new Freezable();
Freezable f2 = f1.freeze();
f1 == f2 may not be true.
f1.equals(f2) will be true.
Check to see if this object is valid for use. If the object is still volatile, this
method will indicate whether or not the object can be safely used. The output of a call
to freeze()
will always be valid.