Skip to content

Commit 02bbca8

Browse files
committed
move a nested adaptor class to toplevel
1 parent 05a5ee9 commit 02bbca8

File tree

2 files changed

+119
-113
lines changed

2 files changed

+119
-113
lines changed
Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
package org.hibernate.internal;
2+
3+
import org.hibernate.CacheMode;
4+
import org.hibernate.FlushMode;
5+
import org.hibernate.Interceptor;
6+
import org.hibernate.SessionEventListener;
7+
import org.hibernate.engine.creation.internal.SessionCreationOptions;
8+
import org.hibernate.engine.spi.SessionFactoryImplementor;
9+
import org.hibernate.resource.jdbc.spi.PhysicalConnectionHandlingMode;
10+
import org.hibernate.resource.jdbc.spi.StatementInspector;
11+
12+
import java.sql.Connection;
13+
import java.util.List;
14+
import java.util.TimeZone;
15+
16+
/**
17+
* Wraps a {@link CommonSharedSessionCreationOptions} as a
18+
* {@link SessionCreationOptions} to pass to
19+
* {@link org.hibernate.internal.AbstractSharedSessionContract}
20+
* during construction.
21+
*
22+
* @param factory The {@code SessionFactoryImplementor}
23+
* @param options The {@code CommonSharedSessionCreationOptions} being wrapped.
24+
*/
25+
public record SessionCreationOptionsAdaptor(
26+
SessionFactoryImplementor factory,
27+
CommonSharedSessionCreationOptions options)
28+
implements SessionCreationOptions {
29+
30+
@Override
31+
public Interceptor getInterceptor() {
32+
return options.getInterceptor();
33+
}
34+
35+
@Override
36+
public StatementInspector getStatementInspector() {
37+
return options.getStatementInspector();
38+
}
39+
40+
@Override
41+
public Object getTenantIdentifierValue() {
42+
return options.getTenantIdentifierValue();
43+
}
44+
45+
@Override
46+
public boolean isReadOnly() {
47+
return options.isReadOnly();
48+
}
49+
50+
@Override
51+
public CacheMode getInitialCacheMode() {
52+
return options.getInitialCacheMode();
53+
}
54+
55+
@Override
56+
public boolean shouldAutoJoinTransactions() {
57+
return true;
58+
}
59+
60+
@Override
61+
public FlushMode getInitialSessionFlushMode() {
62+
return FlushMode.ALWAYS;
63+
}
64+
65+
@Override
66+
public boolean isSubselectFetchEnabled() {
67+
return false;
68+
}
69+
70+
@Override
71+
public int getDefaultBatchFetchSize() {
72+
return -1;
73+
}
74+
75+
@Override
76+
public boolean shouldAutoClose() {
77+
return false;
78+
}
79+
80+
@Override
81+
public boolean shouldAutoClear() {
82+
return false;
83+
}
84+
85+
@Override
86+
public Connection getConnection() {
87+
return null;
88+
}
89+
90+
@Override
91+
public boolean isIdentifierRollbackEnabled() {
92+
// identifier rollback not yet implemented for StatelessSessions
93+
return false;
94+
}
95+
96+
@Override
97+
public PhysicalConnectionHandlingMode getPhysicalConnectionHandlingMode() {
98+
return factory.getSessionFactoryOptions().getPhysicalConnectionHandlingMode();
99+
}
100+
101+
@Override
102+
public String getTenantIdentifier() {
103+
final Object tenantIdentifier = getTenantIdentifierValue();
104+
return tenantIdentifier == null
105+
? null
106+
: factory.getTenantIdentifierJavaType().toString( tenantIdentifier );
107+
}
108+
109+
@Override
110+
public TimeZone getJdbcTimeZone() {
111+
return factory.getSessionFactoryOptions().getJdbcTimeZone();
112+
}
113+
114+
@Override
115+
public List<SessionEventListener> getCustomSessionEventListener() {
116+
return null;
117+
}
118+
}

hibernate-core/src/main/java/org/hibernate/internal/StatelessSessionImpl.java

Lines changed: 1 addition & 113 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,10 @@
88
import jakarta.persistence.PersistenceException;
99
import jakarta.transaction.SystemException;
1010
import org.hibernate.AssertionFailure;
11-
import org.hibernate.CacheMode;
1211
import org.hibernate.FlushMode;
1312
import org.hibernate.HibernateException;
14-
import org.hibernate.Interceptor;
1513
import org.hibernate.LockMode;
1614
import org.hibernate.LockOptions;
17-
import org.hibernate.SessionEventListener;
1815
import org.hibernate.SessionException;
1916
import org.hibernate.StatelessSession;
2017
import org.hibernate.TransientObjectException;
@@ -68,14 +65,10 @@
6865
import org.hibernate.loader.internal.CacheLoadHelper;
6966
import org.hibernate.persister.collection.CollectionPersister;
7067
import org.hibernate.persister.entity.EntityPersister;
71-
import org.hibernate.resource.jdbc.spi.PhysicalConnectionHandlingMode;
72-
import org.hibernate.resource.jdbc.spi.StatementInspector;
7368
import org.hibernate.stat.spi.StatisticsImplementor;
7469

75-
import java.sql.Connection;
7670
import java.util.List;
7771
import java.util.Set;
78-
import java.util.TimeZone;
7972
import java.util.function.BiConsumer;
8073

8174
import static org.hibernate.engine.internal.ManagedTypeHelper.asPersistentAttributeInterceptable;
@@ -148,7 +141,7 @@ public StatelessSessionImpl(SessionFactoryImpl factory, SessionCreationOptions o
148141
public StatelessSessionImpl(SessionFactoryImplementor factory, CommonSharedSessionCreationOptions options) {
149142
super(
150143
(SessionFactoryImpl) factory,
151-
CommonSharedSessionCreationOptionsWrapper.wrapOptions( (SessionFactoryImpl) factory, options )
144+
new SessionCreationOptionsAdaptor( factory, options )
152145
);
153146
connectionProvided = false;
154147
transactionCompletionCallbacks = new TransactionCompletionCallbacksImpl( this );
@@ -1514,109 +1507,4 @@ public Integer getBatchSize() {
15141507
}
15151508
}
15161509

1517-
/**
1518-
* Wraps a CommonSharedSessionCreationOptions as a SessionCreationOptions to pass
1519-
* to AbstractSharedSessionContract during construction.
1520-
*
1521-
* @param factory The SessionFactory
1522-
* @param options The CommonSharedSessionCreationOptions being wrapped.
1523-
*/
1524-
private record CommonSharedSessionCreationOptionsWrapper(
1525-
SessionFactoryImplementor factory,
1526-
CommonSharedSessionCreationOptions options)
1527-
implements SessionCreationOptions {
1528-
1529-
private static SessionCreationOptions wrapOptions(SessionFactoryImpl factory, CommonSharedSessionCreationOptions options) {
1530-
return new CommonSharedSessionCreationOptionsWrapper( factory, options );
1531-
}
1532-
1533-
@Override
1534-
public Interceptor getInterceptor() {
1535-
return options.getInterceptor();
1536-
}
1537-
1538-
@Override
1539-
public StatementInspector getStatementInspector() {
1540-
return options.getStatementInspector();
1541-
}
1542-
1543-
@Override
1544-
public Object getTenantIdentifierValue() {
1545-
return options.getTenantIdentifierValue();
1546-
}
1547-
1548-
@Override
1549-
public boolean isReadOnly() {
1550-
return options.isReadOnly();
1551-
}
1552-
1553-
@Override
1554-
public CacheMode getInitialCacheMode() {
1555-
return options.getInitialCacheMode();
1556-
}
1557-
1558-
@Override
1559-
public boolean shouldAutoJoinTransactions() {
1560-
return true;
1561-
}
1562-
1563-
@Override
1564-
public FlushMode getInitialSessionFlushMode() {
1565-
return FlushMode.ALWAYS;
1566-
}
1567-
1568-
@Override
1569-
public boolean isSubselectFetchEnabled() {
1570-
return false;
1571-
}
1572-
1573-
@Override
1574-
public int getDefaultBatchFetchSize() {
1575-
return -1;
1576-
}
1577-
1578-
@Override
1579-
public boolean shouldAutoClose() {
1580-
return false;
1581-
}
1582-
1583-
@Override
1584-
public boolean shouldAutoClear() {
1585-
return false;
1586-
}
1587-
1588-
@Override
1589-
public Connection getConnection() {
1590-
return null;
1591-
}
1592-
1593-
@Override
1594-
public boolean isIdentifierRollbackEnabled() {
1595-
// identifier rollback not yet implemented for StatelessSessions
1596-
return false;
1597-
}
1598-
1599-
@Override
1600-
public PhysicalConnectionHandlingMode getPhysicalConnectionHandlingMode() {
1601-
return factory.getSessionFactoryOptions().getPhysicalConnectionHandlingMode();
1602-
}
1603-
1604-
@Override
1605-
public String getTenantIdentifier() {
1606-
final Object tenantIdentifier = getTenantIdentifierValue();
1607-
return tenantIdentifier == null
1608-
? null
1609-
: factory.getTenantIdentifierJavaType().toString( tenantIdentifier );
1610-
}
1611-
1612-
@Override
1613-
public TimeZone getJdbcTimeZone() {
1614-
return factory.getSessionFactoryOptions().getJdbcTimeZone();
1615-
}
1616-
1617-
@Override
1618-
public List<SessionEventListener> getCustomSessionEventListener() {
1619-
return null;
1620-
}
1621-
}
16221510
}

0 commit comments

Comments
 (0)