diff options
Diffstat (limited to 'src/main/java/bjc/funcdata/IFreezable.java')
| -rw-r--r-- | src/main/java/bjc/funcdata/IFreezable.java | 73 |
1 files changed, 0 insertions, 73 deletions
diff --git a/src/main/java/bjc/funcdata/IFreezable.java b/src/main/java/bjc/funcdata/IFreezable.java deleted file mode 100644 index abc7d6f..0000000 --- a/src/main/java/bjc/funcdata/IFreezable.java +++ /dev/null @@ -1,73 +0,0 @@ -package bjc.funcdata; - -/** - * Indicates that an object can switch between immutable and mutable modes. - * - * Note that this only implements 'shallow' immutability. Namely, any sub-objects - * are not made immutable, and if the type is a collection, the elements are still - * as mutable as they were before. - * - * Implementations of this interface may choose to throw {@link ObjectFrozen} if - * you attempt to modify a frozen object, but they may also choose not to. - * - * @author Ben Culkin - */ -public interface IFreezable { - /** - * Freezes the internal state of this object, making it immutable. - * - * @return True if the object is frozen, false if it couldn't be frozen. - */ - public boolean freeze(); - /** - * Thaws the internal state of this object, making it mutable. - * - * @return True if the object is thawed, false if it couldn't be thawed. - */ - public boolean thaw(); - - /** - * 'Deep-freeze' this object, making it immutable and disabling the ability to - * thaw it. - * - * @return True if the object was deep-frozen, false if that couldn't happen. - */ - default boolean deepFreeze() { - return false; - } - - /** - * Check if this object can be frozen. - * - * @return Whether or not the object can be frozen. - */ - default boolean canFreeze() { - return false; - } - - /** - * Checks if this object can be thawed. - * - * @return Whether or not the object can be thawed. - */ - default boolean canThaw() { - return false; - } - - /** - * Determines if this object is frozen. - * - * @return True if the object is frozen, false if the object is thawed. - */ - public boolean isFrozen(); - - - /** - * Determines if this object is thawed. - * - * @return True if the object is thawed, false if the object is thawed. - */ - default boolean isThawed() { - return !isFrozen(); - } -} |
