From 435acc4fb2ac119106eea50f97d7737cef8442fa Mon Sep 17 00:00:00 2001 From: RedKale <22250530@qq.com> Date: Wed, 17 Feb 2016 11:06:23 +0800 Subject: [PATCH] --- src/org/redkale/util/ResourceFactory.java | 49 ++++------------------- 1 file changed, 8 insertions(+), 41 deletions(-) diff --git a/src/org/redkale/util/ResourceFactory.java b/src/org/redkale/util/ResourceFactory.java index 42decbd86..5aab758ef 100644 --- a/src/org/redkale/util/ResourceFactory.java +++ b/src/org/redkale/util/ResourceFactory.java @@ -34,9 +34,7 @@ public final class ResourceFactory { private final ConcurrentHashMap loadermap = new ConcurrentHashMap(); - private final ConcurrentHashMap, ConcurrentHashMap> store = new ConcurrentHashMap(); - - private final ConcurrentHashMap> gencstore = new ConcurrentHashMap(); + private final ConcurrentHashMap> store = new ConcurrentHashMap(); private ResourceFactory(ResourceFactory parent) { this.parent = parent; @@ -52,7 +50,6 @@ public final class ResourceFactory { public void release() { this.store.clear(); - this.gencstore.clear(); } public A register(final Class clazz, final A rs) { @@ -156,35 +153,16 @@ public final class ResourceFactory { return register(true, name, clazz, rs); } - public A register(final boolean autoSync, final String name, final Class clazz, final A rs) { - ConcurrentHashMap map = this.store.get(clazz); - if (map == null) { - ConcurrentHashMap sub = new ConcurrentHashMap(); - sub.put(name, new ResourceEntry(rs)); - store.put(clazz, sub); - return null; - } else { - ResourceEntry re = map.get(name); - if (re == null) { - map.put(name, new ResourceEntry(rs)); - } else { - map.put(name, new ResourceEntry(rs, re.elements, autoSync)); - } - return re == null ? null : (A) re.value; - } - } - public A register(final String name, final Type clazz, final A rs) { return register(true, name, clazz, rs); } public A register(final boolean autoSync, final String name, final Type clazz, final A rs) { - if (clazz instanceof Class) return register(autoSync, name, (Class) clazz, rs); - ConcurrentHashMap map = this.gencstore.get(clazz); + ConcurrentHashMap map = this.store.get(clazz); if (map == null) { ConcurrentHashMap sub = new ConcurrentHashMap(); sub.put(name, new ResourceEntry(rs)); - gencstore.put(clazz, sub); + store.put(clazz, sub); return null; } else { ResourceEntry re = map.get(name); @@ -207,7 +185,7 @@ public final class ResourceFactory { } private ResourceEntry findEntry(String name, Type clazz) { - Map map = this.gencstore.get(clazz); + Map map = this.store.get(clazz); if (map != null) { ResourceEntry re = map.get(name); if (re != null) return re; @@ -220,24 +198,12 @@ public final class ResourceFactory { return query(new ArrayList(), clazz); } - private List query(final List list, Class clazz) { - Map map = this.store.get(clazz); - if (map != null) { - for (ResourceEntry re : map.values()) { - if (re.value != null) list.add((A) re.value); - } - } - if (parent != null) query(list, clazz); - return list; - } - public List query(Type clazz) { return query(new ArrayList(), clazz); } private List query(final List list, Type clazz) { - if (clazz instanceof Class) return query(list, (Class) clazz); - Map map = this.gencstore.get(clazz); + Map map = this.store.get(clazz); if (map != null) { for (ResourceEntry re : map.values()) { if (re.value != null) list.add((A) re.value); @@ -265,8 +231,9 @@ public final class ResourceFactory { public A findChild(final String name, final Class clazz) { A rs = find(name, clazz); if (rs != null) return rs; - for (Map.Entry, ConcurrentHashMap> en : this.store.entrySet()) { //不用forEach为兼容JDK 6 - if (!clazz.isAssignableFrom(en.getKey())) continue; + for (Map.Entry> en : this.store.entrySet()) { //不用forEach为兼容JDK 6 + if (!(en.getKey() instanceof Class)) continue; + if (!clazz.isAssignableFrom((Class) en.getKey())) continue; ResourceEntry v = en.getValue().get(name); if (v != null) return (A) v.value; }