com.fasterxml.jackson.databind.ser.impl.IteratorSerializer 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.ser.impl;
import java.io.IOException;
import java.util.Iterator;
import com.fasterxml.jackson.core.JsonGenerationException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.*;
import com.fasterxml.jackson.databind.annotation.JacksonStdImpl;
import com.fasterxml.jackson.databind.jsontype.TypeSerializer;
import com.fasterxml.jackson.databind.ser.ContainerSerializer;
import com.fasterxml.jackson.databind.ser.std.AsArraySerializerBase;
@JacksonStdImpl
public class IteratorSerializer
extends AsArraySerializerBase>
{
public IteratorSerializer(JavaType elemType, boolean staticTyping, TypeSerializer vts,
BeanProperty property)
{
super(Iterator.class, elemType, staticTyping, vts, property, null);
}
public IteratorSerializer(IteratorSerializer src,
BeanProperty property, TypeSerializer vts, JsonSerializer> valueSerializer)
{
super(src, property, vts, valueSerializer);
}
@Override
public boolean isEmpty(Iterator> value) {
return (value == null) || !value.hasNext();
}
@Override
public boolean hasSingleElement(Iterator> value) {
// no really good way to determine (without consuming iterator), so:
return false;
}
@Override
public ContainerSerializer> _withValueTypeSerializer(TypeSerializer vts) {
return new IteratorSerializer(_elementType, _staticTyping, vts, _property);
}
@Override
public IteratorSerializer withResolved(BeanProperty property,
TypeSerializer vts, JsonSerializer> elementSerializer) {
return new IteratorSerializer(this, property, vts, elementSerializer);
}
@Override
public void serializeContents(Iterator> value, JsonGenerator jgen, SerializerProvider provider)
throws IOException, JsonGenerationException
{
if (value.hasNext()) {
final TypeSerializer typeSer = _valueTypeSerializer;
JsonSerializer