001 /**
002 * Licensed to the Apache Software Foundation (ASF) under one or more
003 * contributor license agreements. See the NOTICE file distributed with
004 * this work for additional information regarding copyright ownership.
005 * The ASF licenses this file to You under the Apache License, Version 2.0
006 * (the "License"); you may not use this file except in compliance with
007 * the License. You may obtain a copy of the License at
008 *
009 * http://www.apache.org/licenses/LICENSE-2.0
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS,
013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 * See the License for the specific language governing permissions and
015 * limitations under the License.
016 */
017 package org.apache.activemq.command;
018
019 import org.apache.activemq.state.CommandVisitor;
020
021 /**
022 *
023 * @openwire:marshaller code="21"
024 *
025 */
026 public class MessageDispatch extends BaseCommand {
027
028 public static final byte DATA_STRUCTURE_TYPE = CommandTypes.MESSAGE_DISPATCH;
029
030 protected ConsumerId consumerId;
031 protected ActiveMQDestination destination;
032 protected Message message;
033 protected int redeliveryCounter;
034
035 protected transient long deliverySequenceId;
036 protected transient Object consumer;
037 protected transient Runnable transmitCallback;
038 protected transient Throwable rollbackCause;
039
040 public byte getDataStructureType() {
041 return DATA_STRUCTURE_TYPE;
042 }
043
044 public boolean isMessageDispatch() {
045 return true;
046 }
047
048 /**
049 * @openwire:property version=1 cache=true
050 */
051 public ConsumerId getConsumerId() {
052 return consumerId;
053 }
054
055 public void setConsumerId(ConsumerId consumerId) {
056 this.consumerId = consumerId;
057 }
058
059 /**
060 * @openwire:property version=1 cache=true
061 */
062 public ActiveMQDestination getDestination() {
063 return destination;
064 }
065
066 public void setDestination(ActiveMQDestination destination) {
067 this.destination = destination;
068 }
069
070 /**
071 * @openwire:property version=1
072 */
073 public Message getMessage() {
074 return message;
075 }
076
077 public void setMessage(Message message) {
078 this.message = message;
079 }
080
081 public long getDeliverySequenceId() {
082 return deliverySequenceId;
083 }
084
085 public void setDeliverySequenceId(long deliverySequenceId) {
086 this.deliverySequenceId = deliverySequenceId;
087 }
088
089 /**
090 * @openwire:property version=1
091 */
092 public int getRedeliveryCounter() {
093 return redeliveryCounter;
094 }
095
096 public void setRedeliveryCounter(int deliveryCounter) {
097 this.redeliveryCounter = deliveryCounter;
098 }
099
100 public Object getConsumer() {
101 return consumer;
102 }
103
104 public void setConsumer(Object consumer) {
105 this.consumer = consumer;
106 }
107
108 public Response visit(CommandVisitor visitor) throws Exception {
109 return visitor.processMessageDispatch(this);
110 }
111
112 public Runnable getTransmitCallback() {
113 return transmitCallback;
114 }
115
116 public void setTransmitCallback(Runnable transmitCallback) {
117 this.transmitCallback = transmitCallback;
118 }
119
120 public Throwable getRollbackCause() {
121 return rollbackCause;
122 }
123
124 public void setRollbackCause(Throwable rollbackCause) {
125 this.rollbackCause = rollbackCause;
126 }
127 }