Преобразование между сообщениями protobuf - PullRequest
0 голосов
/ 21 декабря 2018

У меня есть две модели протобаффов, называемые Car и MotorCar, слишком большие, чтобы ими делиться.Я получаю одно сообщение в формате автомобиля, и мне нужно преобразовать его в формат MotorCar и отправить его дальше.Они содержат несколько похожих полей и вложенных объектов с одинаковыми именами, а некоторые полностью различаются, т. Е. У MotorCar есть концепция двигателя, а у автомобиля - нет, но мне нужно найти ее, чтобы предоставить ее в зависимости от модели автомобиля.Я не уверен, какой подход выбрать для выполнения этой работы.Должен ли я просто использовать маппер и заполнять дополнительные объекты следующим образом:

public class Mapper {

    public MotorCar from (Car carMessage) {
        MotorCar.Builder motorCar = MotorCar.newBuilder();
        motorCar.setModel(carMessage.getModelName());
        ...
        motorCar.setEngine(getEngine(carMessage.getModelName()))
        return motorCar.build()
    }

    private Engine getEngine(String model) {
        ...
    }
}

Моя проблема в том, что он создаст огромный класс с большим количеством сеттеров.Я посмотрел на шаблон адаптера, но я не уверен, как реализовать его для этого сценария протобуфф-сообщений без класса интерфейса.

Любая помощь приветствуется.

Спасибо

...