Class CloseShieldChannel

java.lang.Object
org.apache.commons.io.channels.CloseShieldChannel

public final class CloseShieldChannel extends Object
Creates a close-shielding proxy for a Channel.

The returned proxy implements all Channel sub-interfaces that are both supported by this implementation and actually implemented by the given delegate.

The following interfaces are supported:

Since:
2.21.0
See Also:
  • Field Details

    • EMPTY

      private static final Class<?>[] EMPTY
  • Constructor Details

    • CloseShieldChannel

      private CloseShieldChannel()
  • Method Details

    • collectChannelInterfaces

      private static Set<Class<?>> collectChannelInterfaces(Class<?> type, Set<Class<?>> out)
    • wrap

      public static <T extends Channel> T wrap(T channel)
      Wraps a channel to shield it from being closed.
      Type Parameters:
      T - A supported channel type.
      Parameters:
      channel - The underlying channel to shield, not null.
      Returns:
      A proxy that shields close() and enforces closed semantics on other calls.
      Throws:
      ClassCastException - if T is not a supported channel type.
      NullPointerException - if channel is null.