From 516b3f93ab9785c3209820e06cb9376e77b40e00 Mon Sep 17 00:00:00 2001 From: godotg Date: Sun, 3 Dec 2023 17:02:05 +0800 Subject: [PATCH] ref[protobuf]: refactor protobuf generate --- .../serializer/protobuf/GeneratePbUtils.java | 4 +- .../serializer/protobuf/parser/Proto.java | 88 +++++-------------- .../protobuf/parser/ProtoParser.java | 15 ++-- 3 files changed, 29 insertions(+), 78 deletions(-) diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/protobuf/GeneratePbUtils.java b/protocol/src/main/java/com/zfoo/protocol/serializer/protobuf/GeneratePbUtils.java index 7dbb724f..bb1b650e 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/protobuf/GeneratePbUtils.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/protobuf/GeneratePbUtils.java @@ -77,7 +77,7 @@ public class GeneratePbUtils { if (options != null) { options.forEach(o -> protoOptions.put(o.getName(), o.getValue())); } - if (CollectionUtils.isEmpty(proto.getMessages())) { + if (CollectionUtils.isEmpty(proto.getPbMessages())) { continue; } @@ -91,7 +91,7 @@ public class GeneratePbUtils { Map msgComments = new HashMap<>(); - List msgs = proto.getMessages(); + List msgs = proto.getPbMessages(); for (var msg : msgs) { StringBuilder mc = new StringBuilder(); if (CollectionUtils.isNotEmpty(msg.getComments())) { diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/protobuf/parser/Proto.java b/protocol/src/main/java/com/zfoo/protocol/serializer/protobuf/parser/Proto.java index 1f2f0e15..0977a23a 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/protobuf/parser/Proto.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/protobuf/parser/Proto.java @@ -55,105 +55,59 @@ public class Proto { */ private List comments = new ArrayList<>(); - public Proto setSyntax(Syntax syntax) { - this.syntax = syntax; - return this; - } - - public Proto addOption(PbOption option) { - getOptions().add(option); - return this; - } - - public Proto addImport(String value) { - getImports().add(value); - return this; - } - - public Proto addMsg(PbMessage msg) { - getMessages().add(msg); - return this; - } - - /** - * Proto描述文件的名称 - * - * @return the name - */ public String getName() { return name; } - /** - * Proto描述文件的名称 - * - * @param name the name to set - * @return - */ - public Proto setName(String name) { + public void setName(String name) { this.name = name; - return this; } - /** - * Proto的可选信息 - * - * @return the options - */ public List getOptions() { return options; } - /** - * 文档版本没有指定默认为proto2 - * - * @return the syntax - */ + public void setOptions(List options) { + this.options = options; + } + public Syntax getSyntax() { return syntax; } - /** - * proto文件的包名 - * - * @return the protoPackage - */ + public void setSyntax(Syntax syntax) { + this.syntax = syntax; + } + public String getProtoPackage() { return protoPackage; } - /** - * proto文件的包名 - * - * @param protoPackage the protoPackage to set - * @return - */ - public Proto setProtoPackage(String protoPackage) { + public void setProtoPackage(String protoPackage) { this.protoPackage = protoPackage; - return this; } - /** - * 定义的消息列表 - * - * @return the messages - */ - public List getMessages() { + public List getPbMessages() { return pbMessages; } - /** - * 文档导入的文件的路径列表 - * - * @return the imports - */ + public void setPbMessages(List pbMessages) { + this.pbMessages = pbMessages; + } + public List getImports() { return imports; } + public void setImports(List imports) { + this.imports = imports; + } public List getComments() { return comments; } + public void setComments(List comments) { + this.comments = comments; + } } \ No newline at end of file diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/protobuf/parser/ProtoParser.java b/protocol/src/main/java/com/zfoo/protocol/serializer/protobuf/parser/ProtoParser.java index 0ffa48b2..83c5d795 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/protobuf/parser/ProtoParser.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/protobuf/parser/ProtoParser.java @@ -20,15 +20,12 @@ import com.zfoo.protocol.util.StringUtils; import java.util.*; - /** * proto文件的解析器 * * @date : 2019/12/2 */ public class ProtoParser { - - /** * 需要解析的字符数组 */ @@ -99,22 +96,22 @@ public class ProtoParser { readValueSeparator('='); ProtoValue pv = readValueUtilSemicolon(); String optionValue = pv.getValue(); - PbOption option = new PbOption(); - option.setName(optionLabel); - option.setValue(optionValue); - proto.addOption(option); + PbOption pbOption = new PbOption(); + pbOption.setName(optionLabel); + pbOption.setValue(optionValue); + proto.getOptions().add(pbOption); comments.clear(); break; case "import": addCommentsToProto(proto); readValueSeparator(' '); ProtoValue impValue = readValueUtilSemicolon(); - proto.addImport(impValue.getValue()); + proto.getImports().add(impValue.getValue()); comments.clear(); break; case "message": PbMessage msg = parseMessage(); - proto.addMsg(msg); + proto.getPbMessages().add(msg); comments.clear(); break; case "enum":