summaryrefslogtreecommitdiff
path: root/BJC-Utils2/src/main/java/bjc/utils/data/experimental/IHolder.java
diff options
context:
space:
mode:
authorbculkin2442 <bjculkin@mix.wvu.edu>2016-04-17 15:01:44 -0400
committerbculkin2442 <bjculkin@mix.wvu.edu>2016-04-17 15:01:44 -0400
commit77fcc58d1facffbc3af50be8c05985350e9f1355 (patch)
treeb7b81d24c107e644924dc526f8bb034efc62d2dc /BJC-Utils2/src/main/java/bjc/utils/data/experimental/IHolder.java
parenta5850915df72f5968fd1b281eb9e455d50c580ee (diff)
Code maintenace and changes
Diffstat (limited to 'BJC-Utils2/src/main/java/bjc/utils/data/experimental/IHolder.java')
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/data/experimental/IHolder.java101
1 files changed, 0 insertions, 101 deletions
diff --git a/BJC-Utils2/src/main/java/bjc/utils/data/experimental/IHolder.java b/BJC-Utils2/src/main/java/bjc/utils/data/experimental/IHolder.java
deleted file mode 100644
index 6ccf115..0000000
--- a/BJC-Utils2/src/main/java/bjc/utils/data/experimental/IHolder.java
+++ /dev/null
@@ -1,101 +0,0 @@
-package bjc.utils.data.experimental;
-
-import java.util.function.Consumer;
-import java.util.function.Function;
-import java.util.function.UnaryOperator;
-
-/**
- * A holder of a single value.
- *
- * @author ben
- *
- * @param <ContainedType>
- * The type of value held
- */
-public interface IHolder<ContainedType> {
- /**
- * Bind a function across the value in this container
- *
- * @param <BoundType>
- * The type of value in this container
- * @param binder
- * The function to bind to the value
- * @return A holder from binding the value
- */
- public <BoundType> IHolder<BoundType> bind(
- Function<ContainedType, IHolder<BoundType>> binder);
-
- /**
- * Apply an action to the value
- *
- * @param action
- * The action to apply to the value
- */
- public default void doWith(Consumer<ContainedType> action) {
- transform((value) -> {
- action.accept(value);
-
- return value;
- });
- }
-
- /**
- * Get the value contained in this holder without changing it.
- *
- * @return The value held in this holder
- */
- public default ContainedType getValue() {
- return unwrap((value) -> value);
- }
-
- /**
- * Create a new holder with a mapped version of the value in this
- * holder.
- *
- * Does not change the internal state of this holder
- *
- * @param <MappedType>
- * The type of the mapped value
- * @param mapper
- * The function to do mapping with
- * @return A holder with the mapped value
- */
- public <MappedType> IHolder<MappedType> map(
- Function<ContainedType, MappedType> mapper);
-
- /**
- * Transform the value held in this holder
- *
- * @param transformer
- * The function to transform the value with
- * @return The holder itself, for easy chaining
- */
- public IHolder<ContainedType> transform(
- UnaryOperator<ContainedType> transformer);
-
- /**
- * Unwrap the value contained in this holder so that it is no longer
- * held
- *
- * @param <UnwrappedType>
- * The type of the unwrapped value
- * @param unwrapper
- * The function to use to unwrap the value
- * @return The unwrapped held value
- */
- public <UnwrappedType> UnwrappedType unwrap(
- Function<ContainedType, UnwrappedType> unwrapper);
-
- /**
- * Replace the held value with a new one
- *
- * @param newValue
- * The value to hold instead
- * @return The holder itself
- */
- public default IHolder<ContainedType> replace(ContainedType newValue) {
- return transform((oldValue) -> {
- return newValue;
- });
- }
-}