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

org.openapi4j.core.model.v3.MappingReferenceResolver Maven / Gradle / Ivy

package org.openapi4j.core.model.v3;

import com.fasterxml.jackson.databind.JsonNode;
import org.openapi4j.core.model.AuthOption;
import org.openapi4j.core.model.reference.AbstractReferenceResolver;
import org.openapi4j.core.model.reference.ReferenceRegistry;

import java.net.URL;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;

import static org.openapi4j.core.model.v3.OAI3SchemaKeywords.$REF;
import static org.openapi4j.core.model.v3.OAI3SchemaKeywords.MAPPING;

/**
 * The JSON reference resolver for discriminator mapping.
 */
class MappingReferenceResolver extends AbstractReferenceResolver {
  MappingReferenceResolver(URL baseUrl, List authOptions, JsonNode apiNode, ReferenceRegistry referenceRegistry) {
    super(baseUrl, authOptions, apiNode, $REF, referenceRegistry);
  }

  @Override
  protected Collection getReferencePaths(JsonNode document) {
    Collection referenceNodes = document.findValues(MAPPING);

    Collection referencePaths = new HashSet<>();

    for (JsonNode refNode : referenceNodes) {
      for (JsonNode mappingNode : refNode) {
        referencePaths.add(mappingNode);
      }
    }

    return referencePaths;
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy