// 
// Decompiled by Procyon v0.6.0
// 

package org.bson.codecs;

import org.bson.BsonInvalidOperationException;
import org.bson.BsonReader;
import org.bson.BsonWriter;

public class ShortCodec implements Codec<Short>
{
    @Override
    public void encode(final BsonWriter writer, final Short value, final EncoderContext encoderContext) {
        writer.writeInt32(value);
    }
    
    @Override
    public Short decode(final BsonReader reader, final DecoderContext decoderContext) {
        final int value = NumberCodecHelper.decodeInt(reader);
        if (value < -32768 || value > 32767) {
            throw new BsonInvalidOperationException(String.format("%s can not be converted into a Short.", value));
        }
        return (short)value;
    }
    
    @Override
    public Class<Short> getEncoderClass() {
        return Short.class;
    }
}
