summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbculkin2442 <bjculkin@mix.wvu.edu>2016-03-31 17:39:52 -0400
committerbculkin2442 <bjculkin@mix.wvu.edu>2016-03-31 17:39:52 -0400
commita00b34502b11aded74d22a2df72c8751182607da (patch)
tree23d69a72d0352d295557e3a35b7d4db254972182
parent8a8b457c98e207d809a7616e73eb59bfe197a7a5 (diff)
Created interface for implementations of builder pattern
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/funcutils/IBuilder.java32
1 files changed, 32 insertions, 0 deletions
diff --git a/BJC-Utils2/src/main/java/bjc/utils/funcutils/IBuilder.java b/BJC-Utils2/src/main/java/bjc/utils/funcutils/IBuilder.java
new file mode 100644
index 0000000..a55e8e0
--- /dev/null
+++ b/BJC-Utils2/src/main/java/bjc/utils/funcutils/IBuilder.java
@@ -0,0 +1,32 @@
+package bjc.utils.funcutils;
+
+/**
+ * Generic interface for objects that implement the builder pattern
+ *
+ * @author ben
+ *
+ * @param <E>
+ * The type of object being built
+ */
+public interface IBuilder<E> {
+ /**
+ * 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");
+ }
+}