![JAR search and dependency download from the Maven repository](/logo.png)
com.arangodb.serde.ArangoSerdeProvider Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of core Show documentation
Show all versions of core Show documentation
Core module for ArangoDB Java Driver
package com.arangodb.serde;
import com.arangodb.ArangoDBException;
import com.arangodb.ContentType;
import com.arangodb.internal.serde.InternalSerdeProvider;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Iterator;
import java.util.ServiceConfigurationError;
import java.util.ServiceLoader;
public interface ArangoSerdeProvider {
static ArangoSerdeProvider of(ContentType contentType) {
Logger LOG = LoggerFactory.getLogger(ArangoSerdeProvider.class);
ServiceLoader loader = ServiceLoader.load(ArangoSerdeProvider.class);
ArangoSerdeProvider serdeProvider = null;
Iterator iterator = loader.iterator();
while (iterator.hasNext()) {
ArangoSerdeProvider p;
try {
p = iterator.next();
} catch (ServiceConfigurationError e) {
LOG.warn("ServiceLoader failed to load ArangoSerdeProvider", e);
continue;
}
if (contentType.equals(p.getContentType())) {
if (serdeProvider != null) {
throw new ArangoDBException("Found multiple serde providers! Please set explicitly the one to use.");
}
serdeProvider = p;
}
}
if (serdeProvider == null) {
LOG.warn("No ArangoSerdeProvider found, using InternalSerdeProvider. Please consider registering a custom " +
"ArangoSerdeProvider to avoid depending on internal classes which are not part of the public API.");
serdeProvider = new InternalSerdeProvider(contentType);
}
return serdeProvider;
}
/**
* @return a new serde instance
*/
ArangoSerde create();
/**
* @return the supported content type
*/
ContentType getContentType();
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy