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

io.muserver.openapi.ResponsesObject Maven / Gradle / Ivy

The newest version!
package io.muserver.openapi;

import java.io.IOException;
import java.io.Writer;
import java.util.Map;

import static io.muserver.Mutils.notNull;
import static io.muserver.openapi.Jsonizer.append;

/**
 * @see ResponsesObjectBuilder
 */
public class ResponsesObject implements JsonWriter {

    private final ResponseObject defaultValue;
    private final Map httpStatusCodes;

    ResponsesObject(ResponseObject defaultValue, Map httpStatusCodes) {
        notNull("httpStatusCodes", httpStatusCodes);
        if (httpStatusCodes.isEmpty()) {
            throw new IllegalArgumentException("'httpStatusCodes' must contain at least one value");
        }
        this.defaultValue = defaultValue;
        this.httpStatusCodes = httpStatusCodes;
    }

    @Override
    public void writeJson(Writer writer) throws IOException {
        writer.write('{');
        boolean isFirst = true;
        isFirst = append(writer, "default", defaultValue, isFirst);
        for (Map.Entry entry : httpStatusCodes.entrySet()) {
            isFirst = append(writer, entry.getKey(), entry.getValue(), isFirst);
        }
        writer.write('}');
    }

    /**
     * @return the value described by {@link ResponsesObjectBuilder#withDefaultValue}
     */
    public ResponseObject defaultValue() {
        return defaultValue;
    }

    /**
      @return the value described by {@link ResponsesObjectBuilder#withHttpStatusCodes}
     */
    public Map httpStatusCodes() {
        return httpStatusCodes;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy