com.google.common.hash

## Class Funnels

- java.lang.Object
- - com.google.common.hash.Funnels

-     @Beta
      @CheckReturnValue
      public final class Funnels
      extends java.lang.Object

  Funnels for common types. All implementations are serializable.
  Since:
    11.0

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `static java.io.OutputStream` | `asOutputStream(PrimitiveSink sink)` Wraps a `PrimitiveSink` as an `OutputStream`, so it is easy to `funnel` an object to a `PrimitiveSink` if there is already a way to write the contents of the object to an `OutputStream`.
    `static Funnel<byte[]>` | `byteArrayFunnel()` Returns a funnel that extracts the bytes from a `byte` array.
    `static Funnel<java.lang.Integer>` | `integerFunnel()` Returns a funnel for integers.
    `static Funnel<java.lang.Long>` | `longFunnel()` Returns a funnel for longs.
    `static <E> Funnel<java.lang.Iterable<? extends E>>` | `sequentialFunnel(Funnel<E> elementFunnel)` Returns a funnel that processes an `Iterable` by funneling its elements in iteration order with the specified funnel.
    `static Funnel<java.lang.CharSequence>` | `stringFunnel(java.nio.charset.Charset charset)` Returns a funnel that encodes the characters of a `CharSequence` with the specified `Charset`.
    `static Funnel<java.lang.CharSequence>` | `unencodedCharsFunnel()` Returns a funnel that extracts the characters from a `CharSequence`, a character at a time, without performing any encoding.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Method Detail

    - #### byteArrayFunnel

          public static Funnel<byte[]> byteArrayFunnel()

      Returns a funnel that extracts the bytes from a `byte` array.

    - #### unencodedCharsFunnel

          public static Funnel<java.lang.CharSequence> unencodedCharsFunnel()

      Returns a funnel that extracts the characters from a `CharSequence`, a character at a time, without performing any encoding. If you need to use a specific encoding, use `stringFunnel(Charset)` instead.
      Since:
        15.0 (since 11.0 as `Funnels.stringFunnel()`.

    - #### stringFunnel

          public static Funnel<java.lang.CharSequence> stringFunnel(java.nio.charset.Charset charset)

      Returns a funnel that encodes the characters of a `CharSequence` with the specified `Charset`.
      Since:
        15.0

    - #### integerFunnel

          public static Funnel<java.lang.Integer> integerFunnel()

      Returns a funnel for integers.
      Since:
        13.0

    - #### sequentialFunnel

          public static <E> Funnel<java.lang.Iterable<? extends E>> sequentialFunnel(Funnel<E> elementFunnel)

      Returns a funnel that processes an `Iterable` by funneling its elements in iteration order with the specified funnel. No separators are added between the elements.
      Since:
        15.0

    - #### longFunnel

          public static Funnel<java.lang.Long> longFunnel()

      Returns a funnel for longs.
      Since:
        13.0

    - #### asOutputStream

          public static java.io.OutputStream asOutputStream(PrimitiveSink sink)

      Wraps a `PrimitiveSink` as an `OutputStream`, so it is easy to `funnel` an object to a `PrimitiveSink` if there is already a way to write the contents of the object to an `OutputStream`.

      The `close` and `flush` methods of the returned `OutputStream` do nothing, and no method throws `IOException`.

      Since:
        13.0