com.algolia.model.search.AroundPrecision 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.List;
import java.util.logging.Logger;
/**
* Precision of a geographical search (in meters), to [group results that are more or less the same
* distance from a central
* point](https://www.algolia.com/doc/guides/managing-results/refine-results/geolocation/in-depth/geo-ranking-precision/).
*/
@JsonDeserialize(using = AroundPrecision.Deserializer.class)
@JsonSerialize(using = AroundPrecision.Serializer.class)
public interface AroundPrecision extends CompoundType {
static AroundPrecision of(Integer inside) {
return new AroundPrecisionInteger(inside);
}
static AroundPrecision> of(List inside) {
return new AroundPrecisionListOfAroundPrecisionFromValueInner(inside);
}
class Serializer extends StdSerializer {
public Serializer(Class t) {
super(t);
}
public Serializer() {
this(null);
}
@Override
public void serialize(AroundPrecision 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(AroundPrecision.class);
}
public Deserializer(Class> vc) {
super(vc);
}
@Override
public AroundPrecision deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {
JsonNode tree = jp.readValueAsTree();
// deserialize Integer
if (tree.isValueNode()) {
try (JsonParser parser = tree.traverse(jp.getCodec())) {
Integer value = parser.readValueAs(new TypeReference() {});
return AroundPrecision.of(value);
} catch (Exception e) {
// deserialization failed, continue
LOGGER.finest("Failed to deserialize oneOf Integer (error: " + e.getMessage() + ") (type: Integer)");
}
}
// deserialize List
if (tree.isArray()) {
try (JsonParser parser = tree.traverse(jp.getCodec())) {
List value = parser.readValueAs(new TypeReference>() {});
return AroundPrecision.of(value);
} catch (Exception e) {
// deserialization failed, continue
LOGGER.finest(
"Failed to deserialize oneOf List (error: " +
e.getMessage() +
") (type: List)"
);
}
}
throw new AlgoliaRuntimeException(String.format("Failed to deserialize json element: %s", tree));
}
/** Handle deserialization of the 'null' value. */
@Override
public AroundPrecision getNullValue(DeserializationContext ctxt) throws JsonMappingException {
throw new JsonMappingException(ctxt.getParser(), "AroundPrecision cannot be null");
}
}
}
class AroundPrecisionInteger implements AroundPrecision {
private final Integer value;
AroundPrecisionInteger(Integer value) {
this.value = value;
}
@Override
public Integer get() {
return value;
}
}
class AroundPrecisionListOfAroundPrecisionFromValueInner implements AroundPrecision> {
private final List value;
AroundPrecisionListOfAroundPrecisionFromValueInner(List value) {
this.value = value;
}
@Override
public List get() {
return value;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy