|
|
|
|
@ -19,7 +19,6 @@ import java.lang.reflect.Method;
@@ -19,7 +19,6 @@ import java.lang.reflect.Method;
|
|
|
|
|
import java.lang.reflect.Modifier; |
|
|
|
|
import java.util.ArrayList; |
|
|
|
|
import java.util.Collection; |
|
|
|
|
import java.util.Collections; |
|
|
|
|
import java.util.LinkedHashSet; |
|
|
|
|
import java.util.List; |
|
|
|
|
import java.util.Map; |
|
|
|
|
@ -188,7 +187,7 @@ class EntityCallbackDiscoverer {
@@ -188,7 +187,7 @@ class EntityCallbackDiscoverer {
|
|
|
|
|
private Collection<EntityCallback<?>> retrieveEntityCallbacks(ResolvableType entityType, ResolvableType callbackType, |
|
|
|
|
@Nullable CallbackRetriever retriever) { |
|
|
|
|
|
|
|
|
|
List<EntityCallback<?>> allCallbacks = null; |
|
|
|
|
List<EntityCallback<?>> allCallbacks = new ArrayList<>(); |
|
|
|
|
Set<EntityCallback<?>> callbacks; |
|
|
|
|
Set<String> callbackBeans; |
|
|
|
|
|
|
|
|
|
@ -199,9 +198,8 @@ class EntityCallbackDiscoverer {
@@ -199,9 +198,8 @@ class EntityCallbackDiscoverer {
|
|
|
|
|
|
|
|
|
|
for (EntityCallback<?> callback : callbacks) { |
|
|
|
|
if (supportsEvent(callback, entityType, callbackType)) { |
|
|
|
|
|
|
|
|
|
if (allCallbacks == null) { |
|
|
|
|
allCallbacks = new ArrayList<>(); |
|
|
|
|
if (retriever != null) { |
|
|
|
|
retriever.getEntityCallbacks().add(callback); |
|
|
|
|
} |
|
|
|
|
allCallbacks.add(callback); |
|
|
|
|
} |
|
|
|
|
@ -214,9 +212,7 @@ class EntityCallbackDiscoverer {
@@ -214,9 +212,7 @@ class EntityCallbackDiscoverer {
|
|
|
|
|
Class<?> callbackImplType = beanFactory.getType(callbackBeanName); |
|
|
|
|
if (callbackImplType == null || supportsEvent(callbackImplType, entityType)) { |
|
|
|
|
EntityCallback<?> callback = beanFactory.getBean(callbackBeanName, EntityCallback.class); |
|
|
|
|
|
|
|
|
|
if ((allCallbacks == null || !allCallbacks.contains(callback)) |
|
|
|
|
&& supportsEvent(callback, entityType, callbackType)) { |
|
|
|
|
if (!allCallbacks.contains(callback) && supportsEvent(callback, entityType, callbackType)) { |
|
|
|
|
if (retriever != null) { |
|
|
|
|
if (beanFactory.isSingleton(callbackBeanName)) { |
|
|
|
|
retriever.entityCallbacks.add(callback); |
|
|
|
|
@ -224,10 +220,6 @@ class EntityCallbackDiscoverer {
@@ -224,10 +220,6 @@ class EntityCallbackDiscoverer {
|
|
|
|
|
retriever.entityCallbackBeans.add(callbackBeanName); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (allCallbacks == null) { |
|
|
|
|
allCallbacks = new ArrayList<>(); |
|
|
|
|
} |
|
|
|
|
allCallbacks.add(callback); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
@ -238,10 +230,6 @@ class EntityCallbackDiscoverer {
@@ -238,10 +230,6 @@ class EntityCallbackDiscoverer {
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (allCallbacks == null) { |
|
|
|
|
return Collections.emptyList(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
AnnotationAwareOrderComparator.sort(allCallbacks); |
|
|
|
|
|
|
|
|
|
if (retriever != null && retriever.entityCallbackBeans.isEmpty()) { |
|
|
|
|
@ -369,8 +357,6 @@ class EntityCallbackDiscoverer {
@@ -369,8 +357,6 @@ class EntityCallbackDiscoverer {
|
|
|
|
|
|
|
|
|
|
private final Set<EntityCallback<?>> entityCallbacks = new LinkedHashSet<>(); |
|
|
|
|
|
|
|
|
|
private final List<EntityCallback<?>> cachedEntityCallbacks = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
private final Set<String> entityCallbackBeans = new LinkedHashSet<>(); |
|
|
|
|
|
|
|
|
|
private final boolean preFiltered; |
|
|
|
|
@ -381,22 +367,6 @@ class EntityCallbackDiscoverer {
@@ -381,22 +367,6 @@ class EntityCallbackDiscoverer {
|
|
|
|
|
|
|
|
|
|
Collection<EntityCallback<?>> getEntityCallbacks() { |
|
|
|
|
|
|
|
|
|
if (this.entityCallbackBeans.isEmpty()) { |
|
|
|
|
|
|
|
|
|
if (cachedEntityCallbacks.size() != entityCallbacks.size()) { |
|
|
|
|
|
|
|
|
|
List<EntityCallback<?>> entityCallbacks = new ArrayList<>(this.entityCallbacks); |
|
|
|
|
AnnotationAwareOrderComparator.sort(entityCallbacks); |
|
|
|
|
|
|
|
|
|
synchronized (cachedEntityCallbacks) { |
|
|
|
|
cachedEntityCallbacks.clear(); |
|
|
|
|
cachedEntityCallbacks.addAll(entityCallbacks); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return cachedEntityCallbacks; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
List<EntityCallback<?>> allCallbacks = new ArrayList<>( |
|
|
|
|
this.entityCallbacks.size() + this.entityCallbackBeans.size()); |
|
|
|
|
allCallbacks.addAll(this.entityCallbacks); |
|
|
|
|
|