mirror of
https://github.com/tiennm99/zfoo.git
synced 2026-10-13 04:15:22 +00:00
del[protocol]: 删除checkSubProtocol方法
This commit is contained in:
1 parent
27abc72cd8
commit
6b9ae203a1
3 files changed
+20
-24
No files matched your search
@@ -28,7 +28,6 @@ import com.zfoo.protocol.IPacket;
|
||||
import com.zfoo.protocol.ProtocolManager;
|
||||
import com.zfoo.protocol.collection.ArrayUtils;
|
||||
import com.zfoo.protocol.exception.RunException;
|
||||
import com.zfoo.protocol.registration.ProtocolAnalysis;
|
||||
import com.zfoo.protocol.util.AssertionUtils;
|
||||
import com.zfoo.protocol.util.ReflectionUtils;
|
||||
import com.zfoo.protocol.util.StringUtils;
|
||||
@@ -120,8 +119,7 @@ public abstract class PacketBus {
|
||||
}
|
||||
|
||||
try {
|
||||
var protocolId = ProtocolAnalysis.getProtocolIdAndCheckClass(packetClazz);
|
||||
|
||||
var protocolId = ProtocolManager.protocolId(packetClazz);
|
||||
// 将receiver注册到IProtocolRegistration
|
||||
var protocolRegistration = ProtocolManager.getProtocol(protocolId);
|
||||
AssertionUtils.notNull(protocolRegistration, "协议类[class:{}][protocolId:{}]没有注册", packetClazz.getSimpleName(), protocolId);
|
||||
|
||||
@@ -160,13 +160,13 @@ public class ProtocolAnalysis {
|
||||
for (var protocolDefinition : moduleDefinition.getProtocols()) {
|
||||
var location = protocolDefinition.getLocation();
|
||||
var clazz = Class.forName(location);
|
||||
var id = getProtocolIdAndCheckClass(clazz);
|
||||
var protocolId = ProtocolManager.protocolId(clazz);
|
||||
var registration = parseProtocolRegistration(clazz, module);
|
||||
if (protocolDefinition.isEnhance()) {
|
||||
enhanceList.add(registration);
|
||||
}
|
||||
// 注册协议
|
||||
protocols[id] = registration;
|
||||
protocols[protocolId] = registration;
|
||||
}
|
||||
}
|
||||
enhance(generateOperation, enhanceList);
|
||||
@@ -281,7 +281,7 @@ public class ProtocolAnalysis {
|
||||
}
|
||||
|
||||
private static ProtocolRegistration parseProtocolRegistration(Class<?> clazz, ProtocolModule module) {
|
||||
var protocolId = getProtocolIdAndCheckClass(clazz);
|
||||
var protocolId = ProtocolManager.protocolId(clazz);
|
||||
// 对象需要被序列化的属性
|
||||
var fields = customFieldOrder(clazz);
|
||||
|
||||
@@ -382,10 +382,13 @@ public class ProtocolAnalysis {
|
||||
return MapField.valueOf(keyRegistration, valueRegistration, type);
|
||||
} else {
|
||||
// 是一个协议引用变量
|
||||
var referenceProtocolId = getProtocolIdAndCheckClass(field.getType());
|
||||
checkSubProtocol(clazz, referenceProtocolId, field.getType());
|
||||
subProtocolIdMap.computeIfAbsent(getProtocolIdAndCheckClass(clazz), it -> new HashSet<>()).add(referenceProtocolId);
|
||||
return ObjectProtocolField.valueOf(referenceProtocolId);
|
||||
if (!protocolIdMap.containsKey(field.getType())) {
|
||||
throw new RunException("协议[{}]的子协议[{}]没有注册", clazz.getCanonicalName(), field.getType().getCanonicalName());
|
||||
}
|
||||
var protocolId = ProtocolManager.protocolId(clazz);
|
||||
var subProtocolId = ProtocolManager.protocolId(field.getType());
|
||||
subProtocolIdMap.computeIfAbsent(protocolId, it -> new HashSet<>()).add(subProtocolId);
|
||||
return ObjectProtocolField.valueOf(subProtocolId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -420,10 +423,13 @@ public class ProtocolAnalysis {
|
||||
throw new RunException("不支持数组和集合联合使用[type:{}]类型", type);
|
||||
} else {
|
||||
// 是一个协议引用变量
|
||||
var referenceProtocolId = getProtocolIdAndCheckClass(clazz);
|
||||
checkSubProtocol(currentProtocolClass, referenceProtocolId, clazz);
|
||||
subProtocolIdMap.computeIfAbsent(getProtocolIdAndCheckClass(currentProtocolClass), it -> new HashSet<>()).add(referenceProtocolId);
|
||||
return ObjectProtocolField.valueOf(referenceProtocolId);
|
||||
if (!protocolIdMap.containsKey(clazz)) {
|
||||
throw new RunException("协议[{}]的子协议[{}]没有注册", currentProtocolClass.getCanonicalName(), clazz.getCanonicalName());
|
||||
}
|
||||
var protocolId = ProtocolManager.protocolId(currentProtocolClass);
|
||||
var subProtocolId = ProtocolManager.protocolId(clazz);
|
||||
subProtocolIdMap.computeIfAbsent(protocolId, it -> new HashSet<>()).add(subProtocolId);
|
||||
return ObjectProtocolField.valueOf(subProtocolId);
|
||||
}
|
||||
}
|
||||
throw new RunException("[type:{}]类型不正确", type);
|
||||
@@ -523,13 +529,6 @@ public class ProtocolAnalysis {
|
||||
return protocolId;
|
||||
}
|
||||
|
||||
private static void checkSubProtocol(Class<?> clazz, short id, Class<?> subClass) {
|
||||
var registerProtocolClass = protocolClassMap.get(id);
|
||||
if (registerProtocolClass == null || !registerProtocolClass.equals(subClass)) {
|
||||
throw new RunException("协议[{}]的子协议[{}][{}]没有注册", clazz.getCanonicalName(), id, subClass.getCanonicalName());
|
||||
}
|
||||
}
|
||||
|
||||
private static void checkAllModules() {
|
||||
// 模块id不能重复
|
||||
var moduleIdSet = new HashSet<Byte>();
|
||||
|
||||
+2
-3
@@ -21,7 +21,6 @@ import com.zfoo.protocol.generate.GenerateOperation;
|
||||
import com.zfoo.protocol.generate.GenerateProtocolNote;
|
||||
import com.zfoo.protocol.model.Pair;
|
||||
import com.zfoo.protocol.registration.IProtocolRegistration;
|
||||
import com.zfoo.protocol.registration.ProtocolAnalysis;
|
||||
import com.zfoo.protocol.registration.ProtocolRegistration;
|
||||
import com.zfoo.protocol.registration.field.*;
|
||||
import com.zfoo.protocol.serializer.CodeLanguage;
|
||||
@@ -124,7 +123,7 @@ public abstract class GenerateProtobufUtils {
|
||||
for (var protos : xmlProtobuf.getProtos()) {
|
||||
for (var protocol : protos.getProtocols()) {
|
||||
var protocolClass = Class.forName(protocol.getLocation());
|
||||
var protocolId = ProtocolAnalysis.getProtocolIdAndCheckClass(protocolClass);
|
||||
var protocolId = ProtocolManager.protocolId(protocolClass);
|
||||
var protocolRegistration = ProtocolManager.getProtocol(protocolId);
|
||||
|
||||
if (allGenerateProtocols.contains(protocolRegistration)) {
|
||||
@@ -191,7 +190,7 @@ public abstract class GenerateProtobufUtils {
|
||||
|
||||
for (var protocol : protos.getProtocols()) {
|
||||
var protocolClass = Class.forName(protocol.getLocation());
|
||||
var protocolId = ProtocolAnalysis.getProtocolIdAndCheckClass(protocolClass);
|
||||
var protocolId = ProtocolManager.protocolId(protocolClass);
|
||||
var protocolRegistration = ProtocolManager.getProtocol(protocolId);
|
||||
|
||||
builder.append("// id = ").append(protocolId).append(LS);
|
||||
|
||||
Reference in new issue
Block a user