io.swagger.models.Swagger Maven / Gradle / Ivy
package io.swagger.models;
import com.fasterxml.jackson.annotation.JsonAnyGetter;
import com.fasterxml.jackson.annotation.JsonAnySetter;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.models.auth.SecuritySchemeDefinition;
import io.swagger.models.parameters.Parameter;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
public class Swagger {
protected String swagger = "2.0";
protected Info info;
protected String host;
protected String basePath;
protected List tags;
protected List schemes;
protected List consumes;
protected List produces;
protected List security;
protected Map paths;
protected Map securityDefinitions;
protected Map definitions;
protected Map parameters;
protected Map responses;
protected ExternalDocs externalDocs;
protected Map vendorExtensions;
// builders
public Swagger info(Info info) {
this.setInfo(info);
return this;
}
public Swagger host(String host) {
this.setHost(host);
return this;
}
public Swagger basePath(String basePath) {
this.setBasePath(basePath);
return this;
}
public Swagger externalDocs(ExternalDocs value) {
this.setExternalDocs(value);
return this;
}
public Swagger tags(List tags) {
this.setTags(tags);
return this;
}
public Swagger tag(Tag tag) {
this.addTag(tag);
return this;
}
public Swagger schemes(List schemes) {
this.setSchemes(schemes);
return this;
}
public Swagger scheme(Scheme scheme) {
this.addScheme(scheme);
return this;
}
public Swagger consumes(List consumes) {
this.setConsumes(consumes);
return this;
}
public Swagger consumes(String consumes) {
this.addConsumes(consumes);
return this;
}
public Swagger produces(List produces) {
this.setProduces(produces);
return this;
}
public Swagger produces(String produces) {
this.addProduces(produces);
return this;
}
public Swagger paths(Map paths) {
this.setPaths(paths);
return this;
}
public Swagger path(String key, Path path) {
if (this.paths == null) {
this.paths = new LinkedHashMap();
}
this.paths.put(key, path);
return this;
}
public Swagger responses(Map responses) {
this.responses = responses;
return this;
}
public Swagger response(String key, Response response) {
if (this.responses == null) {
this.responses = new LinkedHashMap();
}
this.responses.put(key, response);
return this;
}
public Swagger parameter(String key, Parameter parameter) {
this.addParameter(key, parameter);
return this;
}
public Swagger securityDefinition(String name, SecuritySchemeDefinition securityDefinition) {
this.addSecurityDefinition(name, securityDefinition);
return this;
}
public Swagger model(String name, Model model) {
this.addDefinition(name, model);
return this;
}
public Swagger security(SecurityRequirement securityRequirement) {
this.addSecurity(securityRequirement);
return this;
}
public Swagger vendorExtension(String key, Object extension) {
if(this.vendorExtensions == null) {
this.vendorExtensions = new LinkedHashMap();
}
this.vendorExtensions.put(key, extension);
return this;
}
// getter & setters
public String getSwagger() {
return swagger;
}
public void setSwagger(String swagger) {
this.swagger = swagger;
}
public Info getInfo() {
return info;
}
public void setInfo(Info info) {
this.info = info;
}
public String getHost() {
return host;
}
public void setHost(String host) {
this.host = host;
}
public String getBasePath() {
return basePath;
}
public void setBasePath(String basePath) {
this.basePath = basePath;
}
public List getSchemes() {
return schemes;
}
public void setSchemes(List schemes) {
this.schemes = schemes;
}
public void addScheme(Scheme scheme) {
if (schemes == null) {
schemes = new ArrayList();
}
if (!schemes.contains(scheme)) {
schemes.add(scheme);
}
}
public List getTags() {
return tags;
}
public void setTags(List tags) {
this.tags = tags;
}
public Tag getTag(String tagName) {
Tag tag = null;
if (this.tags != null && tagName != null) {
for (Tag existing : this.tags) {
if (existing.getName().equals(tagName)) {
tag = existing;
break;
}
}
}
return tag;
}
public void addTag(Tag tag) {
if (this.tags == null) {
this.tags = new ArrayList();
}
if (tag != null && tag.getName() != null) {
if (getTag(tag.getName()) == null) {
this.tags.add(tag);
}
}
}
public List getConsumes() {
return consumes;
}
public void setConsumes(List consumes) {
this.consumes = consumes;
}
public void addConsumes(String consumes) {
if (this.consumes == null) {
this.consumes = new ArrayList();
}
if (!this.consumes.contains(consumes)) {
this.consumes.add(consumes);
}
}
public List getProduces() {
return produces;
}
public void setProduces(List produces) {
this.produces = produces;
}
public void addProduces(String produces) {
if (this.produces == null) {
this.produces = new ArrayList();
}
if (!this.produces.contains(produces)) {
this.produces.add(produces);
}
}
public Map getPaths() {
return paths;
}
public void setPaths(Map paths) {
this.paths = paths;
}
public Path getPath(String path) {
if (this.paths == null) {
return null;
}
return this.paths.get(path);
}
public Map getSecurityDefinitions() {
return securityDefinitions;
}
public void setSecurityDefinitions(Map securityDefinitions) {
this.securityDefinitions = securityDefinitions;
}
public void addSecurityDefinition(String name, SecuritySchemeDefinition securityDefinition) {
if (this.securityDefinitions == null) {
this.securityDefinitions = new LinkedHashMap();
}
this.securityDefinitions.put(name, securityDefinition);
}
/**
* @deprecated Use {@link #getSecurity()}.
*/
@JsonIgnore
@Deprecated
public List getSecurityRequirement() {
return security;
}
/**
* @deprecated Use {@link #setSecurity(List)}.
*/
@JsonIgnore
@Deprecated
public void setSecurityRequirement(List securityRequirements) {
this.security = securityRequirements;
}
/**
* @deprecated Use {@link #addSecurity(SecurityRequirement)}.
*/
@JsonIgnore
@Deprecated
public void addSecurityDefinition(SecurityRequirement securityRequirement) {
this.addSecurity(securityRequirement);
}
public List getSecurity() {
return security;
}
public void setSecurity(List securityRequirements) {
this.security = securityRequirements;
}
public void addSecurity(SecurityRequirement securityRequirement) {
if (this.security == null) {
this.security = new ArrayList();
}
this.security.add(securityRequirement);
}
public Map getDefinitions() {
return definitions;
}
public void setDefinitions(Map definitions) {
this.definitions = definitions;
}
public void addDefinition(String key, Model model) {
if (this.definitions == null) {
this.definitions = new LinkedHashMap();
}
this.definitions.put(key, model);
}
public Map getParameters() {
return parameters;
}
public void setParameters(Map parameters) {
this.parameters = parameters;
}
public Parameter getParameter(String parameter) {
if (this.parameters == null) {
return null;
}
return this.parameters.get(parameter);
}
public void addParameter(String key, Parameter parameter) {
if (this.parameters == null) {
this.parameters = new LinkedHashMap();
}
this.parameters.put(key, parameter);
}
public Map getResponses() {
return responses;
}
public void setResponses(Map responses) {
this.responses = responses;
}
public ExternalDocs getExternalDocs() {
return externalDocs;
}
public void setExternalDocs(ExternalDocs value) {
externalDocs = value;
}
@JsonAnyGetter
public Map getVendorExtensions() {
return vendorExtensions;
}
@JsonAnySetter
public void setVendorExtension(String name, Object value) {
if (name.startsWith("x-")) {
vendorExtension(name, value);
}
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((basePath == null) ? 0 : basePath.hashCode());
result = prime * result + ((consumes == null) ? 0 : consumes.hashCode());
result = prime * result + ((definitions == null) ? 0 : definitions.hashCode());
result = prime * result + ((externalDocs == null) ? 0 : externalDocs.hashCode());
result = prime * result + ((host == null) ? 0 : host.hashCode());
result = prime * result + ((info == null) ? 0 : info.hashCode());
result = prime * result + ((parameters == null) ? 0 : parameters.hashCode());
result = prime * result + ((paths == null) ? 0 : paths.hashCode());
result = prime * result + ((produces == null) ? 0 : produces.hashCode());
result = prime * result + ((responses == null) ? 0 : responses.hashCode());
result = prime * result + ((schemes == null) ? 0 : schemes.hashCode());
result = prime * result + ((security == null) ? 0 : security.hashCode());
result = prime * result + ((securityDefinitions == null) ? 0 : securityDefinitions.hashCode());
result = prime * result + ((swagger == null) ? 0 : swagger.hashCode());
result = prime * result + ((tags == null) ? 0 : tags.hashCode());
result = prime * result + ((vendorExtensions == null) ? 0 : vendorExtensions.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
Swagger other = (Swagger) obj;
if (basePath == null) {
if (other.basePath != null) {
return false;
}
} else if (!basePath.equals(other.basePath)) {
return false;
}
if (consumes == null) {
if (other.consumes != null) {
return false;
}
} else if (!consumes.equals(other.consumes)) {
return false;
}
if (definitions == null) {
if (other.definitions != null) {
return false;
}
} else if (!definitions.equals(other.definitions)) {
return false;
}
if (externalDocs == null) {
if (other.externalDocs != null) {
return false;
}
} else if (!externalDocs.equals(other.externalDocs)) {
return false;
}
if (host == null) {
if (other.host != null) {
return false;
}
} else if (!host.equals(other.host)) {
return false;
}
if (info == null) {
if (other.info != null) {
return false;
}
} else if (!info.equals(other.info)) {
return false;
}
if (parameters == null) {
if (other.parameters != null) {
return false;
}
} else if (!parameters.equals(other.parameters)) {
return false;
}
if (paths == null) {
if (other.paths != null) {
return false;
}
} else if (!paths.equals(other.paths)) {
return false;
}
if (produces == null) {
if (other.produces != null) {
return false;
}
} else if (!produces.equals(other.produces)) {
return false;
}
if (responses == null) {
if (other.responses != null) {
return false;
}
} else if (!responses.equals(other.responses)) {
return false;
}
if (schemes == null) {
if (other.schemes != null) {
return false;
}
} else if (!schemes.equals(other.schemes)) {
return false;
}
if (security == null) {
if (other.security != null) {
return false;
}
} else if (!security.equals(other.security)) {
return false;
}
if (securityDefinitions == null) {
if (other.securityDefinitions != null) {
return false;
}
} else if (!securityDefinitions.equals(other.securityDefinitions)) {
return false;
}
if (swagger == null) {
if (other.swagger != null) {
return false;
}
} else if (!swagger.equals(other.swagger)) {
return false;
}
if (tags == null) {
if (other.tags != null) {
return false;
}
} else if (!tags.equals(other.tags)) {
return false;
}
if (vendorExtensions == null) {
if (other.vendorExtensions != null) {
return false;
}
} else if (!vendorExtensions.equals(other.vendorExtensions)) {
return false;
}
return true;
}
public Swagger vendorExtensions(Map vendorExtensions) {
if( vendorExtensions == null ){
return this;
}
if( this.vendorExtensions == null ){
this.vendorExtensions = new LinkedHashMap();
}
this.vendorExtensions.putAll( vendorExtensions );
return this;
}
public void setVendorExtensions(Map vendorExtensions) {
this.vendorExtensions = vendorExtensions;
}
}