Interface WillPublishBuilder
-
@DoNotImplement public interface WillPublishBuilder
This builder must be used to create aWillPublishPacket
.Either from values,from a
PublishPacket
, from aPublish
or from aWillPublishPacket
.Every WillPublishPacket built by this builder is fully validated against HiveMQ configuration.
- Since:
- 4.0.0, CE 2019.1
-
-
Method Summary
-
-
-
Method Detail
-
fromPublish
@NotNull WillPublishBuilder fromPublish(@NotNull PublishPacket publishPacket)
Create aWillPublishPacket
from the values of aPublishPacket
.- Parameters:
publishPacket
- The publish packet to build aWillPublishPacket
from.- Returns:
- The
WillPublishBuilder
. - Throws:
NullPointerException
- If the publish packet is null.DoNotImplementException
- If thePublishPacket
is implemented by the extension.- Since:
- 4.0.0, CE 2019.1
-
fromPublish
@NotNull WillPublishBuilder fromPublish(@NotNull Publish publish)
Create aWillPublishPacket
from the values of aPublish
.- Parameters:
publish
- The publish to build aWillPublishPacket
from.- Returns:
- The
WillPublishBuilder
. - Throws:
NullPointerException
- If the publish is null.DoNotImplementException
- If thePublish
is implemented by the extension.- Since:
- 4.0.0, CE 2019.1
-
fromWillPublish
@NotNull WillPublishBuilder fromWillPublish(@NotNull WillPublishPacket willPublishPacket)
Create aWillPublishPacket
from the values of anotherWillPublishPacket
.- Parameters:
willPublishPacket
- The will publish packet to build aWillPublishPacket
from.- Returns:
- The
WillPublishBuilder
. - Throws:
NullPointerException
- If the will publish packet is null.DoNotImplementException
- If theWillPublishPacket
is implemented by the extension.- Since:
- 4.0.0, CE 2019.1
-
qos
@NotNull WillPublishBuilder qos(@NotNull Qos qos)
Sets the quality of service level.DEFAULT:
QoS 0
.- Parameters:
qos
- TheQos
to set.- Returns:
- The
WillPublishBuilder
. - Throws:
NullPointerException
- If the qos is null.IllegalArgumentException
- If qos is higher than the maximum configured qos by HiveMQ. Default is QoS 2.- Since:
- 4.0.0, CE 2019.1
-
retain
@NotNull WillPublishBuilder retain(boolean retain)
Sets the retain flag.DEFAULT:
false
.- Parameters:
retain
- The retain flag to set.- Returns:
- The
WillPublishBuilder
. - Throws:
IllegalArgumentException
- If retain istrue
, but retained messages are disabled by HiveMQ.- Since:
- 4.0.0, CE 2019.1
-
topic
@NotNull WillPublishBuilder topic(@NotNull String topic)
Sets the topic.This value has no default and must be set.
- Parameters:
topic
- The topic to set.- Returns:
- The
WillPublishBuilder
. - Throws:
NullPointerException
- If the topic is null.IllegalArgumentException
- If the topic is an empty string.IllegalArgumentException
- If the topic is invalid for publish messages (i.e containing wildcards}.IllegalArgumentException
- If the topic length exceeds the configured length for topics. Default is 65535.- Since:
- 4.0.0, CE 2019.1
-
payloadFormatIndicator
@NotNull WillPublishBuilder payloadFormatIndicator(@Nullable PayloadFormatIndicator payloadFormatIndicator)
Sets the payload format indicator.DEFAULT:
null
.- Parameters:
payloadFormatIndicator
- The payload format indicator to set.- Returns:
- The
WillPublishBuilder
. - Since:
- 4.0.0, CE 2019.1
-
messageExpiryInterval
@NotNull WillPublishBuilder messageExpiryInterval(long messageExpiryInterval)
Sets the message expiry interval in seconds.DEFAULT:
no expiry
.The default can be changed by configuring
<message-expiry>
in the<mqtt>
config in the config.xml.- Parameters:
messageExpiryInterval
- The message expiry interval to set.- Returns:
- The
WillPublishBuilder
. - Throws:
IllegalArgumentException
- If the message expiry interval is less than zero or more than the configured maximum by HiveMQ. Default is no expiry.- Since:
- 4.0.0, CE 2019.1
-
responseTopic
@NotNull WillPublishBuilder responseTopic(@Nullable String responseTopic)
Sets the response topic.DEFAULT:
null
.- Parameters:
responseTopic
- The response topic to set.- Returns:
- The
WillPublishBuilder
. - Throws:
IllegalArgumentException
- If the response topic is not a valid UTF-8 string.IllegalArgumentException
- If the response topic exceeds the UTF-8 string length limit.- Since:
- 4.0.0, CE 2019.1
-
correlationData
@NotNull WillPublishBuilder correlationData(@Nullable ByteBuffer correlationData)
Sets the correlation data.DEFAULT:
null
.- Parameters:
correlationData
- The correlation data to set.- Returns:
- The
WillPublishBuilder
. - Since:
- 4.0.0, CE 2019.1
-
contentType
@NotNull WillPublishBuilder contentType(@Nullable String contentType)
Sets the content type.DEFAULT:
null
.- Parameters:
contentType
- The content type to set.- Returns:
- The
WillPublishBuilder
. - Throws:
IllegalArgumentException
- If the content type is not a valid UTF-8 string.IllegalArgumentException
- If the content type exceeds the UTF-8 string length limit.- Since:
- 4.0.0, CE 2019.1
-
payload
@NotNull WillPublishBuilder payload(@NotNull ByteBuffer payload)
Sets the payload.This value has no default and must be set.
- Parameters:
payload
- The payload to set.- Returns:
- The
WillPublishBuilder
. - Throws:
NullPointerException
- If the payload is null.- Since:
- 4.0.0, CE 2019.1
-
userProperty
@NotNull WillPublishBuilder userProperty(@NotNull String key, @NotNull String value)
Adds a user property.DEFAULT:
empty list
.- Parameters:
key
- The key of the user property to add.value
- The value of the user property to add.- Returns:
- The
WillPublishBuilder
. - Throws:
NullPointerException
- If the key or the value is null.IllegalArgumentException
- If the key or value is not a valid UTF-8 string.IllegalArgumentException
- If the key or value exceeds the UTF-8 string length limit.- Since:
- 4.0.0, CE 2019.1
-
willDelay
@NotNull WillPublishBuilder willDelay(long willDelay)
Sets the will delay.DEFAULT:
0
.- Parameters:
willDelay
- The will dely to set.- Returns:
- The
WillPublishBuilder
. - Throws:
IllegalArgumentException
- If the will delay is less than zero.- Since:
- 4.0.0, CE 2019.1
-
build
@NotNull WillPublishPacket build()
Builds theWillPublishPacket
with the provided values or default values.- Returns:
- A
WillPublishPacket
with the set parameters. - Throws:
NullPointerException
- If the topic or the payload is null.- Since:
- 4.0.0, CE 2019.1
-
-