if (messageBytes != null) {
MessageMarshaller marshaller = ctx.getMarshaller(descriptorFullName);
ByteArrayInputStream bais2 = new ByteArrayInputStream(messageBytes);
CodedInputStream in2 = CodedInputStream.newInstance(bais2);
ProtobufReaderImpl reader = new ProtobufReaderImpl(ctx);
return reader.read(in2, marshaller);
} else {
EnumEncoder<? extends Enum> enumEncoder = ctx.getEnumEncoder(descriptorFullName);
return enumEncoder.decode(enumValue);
}
}