Class CopyOnWriteUtils

java.lang.Object
io.substrait.relation.CopyOnWriteUtils

public class CopyOnWriteUtils extends Object
Provides common utilities for copy-on-write visitations
  • Constructor Details

    • CopyOnWriteUtils

      public CopyOnWriteUtils()
  • Method Details

    • allEmpty

      public static boolean allEmpty(Optional<?>... optionals)
    • or

      public static <T> Optional<T> or(Optional<T> left, Supplier<? extends Optional<T>> right)
      The `or` method on Optional instances is a Java 9+ feature
    • transformList

      public static <I, C extends VisitationContext, E extends Exception> Optional<List<I>> transformList(List<I> items, C context, CopyOnWriteUtils.TransformFunction<I,C,E> transform) throws E
      Applies the given transformation function to each item in the list. If any of the list items are transformed, returns a new list in which each item is either
      • a transformed new item replacing an old item
      • the original item in the position it was in
      Parameters:
      items - the list of items to transform
      transform - the transformation function to apply to each item
      Returns:
      An empty optional if none of the items have changed. An optional containing a new list otherwise.
      Throws:
      E extends Exception