Example usage for com.amazonaws.services.sqs.model ReceiveMessageResult withMessages

List of usage examples for com.amazonaws.services.sqs.model ReceiveMessageResult withMessages

Introduction

In this page you can find the example usage for com.amazonaws.services.sqs.model ReceiveMessageResult withMessages.

Prototype


public ReceiveMessageResult withMessages(java.util.Collection<Message> messages) 

Source Link

Document

A list of messages.

Usage

From source file:org.flite.mock.amazonaws.sqs.AmazonSQSMock.java

License:Open Source License

public ReceiveMessageResult receiveMessage(final ReceiveMessageRequest request)
        throws AmazonServiceException, AmazonClientException {
    if (request == null) {
        throw new AmazonClientException("Null ReceiveMessageRequest");
    }//from w w w.ja v  a  2  s.  c  o m
    final String queueUrl = request.getQueueUrl();
    checkURLForException(queueUrl);
    // Per documentation throws OverLimitException, but in my testing,
    // they actually only throw AmazonServiceException
    final Integer max = request.getMaxNumberOfMessages();
    if (max == null || max < 1 || max > 10) {
        throw new AmazonServiceException("MaxNumberOfMessages must be a value between [1,10]");
    }
    final ReceiveMessageResult result = new ReceiveMessageResult();
    int received = 0;
    boolean avail = true;
    while (received < request.getMaxNumberOfMessages() && avail) {
        try {
            final Message msg = allQueues.get(queueUrl).remove(0);
            received++;
            msg.setReceiptHandle(RECEIPT_ID_PREFIX + incrementer.getAndIncrement());
            retrievedMessages.get(queueUrl).put(msg.getReceiptHandle(), msg);
            result.withMessages(msg);
        } catch (Exception ex) {
            avail = false;
        }
    }
    return result;
}