Home / Class/ SubscribeBuilder Class — netty Architecture

SubscribeBuilder Class — netty Architecture

Architecture documentation for the SubscribeBuilder class in MqttMessageBuilders.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  9d11ed7c_1463_74bc_8170_f2188d677e32["SubscribeBuilder"]
  7d541d48_e599_e4df_7154_8f69a769e3a4["MqttMessageBuilders.java"]
  9d11ed7c_1463_74bc_8170_f2188d677e32 -->|defined in| 7d541d48_e599_e4df_7154_8f69a769e3a4
  5a08955b_c2d4_9bfb_fc4b_4b689735cae9["SubscribeBuilder()"]
  9d11ed7c_1463_74bc_8170_f2188d677e32 -->|method| 5a08955b_c2d4_9bfb_fc4b_4b689735cae9
  66531d70_0f4a_bde5_4ec5_3b5c5b48d760["MqttSubscribeMessage()"]
  9d11ed7c_1463_74bc_8170_f2188d677e32 -->|method| 66531d70_0f4a_bde5_4ec5_3b5c5b48d760
  d0ef0cac_6147_00f1_2e4f_e6d61fdf6ec0["ensureSubscriptionsExist()"]
  9d11ed7c_1463_74bc_8170_f2188d677e32 -->|method| d0ef0cac_6147_00f1_2e4f_e6d61fdf6ec0

Relationship Graph

Source Code

codec-mqtt/src/main/java/io/netty/handler/codec/mqtt/MqttMessageBuilders.java lines 216–261

    public static final class SubscribeBuilder {

        private List<MqttTopicSubscription> subscriptions;
        private int messageId;
        private MqttProperties properties;

        SubscribeBuilder() {
        }

        public SubscribeBuilder addSubscription(MqttQoS qos, String topic) {
            ensureSubscriptionsExist();
            subscriptions.add(new MqttTopicSubscription(topic, qos));
            return this;
        }

        public SubscribeBuilder addSubscription(String topic, MqttSubscriptionOption option) {
            ensureSubscriptionsExist();
            subscriptions.add(new MqttTopicSubscription(topic, option));
            return this;
        }

        public SubscribeBuilder messageId(int messageId) {
            this.messageId = messageId;
            return this;
        }

        public SubscribeBuilder properties(MqttProperties properties) {
            this.properties = properties;
            return this;
        }

        public MqttSubscribeMessage build() {
            MqttFixedHeader mqttFixedHeader =
                    new MqttFixedHeader(MqttMessageType.SUBSCRIBE, false, MqttQoS.AT_LEAST_ONCE, false, 0);
            MqttMessageIdAndPropertiesVariableHeader mqttVariableHeader =
                    new MqttMessageIdAndPropertiesVariableHeader(messageId, properties);
            MqttSubscribePayload mqttSubscribePayload = new MqttSubscribePayload(subscriptions);
            return new MqttSubscribeMessage(mqttFixedHeader, mqttVariableHeader, mqttSubscribePayload);
        }

        private void ensureSubscriptionsExist() {
            if (subscriptions == null) {
                subscriptions = new ArrayList<MqttTopicSubscription>(5);
            }
        }
    }

Frequently Asked Questions

What is the SubscribeBuilder class?
SubscribeBuilder is a class in the netty codebase, defined in codec-mqtt/src/main/java/io/netty/handler/codec/mqtt/MqttMessageBuilders.java.
Where is SubscribeBuilder defined?
SubscribeBuilder is defined in codec-mqtt/src/main/java/io/netty/handler/codec/mqtt/MqttMessageBuilders.java at line 216.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free