From f8643f98c9a091cd9b56fc9468197ae58df0364b Mon Sep 17 00:00:00 2001 From: Ben Culkin Date: Sat, 24 Sep 2022 12:35:09 -0400 Subject: Implement basic Petri nets --- src/main/java/bjc/funcdata/Freezable.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'src/main/java/bjc/funcdata') 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> { /** * 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(); + } } -- cgit v1.2.3