/*
 * Copyright (c) 2018-2019 The original author or authors
 *
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * and Apache License v2.0 which accompanies this distribution.
 *
 *        The Eclipse Public License is available at
 *        http://www.eclipse.org/legal/epl-v10.html
 *
 *        The Apache License v2.0 is available at
 *        http://www.opensource.org/licenses/apache2.0.php
 *
 * You may elect to redistribute this code under either of these licenses.
 */
package io.vertx.amqp;

import io.vertx.codegen.annotations.DataObject;
import io.vertx.core.json.JsonObject;

import java.util.ArrayList;
import java.util.List;
import java.util.Objects;

Configures the AMQP Receiver.
/** * Configures the AMQP Receiver. */
@DataObject(generateConverter = true) public class AmqpReceiverOptions { private String linkName; private boolean dynamic; private String qos; private List<String> capabilities = new ArrayList<>(); private boolean durable; private int maxBufferedMessages; private boolean autoAcknowledgement = true; public AmqpReceiverOptions() { } public AmqpReceiverOptions(AmqpReceiverOptions other) { this(); setDynamic(other.isDynamic()); setLinkName(other.getLinkName()); setCapabilities(other.getCapabilities()); setDurable(other.isDurable()); setMaxBufferedMessages(other.maxBufferedMessages); } public AmqpReceiverOptions(JsonObject json) { super(); AmqpReceiverOptionsConverter.fromJson(json, this); } public JsonObject toJson() { JsonObject json = new JsonObject(); AmqpReceiverOptionsConverter.toJson(this, json); return json; } public String getLinkName() { return linkName; } public AmqpReceiverOptions setLinkName(String linkName) { this.linkName = linkName; return this; }
Returns:whether the receiver is using a dynamic address.
/** * @return whether the receiver is using a dynamic address. */
public boolean isDynamic() { return dynamic; }
Sets whether the Source terminus to be used should specify it is 'dynamic', requesting the peer creates a node and names it with a generated address.

The address provided by the peer can then be inspected using the AmqpReceiver.address() method on the AmqpReceiver received once opened.

Params:
  • dynamic – true if the receiver should request dynamic creation of a node and address to consume from
Returns:the options
/** * Sets whether the Source terminus to be used should specify it is 'dynamic', * requesting the peer creates a node and names it with a generated address. * <p> * The address provided by the peer can then be inspected using the * {@link AmqpReceiver#address()} method on the {@link AmqpReceiver} received once opened. * * @param dynamic true if the receiver should request dynamic creation of a node and address to consume from * @return the options */
public AmqpReceiverOptions setDynamic(boolean dynamic) { this.dynamic = dynamic; return this; }
Gets the local QOS config, values can be null, AT_MOST_ONCE or AT_LEAST_ONCE.
Returns:the local QOS config.
/** * Gets the local QOS config, values can be {@code null}, {@code AT_MOST_ONCE} or {@code AT_LEAST_ONCE}. * * @return the local QOS config. */
public String getQos() { return qos; }
Sets the local QOS config.
Params:
  • qos – the local QOS config. Accepted values are: null, AT_MOST_ONCE or AT_LEAST_ONCE.
Returns:the options.
/** * Sets the local QOS config. * * @param qos the local QOS config. Accepted values are: {@code null}, {@code AT_MOST_ONCE} or {@code AT_LEAST_ONCE}. * @return the options. */
public AmqpReceiverOptions setQos(String qos) { this.qos = qos; return this; }
Gets the list of capabilities to be set on the receiver source terminus.
Returns:the list of capabilities, empty if none.
/** * Gets the list of capabilities to be set on the receiver source terminus. * * @return the list of capabilities, empty if none. */
public List<String> getCapabilities() { if (capabilities == null) { return new ArrayList<>(); } return capabilities; }
Sets the list of capabilities to be set on the receiver source terminus.
Params:
  • capabilities – the set of source capabilities.
Returns:the options
/** * Sets the list of capabilities to be set on the receiver source terminus. * * @param capabilities the set of source capabilities. * @return the options */
public AmqpReceiverOptions setCapabilities(List<String> capabilities) { this.capabilities = capabilities; return this; }
Adds a capability to be set on the receiver source terminus.
Params:
  • capability – the source capability to add, must not be null
Returns:the options
/** * Adds a capability to be set on the receiver source terminus. * * @param capability the source capability to add, must not be {@code null} * @return the options */
public AmqpReceiverOptions addCapability(String capability) { Objects.requireNonNull(capability, "The capability must not be null"); if (this.capabilities == null) { this.capabilities = new ArrayList<>(); } this.capabilities.add(capability); return this; }
Returns:if the receiver is durable.
/** * @return if the receiver is durable. */
public boolean isDurable() { return durable; }
Sets the durability.

Passing true sets the expiry policy of the source to NEVER and the durability of the source to UNSETTLED_STATE.

Params:
  • durable – whether or not the receiver must indicate it's durable
Returns:the options.
/** * Sets the durability. * <p> * Passing {@code true} sets the expiry policy of the source to {@code NEVER} and the durability of the source * to {@code UNSETTLED_STATE}. * * @param durable whether or not the receiver must indicate it's durable * @return the options. */
public AmqpReceiverOptions setDurable(boolean durable) { this.durable = durable; return this; }
Returns:the max buffered messages
/** * @return the max buffered messages */
public int getMaxBufferedMessages() { return this.maxBufferedMessages; }
Sets the max buffered messages. This message can be used to configure the initial credit of a receiver.
Params:
  • maxBufferSize – the max buffered size, must be positive. If not set, default credit is used.
Returns:the current AmqpReceiverOptions instance.
/** * Sets the max buffered messages. This message can be used to configure the initial credit of a receiver. * * @param maxBufferSize the max buffered size, must be positive. If not set, default credit is used. * @return the current {@link AmqpReceiverOptions} instance. */
public AmqpReceiverOptions setMaxBufferedMessages(int maxBufferSize) { this.maxBufferedMessages = maxBufferSize; return this; }
Returns:true if the auto-acknowledgement is enabled, false otherwise.
/** * @return {@code true} if the auto-acknowledgement is enabled, {@code false} otherwise. */
public boolean isAutoAcknowledgement() { return autoAcknowledgement; }
Sets the auto-acknowledgement. When enabled (default), the messages are automatically acknowledged. If set to false, the messages must be acknowledged explicitly using AmqpMessage.accepted(), AmqpMessage.released() and AmqpMessage.rejected().
Params:
  • auto – whether or not the auto-acknowledgement should be enabled.
Returns:the current AmqpReceiverOptions instance.
/** * Sets the auto-acknowledgement. * When enabled (default), the messages are automatically acknowledged. If set to {@code false}, the messages must * be acknowledged explicitly using {@link AmqpMessage#accepted()}, {@link AmqpMessage#released()} and * {@link AmqpMessage#rejected()}. * * @param auto whether or not the auto-acknowledgement should be enabled. * @return the current {@link AmqpReceiverOptions} instance. */
public AmqpReceiverOptions setAutoAcknowledgement(boolean auto) { this.autoAcknowledgement = auto; return this; } }