From cf33697abe73fb6c93e70d264084231486fd1c0d Mon Sep 17 00:00:00 2001 From: godotg Date: Tue, 19 Sep 2023 20:43:48 +0800 Subject: [PATCH] perf[storage]: perfect generic methods --- .../java/com/zfoo/storage/StorageContext.java | 8 +++--- .../zfoo/storage/manager/StorageManager.java | 25 ++++++------------- .../zfoo/storage/manager/StorageObject.java | 15 ++++------- .../java/com/zfoo/storage/model/IStorage.java | 4 +-- .../com/zfoo/storage/util/function/Func.java | 14 ----------- .../com/zfoo/storage/util/function/Func0.java | 13 ---------- .../com/zfoo/storage/util/function/Func1.java | 14 ----------- 7 files changed, 18 insertions(+), 75 deletions(-) diff --git a/storage/src/main/java/com/zfoo/storage/StorageContext.java b/storage/src/main/java/com/zfoo/storage/StorageContext.java index 0855610f..da5bfc14 100644 --- a/storage/src/main/java/com/zfoo/storage/StorageContext.java +++ b/storage/src/main/java/com/zfoo/storage/StorageContext.java @@ -60,12 +60,12 @@ public class StorageContext implements ApplicationListener List getIndexes(Class clazz, Func1 function, K keyId) { - return instance.storageManager.getStorage(clazz).getIndexes(function, keyId); + public static List getIndexes(Class clazz, Func1 function, Index index) { + return instance.storageManager.getStorage(clazz).getIndexes(function, index); } - public static V getUniqueIndex(Class clazz, Func1 func, K keyId) { - return instance.storageManager.getStorage(clazz).getUniqueIndex(func, keyId); + public static V getUniqueIndex(Class clazz, Func1 func, INDEX uindex) { + return instance.storageManager.getStorage(clazz).getUniqueIndex(func, uindex); } @Override diff --git a/storage/src/main/java/com/zfoo/storage/manager/StorageManager.java b/storage/src/main/java/com/zfoo/storage/manager/StorageManager.java index 1ed45794..fbb19cce 100644 --- a/storage/src/main/java/com/zfoo/storage/manager/StorageManager.java +++ b/storage/src/main/java/com/zfoo/storage/manager/StorageManager.java @@ -16,12 +16,7 @@ package com.zfoo.storage.manager; import com.zfoo.protocol.collection.CollectionUtils; import com.zfoo.protocol.exception.ExceptionUtils; import com.zfoo.protocol.exception.RunException; -import com.zfoo.protocol.util.ClassUtils; -import com.zfoo.protocol.util.FieldUtils; -import com.zfoo.protocol.util.FileUtils; -import com.zfoo.protocol.util.GraalVmUtils; -import com.zfoo.protocol.util.ReflectionUtils; -import com.zfoo.protocol.util.StringUtils; +import com.zfoo.protocol.util.*; import com.zfoo.storage.StorageContext; import com.zfoo.storage.anno.GraalvmNativeStorage; import com.zfoo.storage.anno.Id; @@ -48,13 +43,7 @@ import java.lang.reflect.Field; import java.lang.reflect.Modifier; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; +import java.util.*; import java.util.stream.Collectors; /** @@ -207,14 +196,14 @@ public class StorageManager implements IStorageManager { return (List) storage.getAll(); } - public List getIndexes(Class clazz, Func1 func, K indexId) { + public List getIndexes(Class clazz, Func1 func, INDEX index) { var storage = getStorage(clazz); - return storage.getIndexes(func, indexId); + return storage.getIndexes(func, index); } - public T get(Class clazz, UQ keyId) { - IStorage storage = getStorage(clazz); - return storage.get(keyId); + public T get(Class clazz, K key) { + var storage = getStorage(clazz); + return storage.get(key); } @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 e8dc15bb..551117f4 100644 --- a/storage/src/main/java/com/zfoo/storage/manager/StorageObject.java +++ b/storage/src/main/java/com/zfoo/storage/manager/StorageObject.java @@ -26,12 +26,7 @@ import com.zfoo.storage.util.function.Func1; import org.springframework.lang.Nullable; import java.io.InputStream; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * @author godotg @@ -158,11 +153,11 @@ public class StorageObject implements IStorage { } @Override - public List getIndexes(Func1 func, INDEX key) { + public List getIndexes(Func1 func, INDEX index) { String indexName = LambdaUtils.getFieldName(func); var indexValues = indexMap.get(indexName); AssertionUtils.notNull(indexValues, "The index of [indexName:{}] does not exist in the static resource [resource:{}]", indexName, clazz.getSimpleName()); - var values = indexValues.get(key); + var values = indexValues.get(index); if (CollectionUtils.isEmpty(values)) { return Collections.emptyList(); } @@ -171,11 +166,11 @@ public class StorageObject implements IStorage { @Nullable @Override - public V getUniqueIndex(Func1 func, UINDEX key) { + public V getUniqueIndex(Func1 func, INDEX index) { String uniqueIndexName = LambdaUtils.getFieldName(func); var indexValueMap = uniqueIndexMap.get(uniqueIndexName); AssertionUtils.notNull(indexValueMap, "There is no a unique index for [uniqueIndexName:{}] in the static resource [resource:{}]", uniqueIndexName, clazz.getSimpleName()); - var value = indexValueMap.get(key); + var value = indexValueMap.get(index); return value; } diff --git a/storage/src/main/java/com/zfoo/storage/model/IStorage.java b/storage/src/main/java/com/zfoo/storage/model/IStorage.java index 3d5c2f69..d86ab497 100644 --- a/storage/src/main/java/com/zfoo/storage/model/IStorage.java +++ b/storage/src/main/java/com/zfoo/storage/model/IStorage.java @@ -50,10 +50,10 @@ public interface IStorage { IdDef getIdDef(); - List getIndexes(Func1 function, INDEX key); + List getIndexes(Func1 function, INDEX index); @Nullable - V getUniqueIndex(Func1 function, UINDEX key); + V getUniqueIndex(Func1 function, INDEX uindex); int size(); } diff --git a/storage/src/main/java/com/zfoo/storage/util/function/Func.java b/storage/src/main/java/com/zfoo/storage/util/function/Func.java index 7a8af7be..73d63738 100644 --- a/storage/src/main/java/com/zfoo/storage/util/function/Func.java +++ b/storage/src/main/java/com/zfoo/storage/util/function/Func.java @@ -26,18 +26,4 @@ public interface Func extends Serializable { @SuppressWarnings("unchecked") R call(P... parameters) throws Exception; - /** - * 执行函数,异常包装为RuntimeException - * - * @param parameters 参数列表 - * @return 函数执行结果 - */ - @SuppressWarnings("unchecked") - default R callWithRuntimeException(P... parameters){ - try { - return call(parameters); - } catch (Exception e) { - throw new RuntimeException(e); - } - } } diff --git a/storage/src/main/java/com/zfoo/storage/util/function/Func0.java b/storage/src/main/java/com/zfoo/storage/util/function/Func0.java index dad2f4d9..58b76f4f 100644 --- a/storage/src/main/java/com/zfoo/storage/util/function/Func0.java +++ b/storage/src/main/java/com/zfoo/storage/util/function/Func0.java @@ -23,17 +23,4 @@ public interface Func0 extends Serializable { */ R call() throws Exception; - /** - * 执行函数,异常包装为RuntimeException - * - * @return 函数执行结果 - * @since 5.3.6 - */ - default R callWithRuntimeException(){ - try { - return call(); - } catch (Exception e) { - throw new RuntimeException(e); - } - } } diff --git a/storage/src/main/java/com/zfoo/storage/util/function/Func1.java b/storage/src/main/java/com/zfoo/storage/util/function/Func1.java index bd38f112..d71a4a3a 100644 --- a/storage/src/main/java/com/zfoo/storage/util/function/Func1.java +++ b/storage/src/main/java/com/zfoo/storage/util/function/Func1.java @@ -26,18 +26,4 @@ public interface Func1 extends Serializable { */ R call(P parameter) throws Exception; - /** - * 执行函数,异常包装为RuntimeException - * - * @param parameter 参数 - * @return 函数执行结果 - * @since 5.3.6 - */ - default R callWithRuntimeException(P parameter){ - try { - return call(parameter); - } catch (Exception e) { - throw new RuntimeException(e); - } - } }