From a48c453f99bc46dcc733e3d98df7b428212c51bb Mon Sep 17 00:00:00 2001 From: godotg Date: Sat, 2 Dec 2023 23:13:42 +0800 Subject: [PATCH] perf[protobuf]: generate pojo in protobuf --- .../serializer/protobuf/wire/Comment.java | 30 +-- .../protobuf/wire/parser/Proto.java | 2 +- .../protobuf/wire/parser/ProtoParser.java | 227 ++++++++---------- 3 files changed, 105 insertions(+), 154 deletions(-) diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/protobuf/wire/Comment.java b/protocol/src/main/java/com/zfoo/protocol/serializer/protobuf/wire/Comment.java index 84c98e0e..c7ac8d68 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/protobuf/wire/Comment.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/protobuf/wire/Comment.java @@ -21,7 +21,6 @@ import java.util.List; */ public class Comment { - public enum CommentType { /** * 以"//"开头的注释类型 @@ -37,10 +36,6 @@ public class Comment { DOCUMENT } - /** - * 注释内容文本行列表 - */ - private List lines; /** * 注释的类型 */ @@ -49,26 +44,21 @@ public class Comment { /** * 注释内容文本行列表 */ + private List lines = new ArrayList<>(); + + public static Comment valueOf(CommentType type, List lines) { + var comment = new Comment(); + comment.type = type; + comment.lines.addAll(lines); + return comment; + } + public List getLines() { - if (lines == null) { - lines = new ArrayList<>(); - } return lines; } - public void setLines(List lines) { - if (lines instanceof ArrayList) { - this.lines = lines; - } else { - getLines(); - this.lines.addAll(lines); - } - + this.lines = lines; } - - /** - * 注释的类型 - */ public CommentType getType() { return type; } diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/protobuf/wire/parser/Proto.java b/protocol/src/main/java/com/zfoo/protocol/serializer/protobuf/wire/parser/Proto.java index abcecddc..fcb85b07 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/protobuf/wire/parser/Proto.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/protobuf/wire/parser/Proto.java @@ -34,7 +34,7 @@ public class Proto { */ private List