Class ConstantLambdaUtils

java.lang.Object
ai.timefold.solver.core.impl.util.ConstantLambdaUtils

public final class ConstantLambdaUtils extends Object
A class that holds common lambdas that are guaranteed to be the same across method calls. In most JDK's, stateless lambdas are bound to a ConstantCallSite inside the method that defined them, but that ConstantCallSite is not shared across methods, even for methods in the same class. Thus, when lambda reference equality is important (such as for node sharing in Constraint Streams), the lambdas in this class should be used.
  • Method Details

    • noop

      public static Runnable noop()
      Returns a Runnable that does nothing.
      Returns:
      never null
    • identity

      public static <A> Function<A,A> identity()
      Returns a Function that returns its only input.
      Returns:
      never null
    • notEquals

      public static <A> BiPredicate<A,A> notEquals()
      Returns a BiPredicate that return true if and only if its inputs are not equal according to Objects.equals(Object, Object).
      Returns:
      never null
    • biPickFirst

      public static <A, B> BiFunction<A,B,A> biPickFirst()
      Returns a BiFunction that returns its first input.
      Returns:
      never null
    • triPickFirst

      public static <A, B, C> TriFunction<A,B,C,A> triPickFirst()
      Returns a TriFunction that returns its first input.
      Returns:
      never null
    • quadPickFirst

      public static <A, B, C, D> QuadFunction<A,B,C,D,A> quadPickFirst()
      Returns a QuadFunction that returns its first input.
      Returns:
      never null
    • biPickSecond

      public static <A, B> BiFunction<A,B,B> biPickSecond()
      Returns a BiFunction that returns its second input.
      Returns:
      never null
    • triPickSecond

      public static <A, B, C> TriFunction<A,B,C,B> triPickSecond()
      Returns a TriFunction that returns its second input.
      Returns:
      never null
    • quadPickSecond

      public static <A, B, C, D> QuadFunction<A,B,C,D,B> quadPickSecond()
      Returns a QuadFunction that returns its second input.
      Returns:
      never null
    • triPickThird

      public static <A, B, C> TriFunction<A,B,C,C> triPickThird()
      Returns a TriFunction that returns its third input.
      Returns:
      never null
    • quadPickThird

      public static <A, B, C, D> QuadFunction<A,B,C,D,C> quadPickThird()
      Returns a TriFunction that returns its third input.
      Returns:
      never null
    • quadPickFourth

      public static <A, B, C, D> QuadFunction<A,B,C,D,D> quadPickFourth()
      Returns a QuadFunction that returns its fourth input.
      Returns:
      never null
    • uniConstantNull

      public static <A, B> Function<A,B> uniConstantNull()
      Returns a Function that returns null.
      Returns:
      never null
    • uniConstantOne

      public static <A> ToIntFunction<A> uniConstantOne()
      Returns a ToIntFunction that returns the constant 1.
      Returns:
      never null
    • uniConstantZeroLong

      public static <A> ToLongFunction<A> uniConstantZeroLong()
      Returns a ToLongFunction that returns the constant 0.
      Returns:
      never null
    • uniConstantOneLong

      public static <A> ToLongFunction<A> uniConstantOneLong()
      Returns a ToLongFunction that returns the constant 1.
      Returns:
      never null
    • uniConstantOneBigDecimal

      public static <A> Function<A,BigDecimal> uniConstantOneBigDecimal()
      Returns a Function that returns the constant 1.
      Returns:
      never null
    • biConstantNull

      public static <A, B, C> BiFunction<A,B,C> biConstantNull()
      Returns a BiFunction that returns null.
      Returns:
      never null
    • biConstantZeroLong

      public static <A, B> ToLongBiFunction<A,B> biConstantZeroLong()
      Returns a ToLongBiFunction that returns the constant 0.
      Returns:
      never null
    • biConstantOne

      public static <A, B> ToIntBiFunction<A,B> biConstantOne()
      Returns a ToIntBiFunction that returns the constant 1.
      Returns:
      never null
    • biConstantOneLong

      public static <A, B> ToLongBiFunction<A,B> biConstantOneLong()
      Returns a ToLongBiFunction that returns the constant 1.
      Returns:
      never null
    • biConstantOneBigDecimal

      public static <A, B> BiFunction<A,B,BigDecimal> biConstantOneBigDecimal()
      Returns a BiFunction that returns the constant 1.
      Returns:
      never null
    • triConstantNull

      public static <A, B, C, D> TriFunction<A,B,C,D> triConstantNull()
      Returns a TriFunction that returns null.
      Returns:
      never null
    • triConstantZeroLong

      public static <A, B, C> ToLongTriFunction<A,B,C> triConstantZeroLong()
      Returns a ToLongTriFunction that returns the constant 0.
      Returns:
      never null
    • triConstantOne

      public static <A, B, C> ToIntTriFunction<A,B,C> triConstantOne()
      Returns a ToIntTriFunction that returns the constant 1.
      Returns:
      never null
    • triConstantOneLong

      public static <A, B, C> ToLongTriFunction<A,B,C> triConstantOneLong()
      Returns a ToLongTriFunction that returns the constant 1.
      Returns:
      never null
    • triConstantOneBigDecimal

      public static <A, B, C> TriFunction<A,B,C,BigDecimal> triConstantOneBigDecimal()
      Returns a TriFunction that returns the constant 1.
      Returns:
      never null
    • quadConstantZeroLong

      public static <A, B, C, D> ToLongQuadFunction<A,B,C,D> quadConstantZeroLong()
      Returns a ToLongQuadFunction that returns the constant 0.
      Returns:
      never null
    • quadConstantOne

      public static <A, B, C, D> ToIntQuadFunction<A,B,C,D> quadConstantOne()
      Returns a ToIntQuadFunction that returns the constant 1.
      Returns:
      never null
    • quadConstantOneLong

      public static <A, B, C, D> ToLongQuadFunction<A,B,C,D> quadConstantOneLong()
      Returns a ToLongQuadFunction that returns the constant 1.
      Returns:
      never null
    • quadConstantOneBigDecimal

      public static <A, B, C, D> QuadFunction<A,B,C,D,BigDecimal> quadConstantOneBigDecimal()
      Returns a QuadFunction that returns the constant 1.
      Returns:
      never null