Interface Product4<_1,​_2,​_3,​_4>

  • Type Parameters:
    _1 - The first element type
    _2 - The second element type
    _3 - The third element type
    _4 - The fourth element type
    All Superinterfaces:
    java.util.Map.Entry<_1,​_2>, Product2<_1,​_2>, Product3<_1,​_2,​_3>
    All Known Subinterfaces:
    Product5<_1,​_2,​_3,​_4,​_5>, Product6<_1,​_2,​_3,​_4,​_5,​_6>, Product7<_1,​_2,​_3,​_4,​_5,​_6,​_7>, Product8<_1,​_2,​_3,​_4,​_5,​_6,​_7,​_8>
    All Known Implementing Classes:
    Tuple4, Tuple5, Tuple6, Tuple7, Tuple8

    public interface Product4<_1,​_2,​_3,​_4>
    extends Product3<_1,​_2,​_3>
    A product with four values.
    See Also:
    Product2, Tuple4
    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods Default Methods 
      Modifier and Type Method Description
      _4 _4()
      Retrieve the fourth element.
      default <R> R into​(Fn4<? super _1,​? super _2,​? super _3,​? super _4,​? extends R> fn)
      Destructure and apply this product to a function accepting the same number of arguments as this product's slots.
      default Product4<_2,​_1,​_3,​_4> invert()
      Rotate the first two slots of this product.
      static <_1,​_2,​_3,​_4>
      Product4<_1,​_2,​_3,​_4>
      product​(_1 _1, _2 _2, _3 _3, _4 _4)
      Static factory method for creating a generic Product4.
      default Product4<_2,​_3,​_1,​_4> rotateL3()
      Rotate the first three values of this product one slot to the left.
      default Product4<_2,​_3,​_4,​_1> rotateL4()
      Rotate the first four values of this product one slot to the left.
      default Product4<_3,​_1,​_2,​_4> rotateR3()
      Rotate the first three values of this product one slot to the right.
      default Product4<_4,​_1,​_2,​_3> rotateR4()
      Rotate the first four values of this product one slot to the right.
      • Methods inherited from interface java.util.Map.Entry

        equals, hashCode
      • Methods inherited from interface com.jnape.palatable.lambda.adt.product.Product3

        _3, into
    • Method Detail

      • _4

        _4 _4()
        Retrieve the fourth element.
        Returns:
        the fourth element
      • into

        default <R> R into​(Fn4<? super _1,​? super _2,​? super _3,​? super _4,​? extends R> fn)
        Destructure and apply this product to a function accepting the same number of arguments as this product's slots. This can be thought of as a kind of dual to uncurrying a function and applying a product to it.
        Type Parameters:
        R - the return type of the function
        Parameters:
        fn - the function to apply
        Returns:
        the result of applying the destructured product to the function
      • rotateL4

        default Product4<_2,​_3,​_4,​_1> rotateL4()
        Rotate the first four values of this product one slot to the left.
        Returns:
        the left-rotated product
      • rotateR4

        default Product4<_4,​_1,​_2,​_3> rotateR4()
        Rotate the first four values of this product one slot to the right.
        Returns:
        the right-rotated product
      • rotateL3

        default Product4<_2,​_3,​_1,​_4> rotateL3()
        Description copied from interface: Product3
        Rotate the first three values of this product one slot to the left.
        Specified by:
        rotateL3 in interface Product3<_1,​_2,​_3>
        Returns:
        the left-rotated product
      • rotateR3

        default Product4<_3,​_1,​_2,​_4> rotateR3()
        Description copied from interface: Product3
        Rotate the first three values of this product one slot to the right.
        Specified by:
        rotateR3 in interface Product3<_1,​_2,​_3>
        Returns:
        the right-rotated product
      • product

        static <_1,​_2,​_3,​_4> Product4<_1,​_2,​_3,​_4> product​(_1 _1,
                                                                                               _2 _2,
                                                                                               _3 _3,
                                                                                               _4 _4)
        Static factory method for creating a generic Product4.
        Type Parameters:
        _1 - the first slot type
        _2 - the second slot type
        _3 - the third slot type
        _4 - the fourth slot type
        Parameters:
        _1 - the first slot
        _2 - the second slot
        _3 - the third slot
        _4 - the fourth slot
        Returns:
        the Product4