com.fasterxml.jackson.databind.deser.std.StdScalarDeserializer Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of ehcache Show documentation
Show all versions of ehcache Show documentation
Ehcache is an open source, standards-based cache used to boost performance,
offload the database and simplify scalability. Ehcache is robust, proven and full-featured and
this has made it the most widely-used Java-based cache.
package com.fasterxml.jackson.databind.deser.std;
import java.io.IOException;
import com.fasterxml.jackson.core.*;
import com.fasterxml.jackson.databind.*;
import com.fasterxml.jackson.databind.jsontype.TypeDeserializer;
import com.fasterxml.jackson.databind.util.AccessPattern;
/**
* Base class for deserializers that handle types that are serialized
* as JSON scalars (non-structured, i.e. non-Object, non-Array, values).
*/
public abstract class StdScalarDeserializer extends StdDeserializer
{
private static final long serialVersionUID = 1L;
protected StdScalarDeserializer(Class> vc) { super(vc); }
protected StdScalarDeserializer(JavaType valueType) { super(valueType); }
// since 2.5
protected StdScalarDeserializer(StdScalarDeserializer> src) { super(src); }
@Override
public Object deserializeWithType(JsonParser p, DeserializationContext ctxt, TypeDeserializer typeDeserializer) throws IOException {
return typeDeserializer.deserializeTypedFromScalar(p, ctxt);
}
/**
* Overridden to simply call deserialize()
method that does not take value
* to update, since scalar values are usually non-mergeable.
*/
@Override // since 2.9
public T deserialize(JsonParser p, DeserializationContext ctxt, T intoValue) throws IOException {
// 25-Oct-2016, tatu: And if attempt is made, see if we are to complain...
ctxt.reportBadMerge(this);
// except that it is possible to suppress this; and if so...
return deserialize(p, ctxt);
}
/**
* By default assumption is that scalar types cannot be updated: many are immutable
* values (such as primitives and wrappers)
*/
@Override // since 2.9
public Boolean supportsUpdate(DeserializationConfig config) {
return Boolean.FALSE;
}
// Typically Scalar values have default setting of "nulls as nulls"
@Override
public AccessPattern getNullAccessPattern() {
return AccessPattern.ALWAYS_NULL;
}
// While some scalar types have non-null empty values (hence can't say "ALWAYS_NULL")
// they are mostly immutable, shareable and so constant.
@Override // since 2.9
public AccessPattern getEmptyAccessPattern() {
return AccessPattern.CONSTANT;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy