public abstract class AbstractDataObject extends Object implements DataObject
Constructor and Description |
---|
AbstractDataObject() |
Modifier and Type | Method and Description |
---|---|
protected void |
checkModify()
Checks whether this DataObject is mutable.
|
abstract Object |
clone()
Perform a deep copy of this object.
|
boolean |
isReadOnly()
Check if this object has been set read-only.
|
void |
setReadOnly()
Set this object to be "read-only".
|
public abstract Object clone()
DataObject
Inherently immutable objects may optionally return the same object without modification from clone(), rather than constructing a new instance.
clone
in interface DataObject
clone
in class Object
public void setReadOnly()
DataObject
Note that a read-only object is not necessarily immutable; if reference types are returned from accessors, then callers could theoretically mutate those objects even if the top-level object is marked as read-only. The ability to make objects read-only is intended to catch programming errors (e.g. attempting to modify a data object passed as part of a SLEE event), not to provide an absolute guarantee of immutability.
Calling setReadOnly() on an object that is already read-only is a no-op.
Some DataObject implementations may be inherently immutable. In those cases, they are considered always read-only.
setReadOnly
in interface DataObject
public boolean isReadOnly()
DataObject
isReadOnly
in interface DataObject
DataObject.setReadOnly()
protected void checkModify()
IllegalStateException
- if this DataObject is read-only