com.algolia.model.search.SearchQuery 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;
/** SearchQuery */
@JsonDeserialize(using = SearchQuery.Deserializer.class)
@JsonSerialize(using = SearchQuery.Serializer.class)
public interface SearchQuery extends CompoundType {
static SearchQuery of(SearchForFacets inside) {
return new SearchQuerySearchForFacets(inside);
}
static SearchQuery of(SearchForHits inside) {
return new SearchQuerySearchForHits(inside);
}
class Serializer extends StdSerializer {
public Serializer(Class t) {
super(t);
}
public Serializer() {
this(null);
}
@Override
public void serialize(SearchQuery 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(SearchQuery.class);
}
public Deserializer(Class> vc) {
super(vc);
}
@Override
public SearchQuery deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {
JsonNode tree = jp.readValueAsTree();
// deserialize SearchForFacets
if (tree.isObject()) {
try (JsonParser parser = tree.traverse(jp.getCodec())) {
SearchForFacets value = parser.readValueAs(new TypeReference() {});
return SearchQuery.of(value);
} catch (Exception e) {
// deserialization failed, continue
LOGGER.finest("Failed to deserialize oneOf SearchForFacets (error: " + e.getMessage() + ") (type: SearchForFacets)");
}
}
// deserialize SearchForHits
if (tree.isObject()) {
try (JsonParser parser = tree.traverse(jp.getCodec())) {
SearchForHits value = parser.readValueAs(new TypeReference() {});
return SearchQuery.of(value);
} catch (Exception e) {
// deserialization failed, continue
LOGGER.finest("Failed to deserialize oneOf SearchForHits (error: " + e.getMessage() + ") (type: SearchForHits)");
}
}
throw new AlgoliaRuntimeException(String.format("Failed to deserialize json element: %s", tree));
}
/** Handle deserialization of the 'null' value. */
@Override
public SearchQuery getNullValue(DeserializationContext ctxt) throws JsonMappingException {
throw new JsonMappingException(ctxt.getParser(), "SearchQuery cannot be null");
}
}
}
class SearchQuerySearchForFacets implements SearchQuery {
private final SearchForFacets value;
SearchQuerySearchForFacets(SearchForFacets value) {
this.value = value;
}
@Override
public SearchForFacets get() {
return value;
}
}
class SearchQuerySearchForHits implements SearchQuery {
private final SearchForHits value;
SearchQuerySearchForHits(SearchForHits value) {
this.value = value;
}
@Override
public SearchForHits get() {
return value;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy