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

org.opensearch.commons.destination.response.LegacyDestinationResponse Maven / Gradle / Ivy

There is a newer version: 2.17.0.0
Show newest version
/*
 * Copyright OpenSearch Contributors
 * SPDX-License-Identifier: Apache-2.0
 */

package org.opensearch.commons.destination.response;

import java.io.IOException;

import org.opensearch.core.common.io.stream.StreamInput;
import org.opensearch.core.common.io.stream.StreamOutput;

/**
 * This class is a place holder for destination response metadata
 */
public class LegacyDestinationResponse extends LegacyBaseResponse {

    private final String responseContent;

    private LegacyDestinationResponse(final String responseString, final Integer statusCode) {
        super(statusCode);
        if (responseString == null) {
            throw new IllegalArgumentException("Response is missing");
        }
        this.responseContent = responseString;
    }

    public LegacyDestinationResponse(StreamInput streamInput) throws IOException {
        super(streamInput);
        this.responseContent = streamInput.readString();
    }

    public static class Builder {
        private String responseContent;
        private Integer statusCode;

        public LegacyDestinationResponse.Builder withResponseContent(String responseContent) {
            this.responseContent = responseContent;
            return this;
        }

        public LegacyDestinationResponse.Builder withStatusCode(Integer statusCode) {
            this.statusCode = statusCode;
            return this;
        }

        public LegacyDestinationResponse build() {
            return new LegacyDestinationResponse(responseContent, statusCode);
        }
    }

    public String getResponseContent() {
        return this.responseContent;
    }

    @Override
    public void writeTo(StreamOutput streamOutput) throws IOException {
        super.writeTo(streamOutput);
        streamOutput.writeString(responseContent);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy