Class StreamEncoderRegistry

java.lang.Object
de.craftsblock.craftsnet.api.http.encoding.StreamEncoderRegistry

public final class StreamEncoderRegistry extends Object
A registry for managing and retrieving StreamEncoder instances. This class is responsible for registering, unregistering, and checking the availability of stream encoders.
Since:
3.3.3-SNAPSHOT
  • Constructor Details

    • StreamEncoderRegistry

      public StreamEncoderRegistry()
      Constructs a new StreamEncoderRegistry and registers the built-in stream encoders.
  • Method Details

    • register

      public void register(@NotNull @NotNull StreamEncoder streamEncoder)
      Registers a new StreamEncoder if it is not already registered.
      Parameters:
      streamEncoder - The StreamEncoder to register.
    • unregister

      public void unregister(@NotNull @NotNull StreamEncoder streamEncoder)
      Unregisters the given StreamEncoder. The IdentityStreamEncoder encoder cannot be unregistered, as it is a default encoder.
      Parameters:
      streamEncoder - The StreamEncoder to unregister.
      Throws:
      IllegalArgumentException - if trying to unregister the IdentityStreamEncoder encoder.
    • unregister

      public void unregister(@NotNull @NotNull String encoding)
      Unregisters the StreamEncoder associated with the given encoding name. The "identity" encoding cannot be unregistered.
      Parameters:
      encoding - The encoding name of the stream encoder to unregister.
      Throws:
      IllegalArgumentException - if trying to unregister the "identity" encoder.
    • isRegistered

      public boolean isRegistered(@NotNull @NotNull StreamEncoder streamEncoder)
      Checks if the given StreamEncoder is already registered.
      Parameters:
      streamEncoder - The StreamEncoder to check.
      Returns:
      true if the encoder is registered, false otherwise.
    • isRegistered

      public boolean isRegistered(@NotNull @NotNull String encoding)
      Checks if an StreamEncoder with the given encoding name is registered.
      Parameters:
      encoding - The encoding name to check.
      Returns:
      true if the encoding is registered, false otherwise.
    • isAvailable

      public boolean isAvailable(@NotNull @NotNull String encoding)
      Checks if an StreamEncoder with the given encoding name is available. An encoder is considered available if it is registered and the StreamEncoder.isAvailable() method returns true.
      Parameters:
      encoding - The encoding name to check.
      Returns:
      true if the encoder is available, false otherwise.
    • retrieveEncoder

      @Nullable public @Nullable StreamEncoder retrieveEncoder(@NotNull @NotNull String encoding)
      Retrieves a StreamEncoder by its encoding name. The encoder must be available, meaning it is registered and StreamEncoder.isAvailable() returns true.
      Parameters:
      encoding - The encoding name of the encoder to retrieve.
      Returns:
      The StreamEncoder for the given encoding name, or null if no available encoder is found.
    • retrieveEncoder

      @Nullable public @Nullable StreamEncoder retrieveEncoder(@NotNull @NotNull Class<? extends StreamEncoder> type)
      Retrieves a StreamEncoder by its type. The encoder must be available, meaning it is registered and StreamEncoder.isAvailable() returns true.
      Parameters:
      type - The class type of the encoder to retrieve.
      Returns:
      The StreamEncoder of the given type, or null if no available encoder of that type is found.
    • getStreamEncoders

      @NotNull public @Unmodifiable @NotNull Collection<StreamEncoder> getStreamEncoders()
      Retrieves a list of all registered StreamEncoder.
      Returns:
      The list of StreamEncoder.
      Since:
      3.3.5-SNAPSHOT