![JAR search and dependency download from the Maven repository](/logo.png)
com.arangodb.serde.jackson.internal.JacksonMapperProvider Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jackson-serde-json Show documentation
Show all versions of jackson-serde-json Show documentation
Jackson Serde JSON module for ArangoDB Java Driver
package com.arangodb.serde.jackson.internal;
import com.arangodb.ArangoDBException;
import com.arangodb.ContentType;
import com.fasterxml.jackson.core.JsonFactory;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ServiceLoader;
import java.util.function.Supplier;
/**
* Not shaded in arangodb-java-driver-shaded.
*/
public interface JacksonMapperProvider extends Supplier {
Logger LOG = LoggerFactory.getLogger(JacksonMapperProvider.class);
static ObjectMapper of(final ContentType contentType) {
String formatName;
if (contentType == ContentType.JSON) {
formatName = "JSON";
} else if (contentType == ContentType.VPACK) {
formatName = "Velocypack";
} else {
throw new IllegalArgumentException("Unexpected value: " + contentType);
}
ServiceLoader sl = ServiceLoader.load(JsonFactory.class);
for (JsonFactory jf : sl) {
if(formatName.equals(jf.getFormatName())){
return new ObjectMapper(jf);
}
LOG.debug("Required format ({}) not supported by JsonFactory: {}", formatName, jf.getClass().getName());
}
throw new ArangoDBException("No JsonFactory found for content type: " + contentType);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy