com.fasterxml.jackson.databind.deser.std.ByteBufferDeserializer Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jersey-all Show documentation
Show all versions of jersey-all Show documentation
jersey-all is a rebundled verison of Jersey as one OSGi bundle.
package com.fasterxml.jackson.databind.deser.std;
import java.io.*;
import java.nio.ByteBuffer;
import com.fasterxml.jackson.core.*;
import com.fasterxml.jackson.databind.*;
import com.fasterxml.jackson.databind.util.ByteBufferBackedOutputStream;
public class ByteBufferDeserializer extends StdScalarDeserializer
{
private static final long serialVersionUID = 1L;
protected ByteBufferDeserializer() { super(ByteBuffer.class); }
@Override
public ByteBuffer deserialize(JsonParser parser, DeserializationContext cx)
throws IOException, JsonProcessingException
{
byte[] b = parser.getBinaryValue();
return ByteBuffer.wrap(b);
}
@Override
public ByteBuffer deserialize(JsonParser jp, DeserializationContext ctxt,
ByteBuffer intoValue)
throws IOException, JsonProcessingException
{
// Let's actually read in streaming manner...
OutputStream out = new ByteBufferBackedOutputStream(intoValue);
jp.readBinaryValue(ctxt.getBase64Variant(), out);
out.close();
return intoValue;
}
}