Freezable

public interface Freezable

Interface for data objects that support being frozen into immutable representations.

Public Method Summary

abstract T
freeze()
Freeze a volatile representation into an immutable representation.
abstract boolean
isDataValid()
Check to see if this object is valid for use.

Public Methods

public abstract T freeze ()

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.
 
 
Returns
  • A concrete implementation of the data object.

public abstract boolean isDataValid ()

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.

Returns
  • whether or not the object is valid for use.