All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.microsoft.azure.eventhubs.impl.MessageOperationResult Maven / Gradle / Ivy

Go to download

Please note, a newer package azure-messaging-eventhubs for Azure Event Hubs is available at https://search.maven.org/artifact/com.azure/azure-messaging-eventhubs as of February 2020. While this package will continue to receive critical bug fixes, we strongly encourage you to upgrade. Read the migration guide at https://aka.ms/azsdk/java/migrate/eh for more details.

There is a newer version: 3.3.0
Show newest version
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
package com.microsoft.azure.eventhubs.impl;

import org.apache.qpid.proton.message.Message;

import java.util.Objects;
import java.util.function.Consumer;

class MessageOperationResult implements OperationResult {
    private final Consumer onComplete;
    private final Consumer onError;

    MessageOperationResult(Consumer onComplete, Consumer onError) {
        Objects.requireNonNull(onComplete);
        Objects.requireNonNull(onError);

        this.onComplete = onComplete;
        this.onError = onError;
    }

    @Override
    public void onComplete(final Message response) {
        final int statusCode = (int) response.getApplicationProperties().getValue()
            .get(ClientConstants.PUT_TOKEN_STATUS_CODE);
        final String statusDescription = (String) response.getApplicationProperties().getValue()
            .get(ClientConstants.PUT_TOKEN_STATUS_DESCRIPTION);

        if (statusCode == AmqpResponseCode.ACCEPTED.getValue() || statusCode == AmqpResponseCode.OK.getValue()) {
            onComplete.accept(response);
        } else {
            this.onError(ExceptionUtil.amqpResponseCodeToException(statusCode, statusDescription));
        }
    }

    @Override
    public void onError(final Exception error) {
        onError.accept(error);
    }
}





© 2015 - 2024 Weber Informatics LLC | Privacy Policy