From 946cab444bc301d8a7c756a1bab039558288de89 Mon Sep 17 00:00:00 2001 From: "Benjamin J. Culkin" Date: Wed, 11 Oct 2017 13:41:07 -0300 Subject: Cleanup work --- base/src/main/java/bjc/utils/data/IPair.java | 146 +++++++++++++++++---------- 1 file changed, 92 insertions(+), 54 deletions(-) (limited to 'base/src/main/java/bjc/utils/data/IPair.java') diff --git a/base/src/main/java/bjc/utils/data/IPair.java b/base/src/main/java/bjc/utils/data/IPair.java index db8a1cb..75b092d 100644 --- a/base/src/main/java/bjc/utils/data/IPair.java +++ b/base/src/main/java/bjc/utils/data/IPair.java @@ -7,64 +7,80 @@ import java.util.function.Function; import bjc.utils.funcdata.theory.Bifunctor; /** - * Represents a pair of values + * Represents a pair of values. * * @author ben + * * @param - * The type of the left side of the pair + * The type of the left side of the pair. + * * @param - * The type of the right side of the pair + * The type of the right side of the pair. * */ public interface IPair extends Bifunctor { /** - * Bind a function across the values in this pair + * Bind a function across the values in this pair. * * @param - * The type of the bound left + * The type of the bound left. + * * @param - * The type of the bound right + * The type of the bound right. + * * @param binder - * The function to bind with - * @return The bound pair + * The function to bind with. + * + * @return + * The bound pair. */ public IPair bind( BiFunction> binder); /** - * Bind a function to the left value in this pair + * Bind a function to the left value in this pair. * * @param - * The type of the bound value + * The type of the bound value. + * * @param leftBinder - * The function to use to bind - * @return A pair with the left type bound + * The function to use to bind. + * + * @return + * A pair with the left type bound. */ public IPair bindLeft( Function> leftBinder); /** - * Bind a function to the right value in this pair + * Bind a function to the right value in this pair. * * @param - * The type of the bound value + * The type of the bound value. + * * @param rightBinder - * The function to use to bind - * @return A pair with the right type bound + * The function to use to bind. + * + * @return + * A pair with the right type bound. */ public IPair bindRight( Function> rightBinder); /** - * Pairwise combine two pairs together + * Pairwise combine two pairs together. * * @param - * The left type of the other pair + * The left type of the other pair. + * * @param - * The right type of the other pair + * The right type of the other pair. + * * @param otherPair - * The pair to combine with - * @return The pairs, pairwise combined together + * The pair to combine with. + * + * @return + * The pairs, pairwise combined together. */ public default IPair, IPair> combine( final IPair otherPair) { @@ -72,21 +88,31 @@ public interface IPair extends Bifunctor - * The type of the left value of the other pair + * The type of the left value of the other pair. + * * @param - * The type of the right value of the other pair + * The type of the right value of the other pair. + * * @param - * The type of the left value of the combined pair + * The type of the left value of the combined pair. + * * @param - * The type of the right value of the combined pair + * The type of the right value of the combined pair. + * * @param otherPair - * The other pair to combine with + * The other pair to combine with. + * * @param leftCombiner + * The function to combine the left values with. + * * @param rightCombiner - * @return A pair with its values combined + * The function to combine the right values with. + * + * @return + * A pair with its values combined. */ public IPair combine( IPair otherPair, @@ -95,10 +121,10 @@ public interface IPair extends Bifunctor consumer) { merge((leftValue, rightValue) -> { @@ -109,8 +135,8 @@ public interface IPair extends Bifunctor LeftBifunctorMap fmapLeft( - final Function func) { + default LeftBifunctorMap + fmapLeft(final Function func) { return argumentPair -> { if (!(argumentPair instanceof IPair)) { final String msg = "This function can only be applied to instances of IPair"; @@ -125,8 +151,7 @@ public interface IPair extends Bifunctor RightBifunctorMap - + default RightBifunctorMap fmapRight(final Function func) { return argumentPair -> { if (!(argumentPair instanceof IPair)) { @@ -142,9 +167,10 @@ public interface IPair extends Bifunctor extends Bifunctor extends Bifunctor - * The new type of the left part of the pair + * The new type of the left part of the pair. + * * @param mapper - * The function to use to transform the left part of the - * pair - * @return The pair, with its left part transformed + * The function to use to transform the left part of the + * pair. + * + * @return + * The pair, with its left part transformed. */ public IPair mapLeft(Function mapper); /** - * Transform the value on the right side of the pair. Doesn't modify the - * pair + * Transform the value on the right side of the pair. + * + * Doesn't modify the pair. * * @param - * The new type of the right part of the pair + * The new type of the right part of the pair. + * * @param mapper - * The function to use to transform the right part of the - * pair - * @return The pair, with its right part transformed + * The function to use to transform the right part of the + * pair. + * + * @return + * The pair, with its right part transformed. */ public IPair mapRight(Function mapper); /** - * Merge the two values in this pair into a single value + * Merge the two values in this pair into a single value. * * @param - * The type of the single value + * The type of the single value. + * * @param merger - * The function to use for merging - * @return The pair, merged into a single value + * The function to use for merging. + * + * @return + * The pair, merged into a single value. */ public MergedType merge(BiFunction merger); } -- cgit v1.2.3