diff --git a/hibernate-core/src/main/java/org/hibernate/event/spi/AbstractDatabaseOperationEvent.java b/hibernate-core/src/main/java/org/hibernate/event/spi/AbstractDatabaseOperationEvent.java new file mode 100644 index 000000000000..d899a327866a --- /dev/null +++ b/hibernate-core/src/main/java/org/hibernate/event/spi/AbstractDatabaseOperationEvent.java @@ -0,0 +1,79 @@ +/* + * SPDX-License-Identifier: LGPL-2.1-or-later + * Copyright Red Hat Inc. and Hibernate Authors + */ +package org.hibernate.event.spi; + +import org.hibernate.engine.spi.SessionFactoryImplementor; +import org.hibernate.persister.entity.EntityPersister; + +/** + * Abstract supertype of {@link AbstractPostDatabaseOperationEvent} + * and {@link AbstractPostDatabaseOperationEvent}. + * + * @author Gavin King + * + * @since 7 + */ +public abstract class AbstractDatabaseOperationEvent extends AbstractEvent { + + private final Object entity; + private final Object id; + private final EntityPersister persister; + + /** + * Constructs an event containing the pertinent information. + * + * @param source The session from which the event originated. + * @param entity The entity to be involved in the database operation. + * @param id The entity id to be involved in the database operation. + * @param persister The entity's persister. + */ + public AbstractDatabaseOperationEvent( + EventSource source, + Object entity, + Object id, + EntityPersister persister) { + super( source ); + this.entity = entity; + this.id = id; + this.persister = persister; + } + + /** + * Retrieves the entity involved in the database operation. + * + * @return The entity. + */ + public Object getEntity() { + return entity; + } + + /** + * The id to be used in the database operation. + * + * @return The id. + */ + public Object getId() { + return id; + } + + /** + * The persister for the entity. + * + * @return The entity persister. + */ + public EntityPersister getPersister() { + return persister; + } + + /** + * The factory which owns the persister for the entity. + * + * @return The factory + */ + @Override + public SessionFactoryImplementor getFactory() { + return persister.getFactory(); + } +} diff --git a/hibernate-core/src/main/java/org/hibernate/event/spi/AbstractPostDatabaseOperationEvent.java b/hibernate-core/src/main/java/org/hibernate/event/spi/AbstractPostDatabaseOperationEvent.java index da9b7a7a9373..2473bf1526ff 100644 --- a/hibernate-core/src/main/java/org/hibernate/event/spi/AbstractPostDatabaseOperationEvent.java +++ b/hibernate-core/src/main/java/org/hibernate/event/spi/AbstractPostDatabaseOperationEvent.java @@ -4,7 +4,6 @@ */ package org.hibernate.event.spi; -import org.hibernate.engine.spi.SessionFactoryImplementor; import org.hibernate.persister.entity.EntityPersister; /** @@ -14,11 +13,7 @@ * * @since 7 */ -public abstract class AbstractPostDatabaseOperationEvent extends AbstractEvent { - - private final Object entity; - private final Object id; - private final EntityPersister persister; +public abstract class AbstractPostDatabaseOperationEvent extends AbstractDatabaseOperationEvent { /** * Constructs an event containing the pertinent information. @@ -33,46 +28,7 @@ public AbstractPostDatabaseOperationEvent( Object entity, Object id, EntityPersister persister) { - super( source ); - this.entity = entity; - this.id = id; - this.persister = persister; - } - - /** - * Retrieves the entity involved in the database operation. - * - * @return The entity. - */ - public Object getEntity() { - return entity; - } - - /** - * The id to be used in the database operation. - * - * @return The id. - */ - public Object getId() { - return id; - } - - /** - * The persister for the entity. - * - * @return The entity persister. - */ - public EntityPersister getPersister() { - return persister; + super( source, entity, id, persister ); } - /** - * The factory which owns the persister for the entity. - * - * @return The factory - */ - @Override - public SessionFactoryImplementor getFactory() { - return persister.getFactory(); - } } diff --git a/hibernate-core/src/main/java/org/hibernate/event/spi/AbstractPreDatabaseOperationEvent.java b/hibernate-core/src/main/java/org/hibernate/event/spi/AbstractPreDatabaseOperationEvent.java index f25b52ec3ed6..6716e7e3f098 100644 --- a/hibernate-core/src/main/java/org/hibernate/event/spi/AbstractPreDatabaseOperationEvent.java +++ b/hibernate-core/src/main/java/org/hibernate/event/spi/AbstractPreDatabaseOperationEvent.java @@ -4,7 +4,6 @@ */ package org.hibernate.event.spi; -import org.hibernate.engine.spi.SessionFactoryImplementor; import org.hibernate.persister.entity.EntityPersister; /** @@ -12,11 +11,7 @@ * * @author Steve Ebersole */ -public abstract class AbstractPreDatabaseOperationEvent extends AbstractEvent { - - private final Object entity; - private final Object id; - private final EntityPersister persister; +public abstract class AbstractPreDatabaseOperationEvent extends AbstractDatabaseOperationEvent { /** * Constructs an event containing the pertinent information. @@ -31,46 +26,6 @@ public AbstractPreDatabaseOperationEvent( Object entity, Object id, EntityPersister persister) { - super( source ); - this.entity = entity; - this.id = id; - this.persister = persister; - } - - /** - * Retrieves the entity involved in the database operation. - * - * @return The entity. - */ - public Object getEntity() { - return entity; - } - - /** - * The id to be used in the database operation. - * - * @return The id. - */ - public Object getId() { - return id; - } - - /** - * The persister for the entity. - * - * @return The entity persister. - */ - public EntityPersister getPersister() { - return persister; - } - - /** - * The factory which owns the persister for the entity. - * - * @return The factory - */ - @Override - public SessionFactoryImplementor getFactory() { - return persister.getFactory(); + super( source, entity, id, persister ); } }