Interface ModifiableConnectPacket

All Superinterfaces:
ConnectPacket

public interface ModifiableConnectPacket
extends ConnectPacket
A modifiable version of the ConnectPacket.
Since:
4.2.0, CE 2020.1
  • Method Details

    • setClientId

      void setClientId​(@NotNull String clientId)
      Set the client ID.

      In case the client ID is changed, future interceptors may be called by a different thread for the same client. Extensions need to ensure thread-safety for shared objects in this case. Interceptors are still called in the same order for the client.

      The client ID provided by the ClientInformation in the ConnectInboundInput is not updated until all ConnectInboundInterceptor for this CONNECT are finished.

      Parameters:
      clientId - The new client ID of the CONNECT.
      Throws:
      IllegalArgumentException - If the client ID is not a valid UTF-8 string.
      IllegalArgumentException - If the client ID exceeds the maximum client ID length.
      IllegalArgumentException - If the client ID is empty.
      Since:
      4.2.0, CE 2020.1
    • setCleanStart

      void setCleanStart​(boolean cleanStart)
      Set the clean start flag.

      For an MQTT 3 client clean start has the same value as clean session by default. However this MQTT 5 property can be used in the same way as for MQTT 5 client via this method.

      Parameters:
      cleanStart - The new clean start flag of the CONNECT.
      Since:
      4.2.0, CE 2020.1
    • setWillPublish

      void setWillPublish​(@Nullable WillPublishPacket willPublish)
      Set the will publish.

      Use Builders.willPublish() to get the WillPublishBuilder to create a will publish. To remove a will publish set this to null.

      To modify the existing WillPublishPacket use getModifiableWillPublish().

      Parameters:
      willPublish - The new will publish for the CONNECT.
      Since:
      4.2.0, CE 2020.1
    • setSessionExpiryInterval

      void setSessionExpiryInterval​(long expiryInterval)
      Set the expiry interval.

      For an MQTT 3 client the expiry will be 0 by default if clean session is false. This method may be used to set a custom session expiry for MQTT 3 clients.

      Parameters:
      expiryInterval - The new expiry interval for the CONNECT.
      Throws:
      IllegalArgumentException - If the expiry interval is more than the configured maximum.
      Since:
      4.2.0, CE 2020.1
    • setKeepAlive

      void setKeepAlive​(int keepAlive)
      Set the keep alive.
      Parameters:
      keepAlive - The new keep alive for the CONNECT.
      Throws:
      IllegalArgumentException - If the keep alive is more than the configured maximum.
      Since:
      4.2.0, CE 2020.1
    • setReceiveMaximum

      void setReceiveMaximum​(int receiveMaximum)
      Set the receive maximum.
      Parameters:
      receiveMaximum - The new receive maximum for the CONNECT.
      Throws:
      IllegalArgumentException - If the receive maximum is less than one or more than '65535'.
      Since:
      4.2.0, CE 2020.1
    • setMaximumPacketSize

      void setMaximumPacketSize​(int maximumPacketSize)
      Set the maximum packet size.
      Parameters:
      maximumPacketSize - The new maximum packet size for the CONNECT.
      Throws:
      IllegalArgumentException - If the maximum packet size is less than one or more than the configured maximum.
      Since:
      4.2.0, CE 2020.1
    • setTopicAliasMaximum

      void setTopicAliasMaximum​(int topicAliasMaximum)
      Set the topic alias maximum. This setting is only respected for MQTT 5 clients. For MQTT 3.x clients this setting is ignored.
      Parameters:
      topicAliasMaximum - The new topic alias maximum for the CONNECT.
      Throws:
      IllegalArgumentException - If the topic alias maximum is more than '65535'.
      Since:
      4.2.0, CE 2020.1
    • setRequestResponseInformation

      void setRequestResponseInformation​(boolean requestResponseInformation)
      Set the request response information. This setting is only respected for MQTT 5 clients. For MQTT 3.x clients this setting is ignored.
      Parameters:
      requestResponseInformation - The new request response information flag for the CONNECT.
      Since:
      4.2.0, CE 2020.1
    • setRequestProblemInformation

      void setRequestProblemInformation​(boolean requestProblemInformation)
      Set the request problem information. This setting is only respected for MQTT 5 clients. For MQTT 3.x clients this setting is ignored.
      Parameters:
      requestProblemInformation - The new request problem information flag for the CONNECT.
      Since:
      4.2.0, CE 2020.1
    • setAuthenticationMethod

      void setAuthenticationMethod​(@Nullable String authenticationMethod)
      Set the authentication method.
      Parameters:
      authenticationMethod - The new authentication method of the CONNECT.
      Throws:
      IllegalArgumentException - If the authentication method is not a valid UTF-8 string.
      Since:
      4.2.0, CE 2020.1
    • setAuthenticationData

      void setAuthenticationData​(@Nullable ByteBuffer authenticationData)
      Set the authentication data.
      Parameters:
      authenticationData - The new authentication data of the CONNECT.
      Since:
      4.2.0, CE 2020.1
    • setUserName

      void setUserName​(@Nullable String userName)
      Set the username.
      Parameters:
      userName - The new username for the CONNECT.
      Since:
      4.2.0, CE 2020.1
    • setPassword

      void setPassword​(@Nullable ByteBuffer password)
      Set the password.
      Parameters:
      password - The new password for the CONNECT.
      Since:
      4.2.0, CE 2020.1
    • getUserProperties

      Get the modifiable UserProperties of the CONNECT packet.
      Specified by:
      getUserProperties in interface ConnectPacket
      Returns:
      Modifiable user properties.
      Since:
      4.2.0, CE 2020.1
    • getModifiableWillPublish

      @NotNull @NotNull Optional<ModifiableWillPublish> getModifiableWillPublish()
      Get a modifiable instance of the WillPublishPacket.
      Returns:
      Modifiable will publish.
      Since:
      4.2.0, CE 2020.1