com.algolia.model.search.SearchResult Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of algoliasearch Show documentation
Show all versions of algoliasearch Show documentation
Java client for Algolia Search API
// Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost
// - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.
package com.algolia.model.search;
import com.algolia.exceptions.AlgoliaRuntimeException;
import com.algolia.utils.CompoundType;
import com.fasterxml.jackson.annotation.*;
import com.fasterxml.jackson.core.*;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.*;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
import java.util.logging.Logger;
/** SearchResult */
@JsonDeserialize(using = SearchResult.Deserializer.class)
@JsonSerialize(using = SearchResult.Serializer.class)
public interface SearchResult extends CompoundType {
static SearchResult of(SearchForFacetValuesResponse inside) {
return new SearchResultSearchForFacetValuesResponse(inside);
}
static SearchResult of(SearchResponse inside) {
return new SearchResultSearchResponse(inside);
}
class Serializer extends StdSerializer {
public Serializer(Class t) {
super(t);
}
public Serializer() {
this(null);
}
@Override
public void serialize(SearchResult value, JsonGenerator jgen, SerializerProvider provider) throws IOException {
jgen.writeObject(value.get());
}
}
class Deserializer extends StdDeserializer {
private static final Logger LOGGER = Logger.getLogger(Deserializer.class.getName());
public Deserializer() {
this(SearchResult.class);
}
public Deserializer(Class> vc) {
super(vc);
}
@Override
public SearchResult deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {
JsonNode tree = jp.readValueAsTree();
// deserialize SearchForFacetValuesResponse
if (tree.isObject() && tree.has("facetHits")) {
try (JsonParser parser = tree.traverse(jp.getCodec())) {
SearchForFacetValuesResponse value = parser.readValueAs(new TypeReference() {});
return SearchResult.of(value);
} catch (Exception e) {
// deserialization failed, continue
LOGGER.finest(
"Failed to deserialize oneOf SearchForFacetValuesResponse (error: " + e.getMessage() + ") (type: SearchForFacetValuesResponse)"
);
}
}
// deserialize SearchResponse
if (tree.isObject()) {
try (JsonParser parser = tree.traverse(jp.getCodec())) {
SearchResponse value = parser.readValueAs(new TypeReference() {});
return SearchResult.of(value);
} catch (Exception e) {
// deserialization failed, continue
LOGGER.finest("Failed to deserialize oneOf SearchResponse (error: " + e.getMessage() + ") (type: SearchResponse)");
}
}
throw new AlgoliaRuntimeException(String.format("Failed to deserialize json element: %s", tree));
}
/** Handle deserialization of the 'null' value. */
@Override
public SearchResult getNullValue(DeserializationContext ctxt) throws JsonMappingException {
throw new JsonMappingException(ctxt.getParser(), "SearchResult cannot be null");
}
}
}
class SearchResultSearchForFacetValuesResponse implements SearchResult {
private final SearchForFacetValuesResponse value;
SearchResultSearchForFacetValuesResponse(SearchForFacetValuesResponse value) {
this.value = value;
}
@Override
public SearchForFacetValuesResponse get() {
return value;
}
}
class SearchResultSearchResponse implements SearchResult {
private final SearchResponse value;
SearchResultSearchResponse(SearchResponse value) {
this.value = value;
}
@Override
public SearchResponse get() {
return value;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy