From 1d1b732a7497369e52bd15288604b9d11ed32cca Mon Sep 17 00:00:00 2001 From: Redkale <22250530@qq.com> Date: Sun, 28 May 2017 15:04:10 +0800 Subject: [PATCH] --- src/org/redkale/convert/ConvertFactory.java | 56 +++++++++++++++++++ src/org/redkale/source/CacheMemorySource.java | 14 ++++- src/org/redkale/source/CacheSource.java | 4 ++ 3 files changed, 72 insertions(+), 2 deletions(-) diff --git a/src/org/redkale/convert/ConvertFactory.java b/src/org/redkale/convert/ConvertFactory.java index 88350dca9..3008897a1 100644 --- a/src/org/redkale/convert/ConvertFactory.java +++ b/src/org/redkale/convert/ConvertFactory.java @@ -189,12 +189,68 @@ public abstract class ConvertFactory { } final String getEntityAlias(Class clazz) { + if (clazz == String.class) return "A"; + if (clazz == int.class) return "I"; + if (clazz == Integer.class) return "i"; + if (clazz == long.class) return "J"; + if (clazz == Long.class) return "j"; + if (clazz == byte.class) return "B"; + if (clazz == Byte.class) return "b"; + if (clazz == boolean.class) return "Z"; + if (clazz == Boolean.class) return "z"; + if (clazz == short.class) return "S"; + if (clazz == Short.class) return "s"; + if (clazz == char.class) return "C"; + if (clazz == Character.class) return "c"; + if (clazz == float.class) return "F"; + if (clazz == Float.class) return "f"; + if (clazz == double.class) return "D"; + if (clazz == Double.class) return "d"; + + if (clazz == String[].class) return "[A"; + if (clazz == int[].class) return "[I"; + if (clazz == long[].class) return "[J"; + if (clazz == byte[].class) return "[B"; + if (clazz == boolean[].class) return "[Z"; + if (clazz == short[].class) return "[S"; + if (clazz == char[].class) return "[C"; + if (clazz == float[].class) return "[F"; + if (clazz == double[].class) return "[D"; + ConvertEntity ce = (ConvertEntity) clazz.getAnnotation(ConvertEntity.class); if (ce != null && findEntityAlias(ce.value()) == null) entitys.put(ce.value(), clazz); return ce == null ? clazz.getName() : ce.value(); } final Class getEntityAlias(String name) { + if ("A".equals(name)) return String.class; + if ("I".equals(name)) return int.class; + if ("i".equals(name)) return Integer.class; + if ("J".equals(name)) return long.class; + if ("j".equals(name)) return Long.class; + if ("B".equals(name)) return byte.class; + if ("b".equals(name)) return Byte.class; + if ("Z".equals(name)) return boolean.class; + if ("z".equals(name)) return Boolean.class; + if ("S".equals(name)) return short.class; + if ("s".equals(name)) return Short.class; + if ("C".equals(name)) return char.class; + if ("c".equals(name)) return Character.class; + if ("F".equals(name)) return float.class; + if ("f".equals(name)) return Float.class; + if ("D".equals(name)) return double.class; + if ("d".equals(name)) return Double.class; + + if ("[A".equals(name)) return String[].class; + if ("[I".equals(name)) return int[].class; + if ("[J".equals(name)) return long[].class; + if ("[B".equals(name)) return byte[].class; + if ("[Z".equals(name)) return boolean[].class; + if ("[S".equals(name)) return short[].class; + if ("[C".equals(name)) return char[].class; + if ("[F".equals(name)) return float[].class; + if ("[D".equals(name)) return double[].class; + Class clazz = findEntityAlias(name); try { return clazz == null ? Class.forName(name) : clazz; diff --git a/src/org/redkale/source/CacheMemorySource.java b/src/org/redkale/source/CacheMemorySource.java index a86300877..df3efe829 100644 --- a/src/org/redkale/source/CacheMemorySource.java +++ b/src/org/redkale/source/CacheMemorySource.java @@ -436,8 +436,8 @@ public class CacheMemorySource extends } @Override - public List> queryList() { - return new ArrayList<>(container.values()); + public List queryKeys() { + return new ArrayList<>(container.keySet()); } @Override @@ -445,4 +445,14 @@ public class CacheMemorySource extends return CompletableFuture.completedFuture(new ArrayList<>(container.values())); } + @Override + public List> queryList() { + return new ArrayList<>(container.values()); + } + + @Override + public CompletableFuture> queryKeysAsync() { + return CompletableFuture.completedFuture(new ArrayList<>(container.keySet())); + } + } diff --git a/src/org/redkale/source/CacheSource.java b/src/org/redkale/source/CacheSource.java index 3d38c8efd..fed433dcb 100644 --- a/src/org/redkale/source/CacheSource.java +++ b/src/org/redkale/source/CacheSource.java @@ -57,6 +57,8 @@ public interface CacheSource { public void removeSetItem(final K key, final V value); + public List queryKeys(); + public List> queryList(); //---------------------- CompletableFuture 异步版 --------------------------------- @@ -90,6 +92,8 @@ public interface CacheSource { public CompletableFuture removeSetItemAsync(final K key, final V value); + public CompletableFuture> queryKeysAsync(); + public CompletableFuture>> queryListAsync(); default CompletableFuture isOpenAsync() {