From bdc49b00c2033ba53985e0d3906a6d4277571bc0 Mon Sep 17 00:00:00 2001 From: godotg Date: Sat, 2 Dec 2023 22:44:29 +0800 Subject: [PATCH] del[protobuf]: not support proto enum in protobuf --- .../protobuf/builder/JavaBuilder.java | 85 -------- .../protobuf/codegen/IfaceGenerator.java | 1 - .../serializer/protobuf/wire/ProtoEnum.java | 196 ------------------ .../protobuf/wire/parser/ProtoParser.java | 5 +- 4 files changed, 1 insertion(+), 286 deletions(-) delete mode 100644 protocol/src/main/java/com/zfoo/protocol/serializer/protobuf/wire/ProtoEnum.java diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/protobuf/builder/JavaBuilder.java b/protocol/src/main/java/com/zfoo/protocol/serializer/protobuf/builder/JavaBuilder.java index 80cbc3f3..756fcf62 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/protobuf/builder/JavaBuilder.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/protobuf/builder/JavaBuilder.java @@ -18,7 +18,6 @@ import com.zfoo.protocol.serializer.protobuf.PbBuildOption; import com.zfoo.protocol.serializer.protobuf.internal.CodeBuilder; import com.zfoo.protocol.serializer.protobuf.wire.*; import com.zfoo.protocol.serializer.protobuf.wire.Field.Type; -import com.zfoo.protocol.serializer.protobuf.wire.ProtoEnum.EnumEntry; import com.zfoo.protocol.serializer.protobuf.wire.WireFormat.JavaType; import com.zfoo.protocol.serializer.protobuf.wire.parser.Proto; import com.zfoo.protocol.util.StringUtils; @@ -276,90 +275,6 @@ public class JavaBuilder { .forEach(e -> cb.c(buildMessage(proto, e, level + 1, defineMsgs, nestedOps, protos))); } - private void nestMessageEnum(CodeBuilder cb, List enums, int indent) { - if (enums == null || enums.isEmpty()) { - return; - } - cb.ln(); - PbBuildOption nestedOps = new PbBuildOption(); - nestedOps.setIsNested(true); - enums.stream() - .sorted(Comparator.comparing(ProtoEnum::getName)) - .forEach(e -> cb.c(buildEnum(e, indent + 1, nestedOps)).ln(2)); - } - private String getFillSpaces(int count) { - if (count <= 0) { - return StringUtils.EMPTY; - } - StringBuilder sb = new StringBuilder(); - for (int i = 0; i < count; i++) { - sb.append(" "); - } - return sb.toString(); - } - - public String buildEnum(ProtoEnum protoEnum, final int indent, PbBuildOption buildOps) { - int level = (indent < 1) ? 1 : indent; - CodeBuilder cb = new CodeBuilder(); - - cb.t(level - 1).e("public enum $name$ {").arg(protoEnum.getName()).ln(); - List entries = protoEnum.getEntries(); - if (entries != null && !entries.isEmpty()) { - Optional maxLen = entries.stream() - .max(Comparator.comparingInt(e -> e.getLabel().length())); - int len = maxLen.isPresent() ? maxLen.get().getLabel().length() : 1; - - List es = new ArrayList<>(); - entries.stream() - .sorted(Comparator.comparingInt(EnumEntry::getValue)) - .forEach(es::add); - CodeBuilder vsb = new CodeBuilder(); - CodeBuilder psb = new CodeBuilder(); - for (int i = 0; i < es.size(); i++) { - EnumEntry o = es.get(i); - String sep = (i != es.size() - 1) ? "," : ";"; - String spaces = getFillSpaces(len - o.getLabel().length()); - String[] args = new String[]{o.getLabel(), spaces, - String.valueOf(o.getValue()), sep}; - cb.t(level).e("$label$$spaces$($value$)$;$").arg(args).ln(); - - psb.t(level).e("public static final int $lable$_VALUE = $value$;") - .arg(o.getLabel(), String.valueOf(o.getValue())).ln(); - - vsb.t(level + 2).e("case $value$:").arg(String.valueOf(o.getValue())).ln(); - vsb.t(level + 3).e("return $name$.$label$;") - .arg(protoEnum.getName(), o.getLabel()).ln(); - } - cb.ln(); - - cb.c(psb.toString()).ln(); - - cb.t(level).c("private final int value;").ln(2); - - cb.t(level).e("private $label$(int value) {").arg(protoEnum.getName()).ln(); - cb.t(level + 1).c("this.value = value;").ln(); - cb.t(level).c("}").ln(); - - cb.t(level).c("public int getValue() {").ln(); - cb.t(level + 1).c("return this.value;").ln(); - cb.t(level).c("}").ln(2); - - cb.t(level).e("public static $name$ valueOf(int value) {") - .arg(protoEnum.getName()).ln(); - cb.t(level + 1).c("switch (value) {").ln(); - cb.c(vsb.toString()); - cb.t(level + 2).c("default:").ln(); - cb.t(level + 3).e("throw new IllegalArgumentException(" - + "\"no enum value $value$ \" + value);") - .arg(protoEnum.getName()).ln(); - - cb.t(level + 1).c("}").ln(); - cb.t(level).c("}").ln(); - } - cb.t(level - 1).c("}"); - - return cb.toString(); - } } diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/protobuf/codegen/IfaceGenerator.java b/protocol/src/main/java/com/zfoo/protocol/serializer/protobuf/codegen/IfaceGenerator.java index e74149f7..7a1d0150 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/protobuf/codegen/IfaceGenerator.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/protobuf/codegen/IfaceGenerator.java @@ -17,7 +17,6 @@ import com.zfoo.protocol.collection.CollectionUtils; import com.zfoo.protocol.serializer.protobuf.PbBuildOption; import com.zfoo.protocol.serializer.protobuf.builder.JavaBuilder; import com.zfoo.protocol.serializer.protobuf.wire.Option; -import com.zfoo.protocol.serializer.protobuf.wire.ProtoEnum; import com.zfoo.protocol.serializer.protobuf.wire.ProtoMessage; import com.zfoo.protocol.serializer.protobuf.wire.parser.Proto; import com.zfoo.protocol.util.FileUtils; diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/protobuf/wire/ProtoEnum.java b/protocol/src/main/java/com/zfoo/protocol/serializer/protobuf/wire/ProtoEnum.java deleted file mode 100644 index 3e3d1f66..00000000 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/protobuf/wire/ProtoEnum.java +++ /dev/null @@ -1,196 +0,0 @@ -/* - * Copyright 2021 The edap Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed - * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and limitations under the License. - */ - -package com.zfoo.protocol.serializer.protobuf.wire; - -import java.util.List; - -/** - * protocol buffer的枚举类型的定义 - */ -public class ProtoEnum { - /** - * 枚举名称 - */ - private String name; - /** - * 枚举包含的值的定义 - */ - private List entries; - /** - * 枚举包含的选项列表 - */ - private List