package net.varkhan.base.conversion.serializer.primitives;
import net.varkhan.base.conversion.serializer.Serializer;
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.ByteBuffer;
/**
* <b>A no-op serializer for {@literal null} objects</b>.
* <p/>
* This serializer does not output any bytes when encoding, and
* always returns {@literal null} when decoding, consuming 0 bytes.
* <p/>
*
* @author varkhan
* @date 1/30/11
* @time 4:53 AM
*/
public class NullSerializer<T,C> implements Serializer<T,C> {
protected static final NullSerializer instance=new NullSerializer();
@SuppressWarnings("unchecked")
public static <T,C> NullSerializer<T,C> instance() { return instance; }
public T decode(InputStream stm, C ctx) { return null; }
public T decode(ByteBuffer buf, C ctx) { return null; }
public T decode(byte[] dat, long pos, long len, C ctx) { return null; }
public long encode(T obj, OutputStream stm, C ctx) { return 0; }
public long encode(T obj, ByteBuffer buf, C ctx) { return 0; }
public long encode(T obj, byte[] dat, long pos, long len, C ctx) { return 0; }
public long length(T obj, C ctx) { return 0; }
}