public Packet decode()

in artemis-core-client/src/main/java/org/apache/activemq/artemis/core/protocol/core/impl/PacketDecoder.java [182:518]


   public Packet decode(byte packetType, CoreRemotingConnection connection) {
      Packet packet;

      switch (packetType) {
         case PING: {
            packet = new Ping();
            break;
         }
         case DISCONNECT: {
            packet = new DisconnectMessage();
            break;
         }
         case DISCONNECT_V2: {
            packet = new DisconnectMessage_V2();
            break;
         }
         case DISCONNECT_CONSUMER: {
            packet = new DisconnectConsumerMessage();
            break;
         }
         case EXCEPTION: {
            if (connection.isVersionBeforeAsyncResponseChange()) {
               packet = new ActiveMQExceptionMessage();
            } else {
               packet = new ActiveMQExceptionMessage_V2();
            }
            break;
         }
         case PACKETS_CONFIRMED: {
            packet = new PacketsConfirmedMessage();
            break;
         }
         case NULL_RESPONSE: {
            if (connection.isVersionBeforeAsyncResponseChange()) {
               packet = new NullResponseMessage();
            } else {
               packet = new NullResponseMessage_V2();
            }
            break;
         }
         case CREATESESSION: {
            packet = new CreateSessionMessage();
            break;
         }
         case CHECK_FOR_FAILOVER: {
            packet = new CheckFailoverMessage();
            break;
         }
         case CREATESESSION_RESP: {
            packet = new CreateSessionResponseMessage();
            break;
         }
         case REATTACH_SESSION: {
            packet = new ReattachSessionMessage();
            break;
         }
         case REATTACH_SESSION_RESP: {
            packet = new ReattachSessionResponseMessage();
            break;
         }
         case SESS_CLOSE: {
            packet = new SessionCloseMessage();
            break;
         }
         case SESS_CREATECONSUMER: {
            packet = new SessionCreateConsumerMessage();
            break;
         }
         case SESS_ACKNOWLEDGE: {
            packet = new SessionAcknowledgeMessage();
            break;
         }
         case SESS_EXPIRED: {
            packet = new SessionExpireMessage();
            break;
         }
         case SESS_COMMIT: {
            if (!connection.isVersionSupportCommitV2()) {
               packet = new SessionCommitMessage();
            } else {
               packet = new SessionCommitMessage_V2();
            }
            break;
         }
         case SESS_ROLLBACK: {
            packet = new RollbackMessage();
            break;
         }
         case SESS_QUEUEQUERY: {
            packet = new SessionQueueQueryMessage();
            break;
         }
         case SESS_QUEUEQUERY_RESP: {
            packet = new SessionQueueQueryResponseMessage();
            break;
         }
         case SESS_QUEUEQUERY_RESP_V2: {
            packet = new SessionQueueQueryResponseMessage_V2();
            break;
         }
         case SESS_QUEUEQUERY_RESP_V3: {
            packet = new SessionQueueQueryResponseMessage_V3();
            break;
         }
         case CREATE_ADDRESS: {
            packet = new CreateAddressMessage();
            break;
         }
         case CREATE_QUEUE: {
            packet = new CreateQueueMessage();
            break;
         }
         case CREATE_QUEUE_V2: {
            packet = new CreateQueueMessage_V2();
            break;
         }
         case CREATE_SHARED_QUEUE: {
            packet = new CreateSharedQueueMessage();
            break;
         }
         case CREATE_SHARED_QUEUE_V2: {
            packet = new CreateSharedQueueMessage_V2();
            break;
         }
         case DELETE_QUEUE: {
            packet = new SessionDeleteQueueMessage();
            break;
         }
         case SESS_BINDINGQUERY: {
            packet = new SessionBindingQueryMessage();
            break;
         }
         case SESS_BINDINGQUERY_RESP: {
            packet = new SessionBindingQueryResponseMessage();
            break;
         }
         case SESS_BINDINGQUERY_RESP_V2: {
            packet = new SessionBindingQueryResponseMessage_V2();
            break;
         }
         case SESS_BINDINGQUERY_RESP_V3: {
            packet = new SessionBindingQueryResponseMessage_V3();
            break;
         }
         case SESS_BINDINGQUERY_RESP_V4: {
            packet = new SessionBindingQueryResponseMessage_V4();
            break;
         }
         case SESS_BINDINGQUERY_RESP_V5: {
            packet = new SessionBindingQueryResponseMessage_V5();
            break;
         }
         case SESS_XA_START: {
            packet = new SessionXAStartMessage();
            break;
         }
         case SESS_XA_FAILED: {
            packet = new SessionXAAfterFailedMessage();
            break;
         }
         case SESS_XA_END: {
            packet = new SessionXAEndMessage();
            break;
         }
         case SESS_XA_COMMIT: {
            packet = new SessionXACommitMessage();
            break;
         }
         case SESS_XA_PREPARE: {
            packet = new SessionXAPrepareMessage();
            break;
         }
         case SESS_XA_RESP: {
            if (connection.isVersionBeforeAsyncResponseChange()) {
               packet = new SessionXAResponseMessage();
            } else {
               packet = new SessionXAResponseMessage_V2();
            }
            break;
         }
         case SESS_XA_ROLLBACK: {
            packet = new SessionXARollbackMessage();
            break;
         }
         case SESS_XA_JOIN: {
            packet = new SessionXAJoinMessage();
            break;
         }
         case SESS_XA_SUSPEND: {
            packet = new PacketImpl(PacketImpl.SESS_XA_SUSPEND);
            break;
         }
         case SESS_XA_RESUME: {
            packet = new SessionXAResumeMessage();
            break;
         }
         case SESS_XA_FORGET: {
            packet = new SessionXAForgetMessage();
            break;
         }
         case SESS_XA_INDOUBT_XIDS: {
            packet = new PacketImpl(PacketImpl.SESS_XA_INDOUBT_XIDS);
            break;
         }
         case SESS_XA_INDOUBT_XIDS_RESP: {
            packet = new SessionXAGetInDoubtXidsResponseMessage();
            break;
         }
         case SESS_XA_SET_TIMEOUT: {
            packet = new SessionXASetTimeoutMessage();
            break;
         }
         case SESS_XA_SET_TIMEOUT_RESP: {
            packet = new SessionXASetTimeoutResponseMessage();
            break;
         }
         case SESS_XA_GET_TIMEOUT: {
            packet = new PacketImpl(PacketImpl.SESS_XA_GET_TIMEOUT);
            break;
         }
         case SESS_XA_GET_TIMEOUT_RESP: {
            packet = new SessionXAGetTimeoutResponseMessage();
            break;
         }
         case SESS_START: {
            packet = new PacketImpl(PacketImpl.SESS_START);
            break;
         }
         case SESS_STOP: {
            packet = new PacketImpl(PacketImpl.SESS_STOP);
            break;
         }
         case SESS_FLOWTOKEN: {
            packet = new SessionConsumerFlowCreditMessage();
            break;
         }
         case SESS_CONSUMER_CLOSE: {
            packet = new SessionConsumerCloseMessage();
            break;
         }
         case SESS_INDIVIDUAL_ACKNOWLEDGE: {
            packet = new SessionIndividualAcknowledgeMessage();
            break;
         }
         case SESS_RECEIVE_CONTINUATION: {
            packet = new SessionReceiveContinuationMessage();
            break;
         }
         case SESS_SEND_CONTINUATION: {
            if (connection.isVersionBeforeAsyncResponseChange()) {
               packet = new SessionSendContinuationMessage();
            } else if (connection.isBeforeProducerMetricsChanged()) {
               packet = new SessionSendContinuationMessage_V2();
            } else {
               packet = new SessionSendContinuationMessage_V3();
            }
            break;
         }
         case SESS_PRODUCER_REQUEST_CREDITS: {
            packet = new SessionRequestProducerCreditsMessage();
            break;
         }
         case SESS_PRODUCER_CREDITS: {
            packet = new SessionProducerCreditsMessage();
            break;
         }
         case SESS_PRODUCER_FAIL_CREDITS: {
            packet = new SessionProducerCreditsFailMessage();
            break;
         }
         case SESS_FORCE_CONSUMER_DELIVERY: {
            packet = new SessionForceConsumerDelivery();
            break;
         }
         case CLUSTER_TOPOLOGY: {
            packet = new ClusterTopologyChangeMessage();
            break;
         }
         case CLUSTER_TOPOLOGY_V2: {
            packet = new ClusterTopologyChangeMessage_V2();
            break;
         }
         case CLUSTER_TOPOLOGY_V3: {
            packet = new ClusterTopologyChangeMessage_V3();
            break;
         }
         case SUBSCRIBE_TOPOLOGY: {
            packet = new SubscribeClusterTopologyUpdatesMessage();
            break;
         }
         case SUBSCRIBE_TOPOLOGY_V2: {
            packet = new SubscribeClusterTopologyUpdatesMessageV2();
            break;
         }
         case SESS_ADD_METADATA: {
            packet = new SessionAddMetaDataMessage();
            break;
         }
         case SESS_ADD_METADATA2: {
            packet = new SessionAddMetaDataMessageV2();
            break;
         }
         case SESS_UNIQUE_ADD_METADATA: {
            packet = new SessionUniqueAddMetaDataMessage();
            break;
         }
         case PacketImpl.CHECK_FOR_FAILOVER_REPLY: {
            packet = new CheckFailoverReplyMessage();
            break;
         }
         case PacketImpl.DISCONNECT_CONSUMER_KILL: {
            packet = new DisconnectConsumerWithKillMessage();
            break;
         }
         case FEDERATION_DOWNSTREAM_CONNECT: {
            packet = new FederationDownstreamConnectMessage();
            break;
         }
         case CLUSTER_TOPOLOGY_V4: {
            packet = new ClusterTopologyChangeMessage_V4();
            break;
         }
         case CREATESESSION_V2: {
            packet = new CreateSessionMessage_V2();
            break;
         }
         case DISCONNECT_V3: {
            packet = new DisconnectMessage_V3();
            break;
         }
         default: {
            throw ActiveMQClientMessageBundle.BUNDLE.invalidType(packetType);
         }
      }

      return packet;
   }