use of jakarta.persistence.EntityListeners in project hibernate-orm by hibernate.
the class JPAXMLOverriddenAnnotationReader method getEntityListeners.
private EntityListeners getEntityListeners(ManagedType root, XMLContext.Default defaults) {
JaxbEntityListeners element = root instanceof EntityOrMappedSuperclass ? ((EntityOrMappedSuperclass) root).getEntityListeners() : null;
if (element != null) {
List<Class> entityListenerClasses = new ArrayList<>();
for (JaxbEntityListener subelement : element.getEntityListener()) {
String className = subelement.getClazz();
try {
entityListenerClasses.add(classLoaderAccess.classForName(XMLContext.buildSafeClassName(className, defaults)));
} catch (ClassLoadingException e) {
throw new AnnotationException("Unable to find class: " + className, e);
}
}
AnnotationDescriptor ad = new AnnotationDescriptor(EntityListeners.class);
ad.setValue("value", entityListenerClasses.toArray(new Class[entityListenerClasses.size()]));
return AnnotationFactory.create(ad);
} else if (defaults.canUseJavaAnnotations()) {
return getPhysicalAnnotation(EntityListeners.class);
} else {
return null;
}
}
use of jakarta.persistence.EntityListeners in project hibernate-orm by hibernate.
the class CallbackDefinitionResolverLegacyImpl method getListeners.
private static void getListeners(XClass currentClazz, List<Class<?>> orderedListeners) {
EntityListeners entityListeners = currentClazz.getAnnotation(EntityListeners.class);
if (entityListeners != null) {
Class<?>[] classes = entityListeners.value();
int size = classes.length;
for (int index = size - 1; index >= 0; index--) {
orderedListeners.add(classes[index]);
}
}
if (useAnnotationAnnotatedByListener) {
Annotation[] annotations = currentClazz.getAnnotations();
for (Annotation annot : annotations) {
entityListeners = annot.getClass().getAnnotation(EntityListeners.class);
if (entityListeners != null) {
Class<?>[] classes = entityListeners.value();
int size = classes.length;
for (int index = size - 1; index >= 0; index--) {
orderedListeners.add(classes[index]);
}
}
}
}
}
Aggregations