diff options
| author | Ben Culkin <scorpress@gmail.com> | 2022-09-24 12:35:09 -0400 |
|---|---|---|
| committer | Ben Culkin <scorpress@gmail.com> | 2022-09-24 12:35:09 -0400 |
| commit | f8643f98c9a091cd9b56fc9468197ae58df0364b (patch) | |
| tree | d112df4257c6284050d12c83ee39f1ea2be335aa /src/main/java/bjc/funcdata | |
| parent | a7ab5364c4fc372d70ef5df910d38feec6be3adb (diff) | |
Implement basic Petri nets
Diffstat (limited to 'src/main/java/bjc/funcdata')
| -rw-r--r-- | src/main/java/bjc/funcdata/Freezable.java | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/main/java/bjc/funcdata/Freezable.java b/src/main/java/bjc/funcdata/Freezable.java index e83accb..8bb037c 100644 --- a/src/main/java/bjc/funcdata/Freezable.java +++ b/src/main/java/bjc/funcdata/Freezable.java @@ -12,7 +12,7 @@ package bjc.funcdata; * * @author Ben Culkin */ -public interface Freezable { +public interface Freezable<F extends Freezable<?>> { /** * Freezes the internal state of this object, making it immutable. * @@ -70,4 +70,15 @@ public interface Freezable { default boolean isThawed() { return !isFrozen(); } + + /** + * Clone this object in a thawed state. + * + * @return A thawed clone of this object + * + * @throws CloneNotSupportedException If the underlying object doesn't support cloning + */ + default F cloneAsThawed() throws CloneNotSupportedException { + throw new CloneNotSupportedException(); + } } |
