Package io.fathom.cloud.protobuf.mapper

Source Code of io.fathom.cloud.protobuf.mapper.EnumFieldMapper

package io.fathom.cloud.protobuf.mapper;

import java.io.IOException;

import com.google.gson.stream.JsonReader;
import com.google.protobuf.Descriptors.EnumDescriptor;
import com.google.protobuf.Descriptors.EnumValueDescriptor;
import com.google.protobuf.Descriptors.FieldDescriptor;

class EnumFieldMapper extends FieldMapper {
    final EnumDescriptor enumType;

    public EnumFieldMapper(FieldDescriptor field) {
        super(field);
        this.enumType = field.getEnumType();
    }

    @Override
    public void writeValue(Object o, ProtobufWriter json) throws IOException {
        EnumValueDescriptor v = (EnumValueDescriptor) o;
        json.value(v.getName());
    }

    @Override
    public Object readValue(JsonReader json) throws IOException {
        String s = json.nextString();
        return enumType.findValueByName(s);
    }

}
TOP

Related Classes of io.fathom.cloud.protobuf.mapper.EnumFieldMapper

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.