ImmutableLongArrayDeserializer.java
package tools.jackson.datatype.guava.deser.primitives;
import tools.jackson.core.JsonParser;
import tools.jackson.databind.*;
import tools.jackson.databind.deser.jdk.PrimitiveArrayDeserializers;
import tools.jackson.databind.deser.std.StdDeserializer;
import tools.jackson.databind.type.LogicalType;
import tools.jackson.databind.util.AccessPattern;
import com.google.common.primitives.ImmutableLongArray;
public final class ImmutableLongArrayDeserializer extends StdDeserializer<ImmutableLongArray>
{
private final ValueDeserializer<long[]> _longArrayDeserializer;
public ImmutableLongArrayDeserializer() {
super(ImmutableLongArray.class);
@SuppressWarnings("unchecked")
ValueDeserializer<long[]> deser = (ValueDeserializer<long[]>) PrimitiveArrayDeserializers.forType(long.class);
_longArrayDeserializer = deser;
}
@Override
public LogicalType logicalType() {
return LogicalType.Array;
}
@Override
public Boolean supportsUpdate(DeserializationConfig config) {
return Boolean.FALSE;
}
@Override
public boolean isCachable() {
return true;
}
@Override
public AccessPattern getEmptyAccessPattern() {
return AccessPattern.CONSTANT;
}
@Override
public ImmutableLongArray getEmptyValue(DeserializationContext ctxt) {
return ImmutableLongArray.of();
}
@Override
public ImmutableLongArray deserialize(JsonParser p, DeserializationContext ctxt) {
return ImmutableLongArray.copyOf(_longArrayDeserializer.deserialize(p, ctxt));
}
}