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); } }