Home / Class/ SubAckBuilder Class — netty Architecture

SubAckBuilder Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  40944937_069e_dc2c_7a3b_710d4b8a9a49["SubAckBuilder"]
  7d541d48_e599_e4df_7154_8f69a769e3a4["MqttMessageBuilders.java"]
  40944937_069e_dc2c_7a3b_710d4b8a9a49 -->|defined in| 7d541d48_e599_e4df_7154_8f69a769e3a4
  97ce621b_5d10_111d_b126_a548e4dd2449["SubAckBuilder()"]
  40944937_069e_dc2c_7a3b_710d4b8a9a49 -->|method| 97ce621b_5d10_111d_b126_a548e4dd2449
  2fd42d22_42c3_0edf_632a_3b70cfe140c7["MqttSubAckMessage()"]
  40944937_069e_dc2c_7a3b_710d4b8a9a49 -->|method| 2fd42d22_42c3_0edf_632a_3b70cfe140c7

Relationship Graph

Source Code

codec-mqtt/src/main/java/io/netty/handler/codec/mqtt/MqttMessageBuilders.java lines 562–615

    public static final class SubAckBuilder {

        private int packetId;
        private MqttProperties properties;
        private final List<MqttQoS> grantedQoses = new ArrayList<MqttQoS>();

        SubAckBuilder() {
        }

        public SubAckBuilder packetId(int packetId) {
            this.packetId = packetId;
            return this;
        }

        /**
         * @deprecated use {@link SubAckBuilder#packetId(int)} instead
         */
        @Deprecated
        public SubAckBuilder packetId(short packetId) {
            return packetId(packetId & 0xFFFF);
        }

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

        public SubAckBuilder addGrantedQos(MqttQoS qos) {
            this.grantedQoses.add(qos);
            return this;
        }

        public SubAckBuilder addGrantedQoses(MqttQoS... qoses) {
            this.grantedQoses.addAll(Arrays.asList(qoses));
            return this;
        }

        public MqttSubAckMessage build() {
            MqttFixedHeader mqttFixedHeader =
                    new MqttFixedHeader(MqttMessageType.SUBACK, false, MqttQoS.AT_MOST_ONCE, false, 0);
            MqttMessageIdAndPropertiesVariableHeader mqttSubAckVariableHeader =
                    new MqttMessageIdAndPropertiesVariableHeader(packetId, properties);

            //transform to primitive types
            int[] grantedQoses = new int[this.grantedQoses.size()];
            int i = 0;
            for (MqttQoS grantedQos : this.grantedQoses) {
                grantedQoses[i++] = grantedQos.value();
            }

            MqttSubAckPayload subAckPayload = new MqttSubAckPayload(grantedQoses);
            return new MqttSubAckMessage(mqttFixedHeader, mqttSubAckVariableHeader, subAckPayload);
        }
    }

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free