com.datastax.driver.dse.graph.AbstractObjectDeserializer Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of dse-java-driver-core Show documentation
Show all versions of dse-java-driver-core Show documentation
A driver for DataStax Enterprise (DSE)
and Apache Cassandra 1.2+ clusters that works exclusively with the
Cassandra Query Language version 3 (CQL3) and Cassandra's binary protocol,
supporting DSE-specific features such as geospatial types, DSE Graph and DSE authentication.
/*
* Copyright DataStax, Inc.
*
* This software can be used solely with DataStax Enterprise. Please consult the license at
* http://www.datastax.com/terms/datastax-dse-driver-license-terms
*/
package com.datastax.driver.dse.graph;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import java.io.IOException;
import java.util.Map;
/**
* Base class for creating deserializers which parses JSON to a {@code Map} to more easily reconstruct an object.
*/
abstract class AbstractObjectDeserializer extends StdDeserializer {
protected AbstractObjectDeserializer(final Class clazz) {
super(clazz);
}
@Override
public T deserialize(final JsonParser jsonParser, final DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
jsonParser.nextToken();
// This will automatically parse all typed stuff.
@SuppressWarnings("unchecked")
final Map mapData = deserializationContext.readValue(jsonParser, Map.class);
return createObject(mapData);
}
public abstract T createObject(final Map data);
}