// Copyright (c) 2007-Present Pivotal Software, Inc. All rights reserved. // // This software, the RabbitMQ Java client library, is triple-licensed under the // Mozilla Public License 1.1 ("MPL"), the GNU General Public License version 2 // ("GPL") and the Apache License version 2 ("ASL"). For the MPL, please see // LICENSE-MPL-RabbitMQ. For the GPL, please see LICENSE-GPL2. For the ASL, // please see LICENSE-APACHE2. // // This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, // either express or implied. See the LICENSE file for specific language governing // rights and limitations of this software. // // If you have any questions regarding licensing, please contact us at // info@rabbitmq.com. package com.rabbitmq.client; import java.io.IOException; /** * Convenience class providing a default implementation of {@link Consumer}. * We anticipate that most Consumer implementations will subclass this class. */ public class DefaultConsumer implements Consumer { /** Channel that this consumer is associated with. */ private final Channel _channel; /** Consumer tag for this consumer. */ private volatile String _consumerTag; /** * Constructs a new instance and records its association to the passed-in channel. * @param channel the channel to which this consumer is attached */ public DefaultConsumer(Channel channel) { _channel = channel; } /** * Stores the most recently passed-in consumerTag - semantically, there should be only one. * @see Consumer#handleConsumeOk */ @Override public void handleConsumeOk(String consumerTag) { this._consumerTag = consumerTag; } /** * No-op implementation of {@link Consumer#handleCancelOk}. * @param consumerTag the defined consumer tag (client- or server-generated) */ @Override public void handleCancelOk(String consumerTag) { // no work to do } /** * No-op implementation of {@link Consumer#handleCancel(String)} * @param consumerTag the defined consumer tag (client- or server-generated) */ @Override public void handleCancel(String consumerTag) throws IOException { // no work to do } /** * No-op implementation of {@link Consumer#handleShutdownSignal}. */ @Override public void handleShutdownSignal(String consumerTag, ShutdownSignalException sig) { // no work to do } /** * No-op implementation of {@link Consumer#handleRecoverOk}. */ @Override public void handleRecoverOk(String consumerTag) { // no work to do } /** * No-op implementation of {@link Consumer#handleDelivery}. */ @Override public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException { // no work to do } /** * Retrieve the channel. * @return the channel this consumer is attached to. */ public Channel getChannel() { return _channel; } /** * Retrieve the consumer tag. * @return the most recently notified consumer tag. */ public String getConsumerTag() { return _consumerTag; } }