throw new IllegalStateException("already injected");
}
SessionFactoryImpl sessionFactoryImpl = (SessionFactoryImpl) sessionFactory;
EventListenerRegistry registry = sessionFactoryImpl.getServiceRegistry()
.getService(EventListenerRegistry.class);
_listener = doCreateListener(sessionFactoryImpl, batchedEventProcessor);
if (_listener instanceof PostInsertEventListener) {
if (registerPostCommitListeneres) {
registry.appendListeners(EventType.POST_COMMIT_INSERT, (PostInsertEventListener) _listener);
} else {
registry.appendListeners(EventType.POST_INSERT, (PostInsertEventListener) _listener);
}
}
if (_listener instanceof PostUpdateEventListener) {
if (registerPostCommitListeneres) {
registry.appendListeners(EventType.POST_COMMIT_UPDATE, (PostUpdateEventListener) _listener);
} else {
registry.appendListeners(EventType.POST_UPDATE, (PostUpdateEventListener) _listener);
}
}
if (_listener instanceof PostDeleteEventListener) {
if (registerPostCommitListeneres) {
registry.appendListeners(EventType.POST_COMMIT_DELETE, (PostDeleteEventListener) _listener);
} else {
registry.appendListeners(EventType.POST_DELETE, (PostDeleteEventListener) _listener);
}
}
// collections
if (!registerPostCommitListeneres) {
if (_listener instanceof PostCollectionRecreateEventListener) {
registry.appendListeners(EventType.POST_COLLECTION_RECREATE,
(PostCollectionRecreateEventListener) _listener);
}
if (_listener instanceof PostCollectionRemoveEventListener) {
registry.appendListeners(EventType.POST_COLLECTION_REMOVE,
(PostCollectionRemoveEventListener) _listener);
}
if (_listener instanceof PostCollectionUpdateEventListener) {
registry.appendListeners(EventType.POST_COLLECTION_UPDATE,
(PostCollectionUpdateEventListener) _listener);
}
}
}