Как я могу добавить свой собственный код в сгенерированные JAVA классы из файла proto? - PullRequest
0 голосов
/ 12 июня 2018

Я использую protobuf и генерирую классы JAVA из следующего файла proto.

syntax = "proto3";
enum Greeting {
    NONE = 0;
    MR = 1;
    MRS = 2;
    MISS = 3;
}

message Hello {
    Greeting greeting = 1;
    string name = 2;
}

message Bye {
    string name = 1;
}

option java_multiple_files = true;

Теперь мне нужно добавить код в сгенерированные файлы, и я обнаружил, что это возможно с помощью пользовательскогоПлагин (https://developers.google.com/protocol-buffers/docs/reference/java-generated#plugins). Я пытаюсь сгенерировать этот плагин в Java, что-то вроде этого.

public class Test {
   PluginProtos.CodeGeneratorResponse.getDefaultInstance();
   /* Code to get generated files from java_out and use the insertion points */
   codeGeneratorResponse.writeTo(System.out);
}

И затем я запускаю

protoc --java_out=./classes --plugin=protoc-gen-demo=my-plugin --demo_out=. example.proto

Проблема в том, что намой основной метод Test.java Я не знаю, как получить доступ к файлам, созданным с помощью опции --java_out, чтобы я мог использовать их точки вставки. В настоящее время CodeGeneratorResponse для экземпляра по умолчанию пуст (нет файлов).

Кто-нибудь знает, как я могу получить CodeGeneratorResponse из --java_out, чтобы я мог добавить больше кода к сгенерированным классам?

Заранее спасибо.

...