
io.muserver.openapi.ComponentsObject Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of mu-server Show documentation
Show all versions of mu-server Show documentation
A simple but powerful web server framework
The newest version!
package io.muserver.openapi;
import java.io.IOException;
import java.io.Writer;
import java.util.Map;
import java.util.regex.Pattern;
import static io.muserver.openapi.Jsonizer.append;
/**
* @see ComponentsObjectBuilder
*/
public class ComponentsObject implements JsonWriter {
private final Map schemas;
private final Map responses;
private final Map parameters;
private final Map examples;
private final Map requestBodies;
private final Map headers;
private final Map securitySchemes;
private final Map links;
private final Map callbacks;
ComponentsObject(Map schemas, Map responses, Map parameters, Map examples, Map requestBodies, Map headers, Map securitySchemes, Map links, Map callbacks) {
checkKey(schemas, responses, parameters, examples, requestBodies, headers, securitySchemes, links, callbacks);
this.schemas = schemas;
this.responses = responses;
this.parameters = parameters;
this.examples = examples;
this.requestBodies = requestBodies;
this.headers = headers;
this.securitySchemes = securitySchemes;
this.links = links;
this.callbacks = callbacks;
}
private void checkKey(Map... maps) {
Pattern keyPattern = Pattern.compile("^[a-zA-Z0-9.\\-_]+$");
for (Map map : maps) {
if (map != null) {
for (String key : map.keySet()) {
if (!keyPattern.matcher(key).matches()) {
throw new IllegalArgumentException("The value '" + key + "' is not a valid key. It must match " + keyPattern);
}
}
}
}
}
@Override
public void writeJson(Writer writer) throws IOException {
writer.write('{');
boolean isFirst = true;
isFirst = append(writer, "schemas", schemas, isFirst);
isFirst = append(writer, "responses", responses, isFirst);
isFirst = append(writer, "parameters", parameters, isFirst);
isFirst = append(writer, "examples", examples, isFirst);
isFirst = append(writer, "requestBodies", requestBodies, isFirst);
isFirst = append(writer, "headers", headers, isFirst);
isFirst = append(writer, "securitySchemes", securitySchemes, isFirst);
isFirst = append(writer, "links", links, isFirst);
isFirst = append(writer, "callbacks", callbacks, isFirst);
writer.write('}');
}
/**
* @return The value described by {@link ComponentsObjectBuilder#withSchemas}
*/
public Map schemas() {
return schemas;
}
/**
@return The value described by {@link ComponentsObjectBuilder#withResponses}
*/
public Map responses() {
return responses;
}
/**
@return The value described by {@link ComponentsObjectBuilder#withParameters}
*/
public Map parameters() {
return parameters;
}
/**
@return The value described by {@link ComponentsObjectBuilder#withExamples}
*/
public Map examples() {
return examples;
}
/**
@return The value described by {@link ComponentsObjectBuilder#withRequestBodies}
*/
public Map requestBodies() {
return requestBodies;
}
/**
@return The value described by {@link ComponentsObjectBuilder#withHeaders}
*/
public Map headers() {
return headers;
}
/**
@return The value described by {@link ComponentsObjectBuilder#withSecuritySchemes}
*/
public Map securitySchemes() {
return securitySchemes;
}
/**
@return The value described by {@link ComponentsObjectBuilder#withLinks}
*/
public Map links() {
return links;
}
/**
@return The value described by {@link ComponentsObjectBuilder#withCallbacks}
*/
public Map callbacks() {
return callbacks;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy