## Uses of Interface
org.apache.commons.io.function.IOFunction

- Packages that use IOFunction
  Package | Description
  --- | ---
  org.apache.commons.io | Provides classes for working with streams, readers, writers and files.
  org.apache.commons.io.function | Provides IO-only related functional interfaces for lambda expressions and method references.
  org.apache.commons.io.output | Provides implementations of output classes, such as `OutputStream` and `Writer`.

- - ### Uses of IOFunction in org.apache.commons.io

    Methods in org.apache.commons.io with parameters of type IOFunction
    Modifier and Type | Method and Description
    --- | ---
    `<T> T` | RandomAccessFileMode.`apply(Path file, IOFunction<RandomAccessFile,T> function)` Applies the given function for a `RandomAccessFile` specified at the given `Path`.

  - ### Uses of IOFunction in org.apache.commons.io.function

    Subinterfaces of IOFunction in org.apache.commons.io.function
    Modifier and Type | Interface and Description
    --- | ---
    `interface` | `IOUnaryOperator<T>` Like `UnaryOperator` but throws `IOException`.

    Fields in org.apache.commons.io.function declared as IOFunction
    Modifier and Type | Field and Description
    --- | ---
    `(package private) static IOFunction` | Constants.`IO_FUNCTION_ID` No-op singleton.

    Methods in org.apache.commons.io.function that return IOFunction
    Modifier and Type | Method and Description
    --- | ---
    `default <V> IOFunction<T,V>` | IOFunction.`andThen(java.util.function.Function<? super R,? extends V> after)` Returns a composed `IOFunction` that first applies this function to its input, and then applies the `after` function to the result.
    `default <V> IOFunction<T,V>` | IOFunction.`andThen(IOFunction<? super R,? extends V> after)` Returns a composed `IOFunction` that first applies this function to its input, and then applies the `after` function to the result.
    `default <V> IOFunction<V,R>` | IOFunction.`compose(java.util.function.Function<? super V,? extends T> before)` Returns a composed `IOFunction` that first applies the `before` function to its input, and then applies this function to the result.
    `default <V> IOFunction<V,R>` | IOFunction.`compose(IOFunction<? super V,? extends T> before)` Returns a composed `IOFunction` that first applies the `before` function to its input, and then applies this function to the result.
    `static <T> IOFunction<T,T>` | IOFunction.`identity()` Returns a `IOFunction` that always returns its input argument.

    Methods in org.apache.commons.io.function with parameters of type IOFunction
    Modifier and Type | Method and Description
    --- | ---
    `default <V> IOFunction<T,V>` | IOFunction.`andThen(IOFunction<? super R,? extends V> after)` Returns a composed `IOFunction` that first applies this function to its input, and then applies the `after` function to the result.
    `default <V> IOBiFunction<T,U,V>` | IOBiFunction.`andThen(IOFunction<? super R,? extends V> after)` Creates a composed function that first applies this function to its input, and then applies the `after` function to the result.
    `default <W> IOTriFunction<T,U,V,W>` | IOTriFunction.`andThen(IOFunction<? super R,? extends W> after)` Creates a composed function that first applies this function to its input, and then applies the `after` function to the result.
    `default <X> IOQuadFunction<T,U,V,W,X>` | IOQuadFunction.`andThen(IOFunction<? super R,? extends X> after)` Creates a composed function that first applies this function to its input, and then applies the `after` function to the result.
    `(package private) static <T,R> R` | Erase.`apply(IOFunction<? super T,? extends R> mapper, T t)` Delegates to the given `IOFunction` but erases its `IOException` for the compiler, while still throwing the exception at runtime.
    `static <T,R> R` | Uncheck.`apply(IOFunction<T,R> function, T t)` Applies an IO function with the given arguments.
    `default <V> IOFunction<V,R>` | IOFunction.`compose(IOFunction<? super V,? extends T> before)` Returns a composed `IOFunction` that first applies the `before` function to its input, and then applies this function to the result.
    `default <R> IOStream<R>` | IOStream.`flatMap(IOFunction<? super T,? extends IOStream<? extends R>> mapper)` Like `Stream.flatMap(java.util.function.Function)`.
    `default java.util.stream.DoubleStream` | IOStream.`flatMapToDouble(IOFunction<? super T,? extends java.util.stream.DoubleStream> mapper)` TODO Package-private for now, needs IODoubleStream? Adding this method now and an IO version later is an issue because call sites would have to type-cast to pick one.
    `default java.util.stream.IntStream` | IOStream.`flatMapToInt(IOFunction<? super T,? extends java.util.stream.IntStream> mapper)` TODO Package-private for now, needs IOIntStream? Adding this method now and an IO version later is an issue because call sites would have to type-cast to pick one.
    `default java.util.stream.LongStream` | IOStream.`flatMapToLong(IOFunction<? super T,? extends java.util.stream.LongStream> mapper)` TODO Package-private for now, needs IOLongStream? Adding this method now and an IO version later is an issue because call sites would have to type-cast to pick one.
    `default <R> IOStream<R>` | IOStream.`map(IOFunction<? super T,? extends R> mapper)` Like `Stream.map(java.util.function.Function)`.

  - ### Uses of IOFunction in org.apache.commons.io.output

    Constructors in org.apache.commons.io.output with parameters of type IOFunction
    Constructor and Description
    `ThresholdingOutputStream(int threshold, IOConsumer<ThresholdingOutputStream> thresholdConsumer, IOFunction<ThresholdingOutputStream,OutputStream> outputStreamGetter)` Constructs an instance of this class which will trigger an event at the specified threshold.