From f3814a84f8471684cd483347db4fb7b107c2e635 Mon Sep 17 00:00:00 2001 From: Ben Culkin Date: Thu, 3 Dec 2020 19:28:15 -0500 Subject: Rename interfaces to match Java style Rename several interfaces that were in the style IWhatever, which Java doesn't use --- .../src/main/java/bjc/utils/funcutils/Builder.java | 34 ++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 base/src/main/java/bjc/utils/funcutils/Builder.java (limited to 'base/src/main/java/bjc/utils/funcutils/Builder.java') diff --git a/base/src/main/java/bjc/utils/funcutils/Builder.java b/base/src/main/java/bjc/utils/funcutils/Builder.java new file mode 100644 index 0000000..72c045d --- /dev/null +++ b/base/src/main/java/bjc/utils/funcutils/Builder.java @@ -0,0 +1,34 @@ +package bjc.utils.funcutils; + +/** + * Generic interface for objects that implement the builder pattern. + * + * @author ben + * + * @param + * The type of object being built. + */ +public interface Builder { + /** + * Build the object this builder is building. + * + * @return The built object. + * + * @throws IllegalStateException + * If the data in the builder cannot be built into + * its corresponding object at this point in time. + */ + public E build(); + + /** + * Reset the state of this builder to its initial state. + * + * @throws UnsupportedOperationException + * If the builder doesn't support + * resetting its state. + */ + public default void reset() { + throw new UnsupportedOperationException( + "Builder doesn't support state resetting"); + } +} -- cgit v1.2.3