Skip to content

Commit 82932c1

Browse files
committed
introduce AbstractDatabaseOperationEvent
because the Pre and Post versions were isomorphic
1 parent 8c45eeb commit 82932c1

File tree

3 files changed

+83
-93
lines changed

3 files changed

+83
-93
lines changed
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
/*
2+
* SPDX-License-Identifier: LGPL-2.1-or-later
3+
* Copyright Red Hat Inc. and Hibernate Authors
4+
*/
5+
package org.hibernate.event.spi;
6+
7+
import org.hibernate.engine.spi.SessionFactoryImplementor;
8+
import org.hibernate.persister.entity.EntityPersister;
9+
10+
/**
11+
* Abstract supertype of {@link AbstractPostDatabaseOperationEvent}
12+
* and {@link AbstractPostDatabaseOperationEvent}.
13+
*
14+
* @author Gavin King
15+
*
16+
* @since 7
17+
*/
18+
public abstract class AbstractDatabaseOperationEvent extends AbstractEvent {
19+
20+
private final Object entity;
21+
private final Object id;
22+
private final EntityPersister persister;
23+
24+
/**
25+
* Constructs an event containing the pertinent information.
26+
*
27+
* @param source The session from which the event originated.
28+
* @param entity The entity to be involved in the database operation.
29+
* @param id The entity id to be involved in the database operation.
30+
* @param persister The entity's persister.
31+
*/
32+
public AbstractDatabaseOperationEvent(
33+
EventSource source,
34+
Object entity,
35+
Object id,
36+
EntityPersister persister) {
37+
super( source );
38+
this.entity = entity;
39+
this.id = id;
40+
this.persister = persister;
41+
}
42+
43+
/**
44+
* Retrieves the entity involved in the database operation.
45+
*
46+
* @return The entity.
47+
*/
48+
public Object getEntity() {
49+
return entity;
50+
}
51+
52+
/**
53+
* The id to be used in the database operation.
54+
*
55+
* @return The id.
56+
*/
57+
public Object getId() {
58+
return id;
59+
}
60+
61+
/**
62+
* The persister for the entity.
63+
*
64+
* @return The entity persister.
65+
*/
66+
public EntityPersister getPersister() {
67+
return persister;
68+
}
69+
70+
/**
71+
* The factory which owns the persister for the entity.
72+
*
73+
* @return The factory
74+
*/
75+
@Override
76+
public SessionFactoryImplementor getFactory() {
77+
return persister.getFactory();
78+
}
79+
}

hibernate-core/src/main/java/org/hibernate/event/spi/AbstractPostDatabaseOperationEvent.java

Lines changed: 2 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
*/
55
package org.hibernate.event.spi;
66

7-
import org.hibernate.engine.spi.SessionFactoryImplementor;
87
import org.hibernate.persister.entity.EntityPersister;
98

109
/**
@@ -14,11 +13,7 @@
1413
*
1514
* @since 7
1615
*/
17-
public abstract class AbstractPostDatabaseOperationEvent extends AbstractEvent {
18-
19-
private final Object entity;
20-
private final Object id;
21-
private final EntityPersister persister;
16+
public abstract class AbstractPostDatabaseOperationEvent extends AbstractDatabaseOperationEvent {
2217

2318
/**
2419
* Constructs an event containing the pertinent information.
@@ -33,46 +28,7 @@ public AbstractPostDatabaseOperationEvent(
3328
Object entity,
3429
Object id,
3530
EntityPersister persister) {
36-
super( source );
37-
this.entity = entity;
38-
this.id = id;
39-
this.persister = persister;
40-
}
41-
42-
/**
43-
* Retrieves the entity involved in the database operation.
44-
*
45-
* @return The entity.
46-
*/
47-
public Object getEntity() {
48-
return entity;
49-
}
50-
51-
/**
52-
* The id to be used in the database operation.
53-
*
54-
* @return The id.
55-
*/
56-
public Object getId() {
57-
return id;
58-
}
59-
60-
/**
61-
* The persister for the entity.
62-
*
63-
* @return The entity persister.
64-
*/
65-
public EntityPersister getPersister() {
66-
return persister;
31+
super( source, entity, id, persister );
6732
}
6833

69-
/**
70-
* The factory which owns the persister for the entity.
71-
*
72-
* @return The factory
73-
*/
74-
@Override
75-
public SessionFactoryImplementor getFactory() {
76-
return persister.getFactory();
77-
}
7834
}

hibernate-core/src/main/java/org/hibernate/event/spi/AbstractPreDatabaseOperationEvent.java

Lines changed: 2 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,14 @@
44
*/
55
package org.hibernate.event.spi;
66

7-
import org.hibernate.engine.spi.SessionFactoryImplementor;
87
import org.hibernate.persister.entity.EntityPersister;
98

109
/**
1110
* Represents an operation that is about to be executed by the database.
1211
*
1312
* @author Steve Ebersole
1413
*/
15-
public abstract class AbstractPreDatabaseOperationEvent extends AbstractEvent {
16-
17-
private final Object entity;
18-
private final Object id;
19-
private final EntityPersister persister;
14+
public abstract class AbstractPreDatabaseOperationEvent extends AbstractDatabaseOperationEvent {
2015

2116
/**
2217
* Constructs an event containing the pertinent information.
@@ -31,46 +26,6 @@ public AbstractPreDatabaseOperationEvent(
3126
Object entity,
3227
Object id,
3328
EntityPersister persister) {
34-
super( source );
35-
this.entity = entity;
36-
this.id = id;
37-
this.persister = persister;
38-
}
39-
40-
/**
41-
* Retrieves the entity involved in the database operation.
42-
*
43-
* @return The entity.
44-
*/
45-
public Object getEntity() {
46-
return entity;
47-
}
48-
49-
/**
50-
* The id to be used in the database operation.
51-
*
52-
* @return The id.
53-
*/
54-
public Object getId() {
55-
return id;
56-
}
57-
58-
/**
59-
* The persister for the entity.
60-
*
61-
* @return The entity persister.
62-
*/
63-
public EntityPersister getPersister() {
64-
return persister;
65-
}
66-
67-
/**
68-
* The factory which owns the persister for the entity.
69-
*
70-
* @return The factory
71-
*/
72-
@Override
73-
public SessionFactoryImplementor getFactory() {
74-
return persister.getFactory();
29+
super( source, entity, id, persister );
7530
}
7631
}

0 commit comments

Comments
 (0)