com.microsoft.azure.eventhubs.impl.MessageOperationResult Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of azure-eventhubs Show documentation
Show all versions of azure-eventhubs Show documentation
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.
// 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);
}
}