All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.dongliu.prettypb.runtime.code.primitive.BoolProtoFieldInfo Maven / Gradle / Ivy

There is a newer version: 0.3.5
Show newest version
package net.dongliu.prettypb.runtime.code.primitive;

import net.dongliu.prettypb.runtime.code.ProtoBufReader;
import net.dongliu.prettypb.runtime.include.ProtoField;
import net.dongliu.prettypb.runtime.include.ProtoType;
import net.dongliu.prettypb.runtime.code.ProtoBufWriter;
import net.dongliu.prettypb.runtime.code.PrimitiveProtoFieldInfo;

import java.io.IOException;
import java.lang.reflect.Field;

/**
 * @author Dong Liu
 */
public class BoolProtoFieldInfo extends PrimitiveProtoFieldInfo {

    public BoolProtoFieldInfo(Field field, Field helperField, ProtoField protoField) {
        super(field, helperField, protoField);
    }

    @Override
    protected  void serializeFieldInternal(T bean, ProtoBufWriter protoBufWriter)
            throws IllegalAccessException, IOException {
        boolean value = field.getBoolean(bean);
        protoBufWriter.encodeTag(ProtoType.Bool, idx());
        protoBufWriter.writeVarInt(value ? 1 : 0);
    }

    @Override
    protected  void deSerializeFieldInternal(T bean, ProtoBufReader protoBufReader)
            throws IOException, IllegalAccessException {
        int i = protoBufReader.readVarSInt();
        field.setBoolean(bean, i != 0);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy