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

org.openapi4j.parser.model.v3.SecurityRequirement Maven / Gradle / Ivy

package org.openapi4j.parser.model.v3;

import com.fasterxml.jackson.annotation.JsonAnyGetter;
import com.fasterxml.jackson.annotation.JsonAnySetter;
import org.openapi4j.parser.model.AbsOpenApiSchema;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;

@SuppressWarnings("unused")
public class SecurityRequirement extends AbsOpenApiSchema {
  private Map> requirements;

  // Requirement
  @JsonAnyGetter
  public Map> getRequirements() {
    return requirements;
  }

  public SecurityRequirement setRequirements(Map> requirements) {
    this.requirements = requirements;
    return this;
  }

  public boolean hasRequirement(String name) {
    return mapHas(requirements, name);
  }

  public boolean hasRequirementScopes(String name) {
    List scopes = mapGet(requirements, name);
    return scopes != null && !scopes.isEmpty();
  }

  public List getRequirement(String name) {
    return mapGet(requirements, name);
  }

  @JsonAnySetter
  public SecurityRequirement setRequirement(String name, List scopes) {
    if (requirements == null) {
      requirements = new HashMap<>();
    }
    requirements.put(name, scopes);
    return this;
  }

  public SecurityRequirement removeRequirement(String name) {
    mapRemove(requirements, name);
    return this;
  }

  @Override
  public SecurityRequirement copy() {
    SecurityRequirement copy = new SecurityRequirement();

    copy.setRequirements(copySimpleMap(getRequirements()));

    return copy;
  }

  @Override
  public boolean equals(Object o) {
    if (this == o) return true;
    if (o == null || getClass() != o.getClass()) return false;

    SecurityRequirement that = (SecurityRequirement) o;

    return Objects.equals(requirements, that.requirements);
  }

  @Override
  public int hashCode() {
    return requirements != null ? requirements.hashCode() : 0;
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy