From 41bfac323e04092b053164541c8be48511c84fae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=87=8C=E6=98=9F?= Date: Mon, 18 Sep 2023 17:45:18 +0800 Subject: [PATCH] fix[storage]: Fix record class generation protocol error. --- .../protocol/registration/ProtocolAnalysis.java | 13 +++++++++---- .../java/com/zfoo/storage/manager/StorageInt.java | 2 +- .../java/com/zfoo/storage/manager/StorageLong.java | 2 +- .../com/zfoo/storage/manager/StorageObject.java | 2 +- 4 files changed, 12 insertions(+), 7 deletions(-) diff --git a/protocol/src/main/java/com/zfoo/protocol/registration/ProtocolAnalysis.java b/protocol/src/main/java/com/zfoo/protocol/registration/ProtocolAnalysis.java index 7428e31a..068b3b3b 100644 --- a/protocol/src/main/java/com/zfoo/protocol/registration/ProtocolAnalysis.java +++ b/protocol/src/main/java/com/zfoo/protocol/registration/ProtocolAnalysis.java @@ -429,7 +429,8 @@ public class ProtocolAnalysis { try { var registrationList = new ArrayList(); List fields = fieldsEntry.getKey(); - if (clazz.isRecord()) { + boolean isRecord = clazz.isRecord(); + if (isRecord) { fields = fieldsEntry.getValue(); } for (var field : fields) { @@ -437,7 +438,7 @@ public class ProtocolAnalysis { } Constructor constructor; - if (clazz.isRecord()) { + if (isRecord) { constructor = ReflectionUtils.getConstructor(clazz, fields.stream().map(p -> p.getType()).toList().toArray(new Class[]{})); } else { constructor = clazz.getDeclaredConstructor(); @@ -447,8 +448,12 @@ public class ProtocolAnalysis { var protocol = new ProtocolRegistration(); protocol.setId(protocolId); protocol.setConstructor(constructor); - protocol.setFields(ArrayUtils.listToArray(fieldsEntry.getKey(), Field.class)); - protocol.setOriginalFields(ArrayUtils.listToArray(fieldsEntry.getValue(), Field.class)); + if (isRecord) { + protocol.setFields(ArrayUtils.listToArray(fieldsEntry.getValue(), Field.class)); + protocol.setOriginalFields(ArrayUtils.listToArray(fieldsEntry.getValue(), Field.class)); + } else { + protocol.setFields(ArrayUtils.listToArray(fieldsEntry.getKey(), Field.class)); + } protocol.setFieldRegistrations(ArrayUtils.listToArray(registrationList, IFieldRegistration.class)); protocol.setModule(module.getId()); return protocol; diff --git a/storage/src/main/java/com/zfoo/storage/manager/StorageInt.java b/storage/src/main/java/com/zfoo/storage/manager/StorageInt.java index e4f217a0..da50c7a0 100644 --- a/storage/src/main/java/com/zfoo/storage/manager/StorageInt.java +++ b/storage/src/main/java/com/zfoo/storage/manager/StorageInt.java @@ -86,7 +86,7 @@ public class StorageInt extends StorageObject { @Override public Collection getAll() { - return dataMap.values().stream().collect(Collectors.toUnmodifiableList()); + return dataMap.values().stream().toList(); } @Override diff --git a/storage/src/main/java/com/zfoo/storage/manager/StorageLong.java b/storage/src/main/java/com/zfoo/storage/manager/StorageLong.java index 57af2ea8..a1b445a5 100644 --- a/storage/src/main/java/com/zfoo/storage/manager/StorageLong.java +++ b/storage/src/main/java/com/zfoo/storage/manager/StorageLong.java @@ -86,7 +86,7 @@ public class StorageLong extends StorageObject { @Override public Collection getAll() { - return dataMap.values().stream().collect(Collectors.toUnmodifiableList()); + return dataMap.values().stream().toList(); } @Override diff --git a/storage/src/main/java/com/zfoo/storage/manager/StorageObject.java b/storage/src/main/java/com/zfoo/storage/manager/StorageObject.java index b28b03e4..eee67f8c 100644 --- a/storage/src/main/java/com/zfoo/storage/manager/StorageObject.java +++ b/storage/src/main/java/com/zfoo/storage/manager/StorageObject.java @@ -145,7 +145,7 @@ public class StorageObject implements IStorage { @Override public List getList() { Collection all = getAll(); - return all.stream().collect(Collectors.toUnmodifiableList()); + return all.stream().toList(); } @Override