У меня есть набор Java протокольных буферов. Мне нужно извлечь из него все возможные поля, могу ли я сделать это без знания структуры буфера протокола заранее?
Представьте, что у меня есть сообщение
message Person {
required string name = 1;
required int32 id = 2;
optional string email = 3;
enum PhoneType {
MOBILE = 0;
HOME = 1;
WORK = 2;
}
message PhoneNumber {
required string number = 1;
optional PhoneType type = 2 [default = HOME];
required PhoneLocation location = 3;
}
repeated PhoneNumber phones = 4;
}
message PhoneLocation {
required string name = 1;
}
Мне нужно что-то, что напечатает для меня ([*] означает повторяющееся поле)
Person.name
Person.id
Person.email
person.phones[*]
person.phones[*].number
person.phones[*].type
person.phones[*].location.name
У меня только класс java, как мне это сделать?