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:
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:
  • Method Summary

    Modifier and Type
    Method
    Description
    _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>
    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>
    Rotate the first three values of this product one slot to the left.
    default Product4<_2,_3,_4,_1>
    Rotate the first four values of this product one slot to the left.
    default Product4<_3,_1,_2,_4>
    Rotate the first three values of this product one slot to the right.
    default Product4<_4,_1,_2,_3>
    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.Product2

    _1, _2, getKey, getValue, into, setValue

    Methods inherited from interface com.jnape.palatable.lambda.adt.product.Product3

    _3, into
  • Method Details

    • _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
    • invert

      default Product4<_2,_1,_3,_4> invert()
      Description copied from interface: Product2
      Rotate the first two slots of this product.
      Specified by:
      invert in interface Product2<_1,_2>
      Specified by:
      invert in interface Product3<_1,_2,_3>
      Returns:
      the 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