Я использую 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, чтобы я мог добавить больше кода к сгенерированным классам?
Заранее спасибо.