All Downloads are FREE. Search and download functionalities are using the official Maven repository.
Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
io.swagger.parser.v3.processors.ComponentsProcessor Maven / Gradle / Ivy
package io.swagger.parser.v3.processors;
import io.swagger.oas.models.OpenAPI;
import io.swagger.oas.models.callbacks.Callback;
import io.swagger.oas.models.examples.Example;
import io.swagger.oas.models.headers.Header;
import io.swagger.oas.models.links.Link;
import io.swagger.oas.models.media.Schema;
import io.swagger.oas.models.parameters.Parameter;
import io.swagger.oas.models.parameters.RequestBody;
import io.swagger.oas.models.responses.ApiResponse;
import io.swagger.oas.models.security.SecurityScheme;
import io.swagger.parser.v3.ResolverCache;
import java.util.LinkedHashSet;
import java.util.Map;
import java.util.Set;
/**
* Created by gracekarina on 13/06/17.
*/
public class ComponentsProcessor {
private final ResolverCache cache;
private final OpenAPI openApi;
private final SchemaProcessor schemaProcessor;
private final ResponseProcessor responseProcessor;
private final RequestBodyProcessor requestBodyProcessor;
private final ParameterProcessor parameterProcessor;
private final HeaderProcessor headerProcessor;
private final ExampleProcessor exampleProcessor;
private final LinkProcessor linkProcessor;
private final CallbackProcessor callbackProcessor;
private final SecuritySchemeProcessor securitySchemeProcessor;
public ComponentsProcessor(OpenAPI openApi,ResolverCache cache){
this.cache = cache;
this.openApi = openApi;
this.schemaProcessor = new SchemaProcessor(cache,openApi);
this.responseProcessor = new ResponseProcessor(cache, openApi);
this.requestBodyProcessor = new RequestBodyProcessor(cache, openApi);
this.parameterProcessor = new ParameterProcessor(cache, openApi);
this.headerProcessor = new HeaderProcessor(cache, openApi);
this.exampleProcessor = new ExampleProcessor(cache,openApi);
this.linkProcessor = new LinkProcessor(cache,openApi);
this.callbackProcessor = new CallbackProcessor(cache,openApi);
this.securitySchemeProcessor = new SecuritySchemeProcessor(cache,openApi);
}
public void processComponents() {
if (openApi.getComponents() == null){
return;
}
final Map schemas = openApi.getComponents().getSchemas();
final Map responses = openApi.getComponents().getResponses();
final Map requestBodies = openApi.getComponents().getRequestBodies();
final Map parameters = openApi.getComponents().getParameters();
final Map headers = openApi.getComponents().getHeaders();
final Map examples = openApi.getComponents().getExamples();
final Map links = openApi.getComponents().getLinks();
final Map callbacks = openApi.getComponents().getCallbacks();
final Map securitySchemes = openApi.getComponents().getSecuritySchemes();
//schemas
if (schemas != null) {
Set keySet = new LinkedHashSet<>();
while(schemas.keySet().size() > keySet.size()) {
processSchemas(keySet, schemas);
}
}
//responses
if (responses != null) {
Set keySet = new LinkedHashSet<>();
while(responses.keySet().size() > keySet.size()) {
processResponses(keySet, responses);
}
}
//requestBodies
if (requestBodies != null) {
Set keySet = new LinkedHashSet<>();
while(requestBodies.keySet().size() > keySet.size()) {
processRequestBodies(keySet, requestBodies);
}
}
//parameters
if (parameters != null) {
Set keySet = new LinkedHashSet<>();
while(parameters.keySet().size() > keySet.size()) {
processParameters(keySet, parameters);
}
}
//headers
if (headers != null) {
Set keySet = new LinkedHashSet<>();
while(headers.keySet().size() > keySet.size()) {
processHeaders(keySet, headers);
}
}
//examples
if (examples != null) {
Set keySet = new LinkedHashSet<>();
while(examples.keySet().size() > keySet.size()) {
processExamples(keySet, examples);
}
}
//links
if (links != null) {
Set keySet = new LinkedHashSet<>();
while(links.keySet().size() > keySet.size()) {
processLinks(keySet, links);
}
}
//callbacks
if (callbacks != null) {
Set keySet = new LinkedHashSet<>();
while(callbacks.keySet().size() > keySet.size()) {
processCallbacks(keySet, callbacks);
}
}
//securitySchemes
if (securitySchemes != null) {
Set keySet = new LinkedHashSet<>();
while(securitySchemes.keySet().size() > keySet.size()) {
processSecuritySchemes(keySet, securitySchemes);
}
}
}
private void processSecuritySchemes(Set securitySchemeKey, Map securitySchemes) {
securitySchemeKey.addAll(securitySchemes.keySet());
for (String securitySchemeName : securitySchemeKey) {
final SecurityScheme securityScheme = securitySchemes.get(securitySchemeName);
SecurityScheme resolvedSecurityScheme = securitySchemeProcessor.processSecurityScheme(securityScheme);
securitySchemes.replace(securitySchemeName,securityScheme,resolvedSecurityScheme);
}
}
private void processCallbacks(Set callbackKey, Map callbacks) {
callbackKey.addAll(callbacks.keySet());
for (String callbackName : callbackKey) {
final Callback callback = callbacks.get(callbackName);
callbackProcessor.processCallback(callback);
}
}
private void processLinks(Set linkKey, Map links) {
linkKey.addAll(links.keySet());
for (String linkName : linkKey) {
final Link link = links.get(linkName);
linkProcessor.processLink(link);
}
}
private void processExamples(Set exampleKey, Map examples) {
exampleKey.addAll(examples.keySet());
for (String exampleName : exampleKey) {
final Example example = examples.get(exampleName);
exampleProcessor.processExample(example);
}
}
private void processHeaders(Set HeaderKey, Map headers) {
HeaderKey.addAll(headers.keySet());
for (String headersName : HeaderKey) {
final Header header = headers.get(headersName);
headerProcessor.processHeader(header);
}
}
private void processParameters(Set ParametersKey, Map parameters) {
ParametersKey.addAll(parameters.keySet());
for (String parametersName : ParametersKey) {
final Parameter parameter = parameters.get(parametersName);
parameterProcessor.processParameter(parameter);
}
}
private void processRequestBodies(Set requestBodyKey, Map requestBodies) {
requestBodyKey.addAll(requestBodies.keySet());
for (String requestBodyName : requestBodyKey) {
final RequestBody requestBody = requestBodies.get(requestBodyName);
requestBodyProcessor.processRequestBody(requestBody);
}
}
private void processResponses(Set responseKey, Map responses) {
responseKey.addAll(responses.keySet());
for (String responseName : responseKey) {
final ApiResponse response = responses.get(responseName);
responseProcessor.processResponse(response);
}
}
public void processSchemas(Set schemaKeys, Map schemas) {
schemaKeys.addAll(schemas.keySet());
for (String schemaName : schemaKeys) {
final Schema schema = schemas.get(schemaName);
schemaProcessor.processSchema(schema);
}
}
}