Class Ior

  • All Implemented Interfaces:

    
    public class Ior<A extends Object, B extends Object>
    
                        

    ABの両方の値または片方だけを保持するクラスです。

    Since:

    0.1.0

    Author:

    Hiiragi Tsubasa

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      public final class Ior.Left

      Aだけを保持するIorの実装クラスです。

      public final class Ior.Right

      Bだけを保持するIorの実装クラスです。

      public final class Ior.Both

      ABの両方を保持するIorの実装クラスです。

    • Field Summary

      Fields 
      Modifier and Type Field Description
    • Constructor Summary

      Constructors 
      Constructor Description
    • Enum Constant Summary

      Enum Constants 
      Enum Constant Description
    • Method Summary

      Modifier and Type Method Description
      final Boolean isLeft() このインスタンスがLeftであるか判定します。
      final Boolean isRight() このインスタンスがRightであるか判定します。
      final Boolean isBoth() このインスタンスがBothであるか判定します。
      final <C extends Any> C fold(Function1<A, C> left, Function1<B, C> right, Function2<A, B, C> both) 保持している値を変換します。
      final <C extends Any> C map(Function1<A, C> left, Function1<B, C> right, Function2<C, C, C> combine) 保持している値を変換します。
      final <C extends Any> Ior<A, C> mapRight(Function1<B, C> right) 保持している値を変換します。
      final <C extends Any> Ior<C, B> mapLeft(Function1<A, C> left) 保持している値を変換します。
      final Ior<B, A> swap() 保持している値を入れ替えます。
      final Either<Either<A, B>, Pair<A, B>> unwrap() 保持している値をEitherに展開します。
      final Pair<A, B> toPair() 保持している値をPairに展開します。
      final B getRight() 右側の値を取得します。
      final A getLeft() 左側の値を取得します。
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

    • Method Detail

      • isLeft

         final Boolean isLeft()

        このインスタンスがLeftであるか判定します。

        Returns:

        Leftの場合はtrue,それ以外の場合はfalse

      • isRight

         final Boolean isRight()

        このインスタンスがRightであるか判定します。

        Returns:

        Rightの場合はtrue,それ以外の場合はfalse

      • isBoth

         final Boolean isBoth()

        このインスタンスがBothであるか判定します。

        Returns:

        Bothの場合はtrue,それ以外の場合はfalse

      • fold

         final <C extends Any> C fold(Function1<A, C> left, Function1<B, C> right, Function2<A, B, C> both)

        保持している値を変換します。

        Parameters:
        left - このインスタンスがLeftの場合の変換ブロック
        right - このインスタンスがRightの場合の変換ブロック
        both - このインスタンスがBothの場合の変換ブロック
        Returns:

        変換された値

      • map

         final <C extends Any> C map(Function1<A, C> left, Function1<B, C> right, Function2<C, C, C> combine)

        保持している値を変換します。

        Parameters:
        left - このインスタンスがLeftの場合の変換ブロック
        right - このインスタンスがRightの場合の変換ブロック
        combine - このインスタンスがBothの場合に変換された値を統合するブロック
        Returns:

        変換された値

      • mapRight

         final <C extends Any> Ior<A, C> mapRight(Function1<B, C> right)

        保持している値を変換します。

        Parameters:
        right - このインスタンスがRightまたはBothの場合の変換ブロック
        Returns:

        変換されたIorのインスタンス

      • mapLeft

         final <C extends Any> Ior<C, B> mapLeft(Function1<A, C> left)

        保持している値を変換します。

        Parameters:
        left - このインスタンスがLeftまたはBothの場合の変換ブロック
        Returns:

        変換されたIorのインスタンス

      • swap

         final Ior<B, A> swap()

        保持している値を入れ替えます。

        Returns:

        値が入れ替わったIorのインスタンス

      • toPair

         final Pair<A, B> toPair()

        保持している値をPairに展開します。

        Returns:

        展開されたPairのインスタンス

      • getRight

         final B getRight()

        右側の値を取得します。

        Returns:

        このインスタンスがLeftの場合はnull

      • getLeft

         final A getLeft()

        左側の値を取得します。

        Returns:

        このインスタンスがRightの場合はnull