Skip to content

Commit 565a56c

Browse files
committed
minor cleanups - lots of use of 'var'
1 parent d0f05a0 commit 565a56c

16 files changed

+279
-353
lines changed

hibernate-core/src/main/java/org/hibernate/generator/values/internal/GeneratedValuesHelper.java

Lines changed: 80 additions & 123 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import java.sql.ResultSet;
99
import java.sql.SQLException;
1010
import java.util.ArrayList;
11-
import java.util.Collections;
1211
import java.util.List;
1312

1413
import org.hibernate.HibernateException;
@@ -30,15 +29,12 @@
3029
import org.hibernate.metamodel.mapping.ModelPart;
3130
import org.hibernate.metamodel.mapping.SelectableMapping;
3231
import org.hibernate.persister.entity.EntityPersister;
33-
import org.hibernate.persister.entity.mutation.EntityTableMapping;
3432
import org.hibernate.query.results.internal.TableGroupImpl;
3533
import org.hibernate.query.spi.QueryOptions;
3634
import org.hibernate.spi.NavigablePath;
3735
import org.hibernate.sql.ast.tree.from.NamedTableReference;
3836
import org.hibernate.sql.ast.tree.from.TableGroup;
3937
import org.hibernate.sql.exec.internal.BaseExecutionContext;
40-
import org.hibernate.sql.exec.spi.ExecutionContext;
41-
import org.hibernate.sql.model.MutationType;
4238
import org.hibernate.sql.model.TableMapping;
4339
import org.hibernate.sql.results.internal.ResultsHelper;
4440
import org.hibernate.sql.results.internal.RowProcessingStateStandardImpl;
@@ -48,12 +44,15 @@
4844
import org.hibernate.sql.results.jdbc.internal.JdbcValuesSourceProcessingStateStandardImpl;
4945
import org.hibernate.sql.results.jdbc.spi.JdbcValues;
5046
import org.hibernate.sql.results.jdbc.spi.JdbcValuesMappingProducer;
51-
import org.hibernate.sql.results.jdbc.spi.JdbcValuesSourceProcessingOptions;
5247
import org.hibernate.sql.results.spi.ListResultsConsumer;
5348
import org.hibernate.sql.results.spi.RowReader;
5449

50+
import static java.util.Collections.unmodifiableList;
5551
import static org.hibernate.internal.NaturalIdHelper.getNaturalIdPropertyNames;
5652
import static org.hibernate.pretty.MessageHelper.infoString;
53+
import static org.hibernate.sql.model.MutationType.INSERT;
54+
import static org.hibernate.sql.model.MutationType.UPDATE;
55+
import static org.hibernate.sql.results.jdbc.spi.JdbcValuesSourceProcessingOptions.NO_OPTIONS;
5756

5857
/**
5958
* Factory and helper methods for {@link GeneratedValuesMutationDelegate} framework.
@@ -65,7 +64,7 @@ public class GeneratedValuesHelper {
6564
private static final CoreMessageLogger LOG = CoreLogging.messageLogger( IdentifierGeneratorHelper.class );
6665

6766
/**
68-
* Reads the {@link EntityPersister#getGeneratedProperties(EventType) generated values}
67+
* Reads the {@linkplain EntityPersister#getGeneratedProperties(EventType) generated values}
6968
* for the specified {@link ResultSet}.
7069
*
7170
* @param resultSet The result set from which to extract the generated values
@@ -87,19 +86,18 @@ public static GeneratedValues getGeneratedValues(
8786
return null;
8887
}
8988

90-
final GeneratedValuesMutationDelegate delegate = persister.getMutationDelegate(
91-
timing == EventType.INSERT ? MutationType.INSERT : MutationType.UPDATE
92-
);
93-
final GeneratedValuesMappingProducer mappingProducer =
94-
(GeneratedValuesMappingProducer) delegate.getGeneratedValuesMappingProducer();
95-
final List<GeneratedValueBasicResultBuilder> resultBuilders = mappingProducer.getResultBuilders();
89+
final var mappingProducer =
90+
(GeneratedValuesMappingProducer)
91+
persister.getMutationDelegate( timing == EventType.INSERT ? INSERT : UPDATE )
92+
.getGeneratedValuesMappingProducer();
93+
final var resultBuilders = mappingProducer.getResultBuilders();
9694
final List<ModelPart> generatedProperties = new ArrayList<>( resultBuilders.size() );
97-
for ( GeneratedValueBasicResultBuilder resultBuilder : resultBuilders ) {
95+
for ( var resultBuilder : resultBuilders ) {
9896
generatedProperties.add( resultBuilder.getModelPart() );
9997
}
10098

101-
final GeneratedValuesImpl generatedValues = new GeneratedValuesImpl( generatedProperties );
102-
final Object[] results = readGeneratedValues( resultSet, statement, persister, mappingProducer, session );
99+
final var generatedValues = new GeneratedValuesImpl( generatedProperties );
100+
final var results = readGeneratedValues( resultSet, statement, persister, mappingProducer, session );
103101

104102
if ( LOG.isDebugEnabled() ) {
105103
LOG.debug( "Extracted generated values for entity "
@@ -130,84 +128,38 @@ private static Object[] readGeneratedValues(
130128
EntityPersister persister,
131129
JdbcValuesMappingProducer mappingProducer,
132130
SharedSessionContractImplementor session) {
133-
final ExecutionContext executionContext = new BaseExecutionContext( session );
134-
135-
final DirectResultSetAccess directResultSetAccess = new DirectResultSetAccess(
136-
session,
137-
statement,
138-
resultSet
139-
);
140-
131+
final var factory = session.getFactory();
132+
final var executionContext = new BaseExecutionContext( session );
133+
final var directResultSetAccess =
134+
new DirectResultSetAccess( session, statement, resultSet );
135+
final var influencers = session.getLoadQueryInfluencers();
141136
final JdbcValues jdbcValues = new JdbcValuesResultSetImpl(
142137
directResultSetAccess,
143138
null,
144139
null,
145140
QueryOptions.NONE,
146141
true,
147-
mappingProducer.resolve(
148-
directResultSetAccess,
149-
session.getLoadQueryInfluencers(),
150-
session.getSessionFactory()
151-
),
142+
mappingProducer.resolve( directResultSetAccess, influencers, factory ),
152143
null,
153144
executionContext
154145
);
155-
156-
final JdbcValuesSourceProcessingOptions processingOptions = new JdbcValuesSourceProcessingOptions() {
157-
@Override
158-
public Object getEffectiveOptionalObject() {
159-
return null;
160-
}
161-
162-
@Override
163-
public String getEffectiveOptionalEntityName() {
164-
return null;
165-
}
166-
167-
@Override
168-
public Object getEffectiveOptionalId() {
169-
return null;
170-
}
171-
172-
@Override
173-
public boolean shouldReturnProxies() {
174-
return true;
175-
}
176-
};
177-
178-
final JdbcValuesSourceProcessingStateStandardImpl valuesProcessingState =
179-
new JdbcValuesSourceProcessingStateStandardImpl( executionContext, processingOptions );
180-
146+
final var valuesProcessingState =
147+
new JdbcValuesSourceProcessingStateStandardImpl( executionContext, NO_OPTIONS );
181148
final RowReader<Object[]> rowReader = ResultsHelper.createRowReader(
182-
session.getFactory(),
149+
factory,
183150
RowTransformerArrayImpl.instance(),
184151
Object[].class,
185152
jdbcValues
186153
);
187-
188-
final RowProcessingStateStandardImpl rowProcessingState = new RowProcessingStateStandardImpl(
189-
valuesProcessingState,
190-
executionContext,
191-
rowReader,
192-
jdbcValues
193-
);
194-
195-
final List<Object[]> results = ListResultsConsumer.<Object[]>instance( ListResultsConsumer.UniqueSemantic.NONE )
196-
.consume(
197-
jdbcValues,
198-
session,
199-
processingOptions,
200-
valuesProcessingState,
201-
rowProcessingState,
202-
rowReader
203-
);
204-
154+
final var rowProcessingState =
155+
new RowProcessingStateStandardImpl( valuesProcessingState, executionContext, rowReader, jdbcValues );
156+
final List<Object[]> results =
157+
ListResultsConsumer.<Object[]>instance( ListResultsConsumer.UniqueSemantic.NONE )
158+
.consume( jdbcValues, session, NO_OPTIONS, valuesProcessingState, rowProcessingState, rowReader );
205159
if ( results.isEmpty() ) {
206-
throw new HibernateException(
207-
"The database returned no natively generated values : " + persister.getNavigableRole().getFullPath()
208-
);
160+
throw new HibernateException( "The database returned no natively generated values : "
161+
+ persister.getNavigableRole().getFullPath() );
209162
}
210-
211163
return results.get( 0 );
212164
}
213165

@@ -228,33 +180,34 @@ public static GeneratedValuesMappingProducer createMappingProducer(
228180
EventType timing,
229181
boolean supportsArbitraryValues,
230182
boolean supportsRowId) {
231-
// This is just a mock table group needed to correctly resolve expressions
183+
return generatedValuesMappingProducer( persister, supportsArbitraryValues,
184+
getActualGeneratedModelParts( persister, timing, supportsArbitraryValues, supportsRowId ) );
185+
}
186+
187+
private static GeneratedValuesMappingProducer generatedValuesMappingProducer(
188+
EntityPersister persister,
189+
boolean supportsArbitraryValues,
190+
List<? extends ModelPart> generatedProperties) {
232191
final NavigablePath parentNavigablePath = new NavigablePath( persister.getEntityName() );
192+
// This is just a mock table group needed to correctly resolve expressions
233193
final TableGroup tableGroup = new TableGroupImpl(
234194
parentNavigablePath,
235195
null,
236196
new NamedTableReference( "t", "t" ),
237197
persister
238198
);
239199
// Create the mapping producer and add all result builders to it
240-
final List<? extends ModelPart> generatedProperties = getActualGeneratedModelParts(
241-
persister,
242-
timing,
243-
supportsArbitraryValues,
244-
supportsRowId
245-
);
246-
final GeneratedValuesMappingProducer mappingProducer = new GeneratedValuesMappingProducer();
200+
final var mappingProducer = new GeneratedValuesMappingProducer();
247201
for ( int i = 0; i < generatedProperties.size(); i++ ) {
248-
final ModelPart modelPart = generatedProperties.get( i );
249-
final BasicValuedModelPart basicModelPart = modelPart.asBasicValuedModelPart();
202+
final var modelPart = generatedProperties.get( i );
203+
final var basicModelPart = modelPart.asBasicValuedModelPart();
250204
if ( basicModelPart != null ) {
251-
final GeneratedValueBasicResultBuilder resultBuilder = new GeneratedValueBasicResultBuilder(
205+
mappingProducer.addResultBuilder( new GeneratedValueBasicResultBuilder(
252206
parentNavigablePath.append( basicModelPart.getSelectableName() ),
253207
basicModelPart,
254208
tableGroup,
255209
supportsArbitraryValues ? i : null
256-
);
257-
mappingProducer.addResultBuilder( resultBuilder );
210+
) );
258211
}
259212
else {
260213
throw new UnsupportedOperationException( "Unsupported generated ModelPart: " + modelPart.getPartName() );
@@ -266,12 +219,12 @@ public static GeneratedValuesMappingProducer createMappingProducer(
266219
public static BasicValuedModelPart getActualGeneratedModelPart(BasicValuedModelPart modelPart) {
267220
// Use the root entity descriptor's identifier mapping to get the correct selection
268221
// expression since we always retrieve generated values for the root table only
269-
return modelPart.isEntityIdentifierMapping() ?
270-
modelPart.findContainingEntityMapping()
222+
return modelPart.isEntityIdentifierMapping()
223+
? modelPart.findContainingEntityMapping()
271224
.getRootEntityDescriptor()
272225
.getIdentifierMapping()
273-
.asBasicValuedModelPart() :
274-
modelPart;
226+
.asBasicValuedModelPart()
227+
: modelPart;
275228
}
276229

277230
/**
@@ -284,14 +237,16 @@ private static List<? extends ModelPart> getActualGeneratedModelParts(
284237
boolean supportsArbitraryValues,
285238
boolean supportsRowId) {
286239
if ( timing == EventType.INSERT ) {
287-
final List<? extends ModelPart> generatedProperties = supportsArbitraryValues ?
288-
persister.getInsertGeneratedProperties() :
289-
List.of( persister.getIdentifierMapping() );
240+
final var generatedProperties =
241+
supportsArbitraryValues
242+
? persister.getInsertGeneratedProperties()
243+
: List.of( persister.getIdentifierMapping() );
290244
if ( persister.getRowIdMapping() != null && supportsRowId ) {
291-
final List<ModelPart> newList = new ArrayList<>( generatedProperties.size() + 1 );
245+
final List<ModelPart> newList =
246+
new ArrayList<>( generatedProperties.size() + 1 );
292247
newList.addAll( generatedProperties );
293248
newList.add( persister.getRowIdMapping() );
294-
return Collections.unmodifiableList( newList );
249+
return unmodifiableList( newList );
295250
}
296251
else {
297252
return generatedProperties;
@@ -313,53 +268,55 @@ private static List<? extends ModelPart> getActualGeneratedModelParts(
313268
public static GeneratedValuesMutationDelegate getGeneratedValuesDelegate(
314269
EntityPersister persister,
315270
EventType timing) {
316-
final List<? extends ModelPart> generatedProperties = persister.getGeneratedProperties( timing );
317-
final boolean hasGeneratedProperties = !generatedProperties.isEmpty();
271+
final var factory = persister.getFactory();
272+
final var generatedProperties = persister.getGeneratedProperties( timing );
318273
final boolean hasFormula =
319274
generatedProperties.stream()
320-
.anyMatch( part -> part instanceof SelectableMapping selectable && selectable.isFormula() );
321-
final boolean hasRowId = timing == EventType.INSERT && persister.getRowIdMapping() != null;
322-
final Dialect dialect = persister.getFactory().getJdbcServices().getDialect();
323-
324-
if ( hasRowId && dialect.supportsInsertReturning() && dialect.supportsInsertReturningRowId()
275+
.anyMatch( part -> part instanceof SelectableMapping selectable
276+
&& selectable.isFormula() );
277+
final boolean hasRowId =
278+
timing == EventType.INSERT
279+
&& persister.getRowIdMapping() != null;
280+
final Dialect dialect = factory.getJdbcServices().getDialect();
281+
if ( hasRowId
282+
&& dialect.supportsInsertReturning()
283+
&& dialect.supportsInsertReturningRowId()
325284
&& noCustomSql( persister, timing ) ) {
326285
// Special case for RowId on INSERT, since GetGeneratedKeysDelegate doesn't support it
327286
// make InsertReturningDelegate the preferred method if the dialect supports it
328287
return new InsertReturningDelegate( persister, timing );
329288
}
330-
331-
if ( !hasGeneratedProperties ) {
289+
else if ( generatedProperties.isEmpty() ) {
332290
return null;
333291
}
334-
335-
if ( !hasFormula
292+
else if ( !hasFormula
336293
&& dialect.supportsInsertReturningGeneratedKeys()
337-
&& persister.getFactory().getSessionFactoryOptions().isGetGeneratedKeysEnabled() ) {
294+
&& factory.getSessionFactoryOptions().isGetGeneratedKeysEnabled() ) {
338295
return new GetGeneratedKeysDelegate( persister, false, timing );
339296
}
340297
else if ( supportsReturning( dialect, timing ) && noCustomSql( persister, timing ) ) {
341298
return new InsertReturningDelegate( persister, timing );
342299
}
343-
else if ( timing == EventType.INSERT && persister.getNaturalIdentifierProperties() != null
344-
&& !persister.getEntityMetamodel().isNaturalIdentifierInsertGenerated() ) {
345-
return new UniqueKeySelectingDelegate(
346-
persister,
347-
getNaturalIdPropertyNames( persister ),
348-
timing
349-
);
300+
else if ( timing == EventType.INSERT
301+
&& persister.getNaturalIdentifierProperties() != null
302+
&& !persister.getEntityMetamodel().isNaturalIdentifierInsertGenerated() ) {
303+
return new UniqueKeySelectingDelegate( persister, getNaturalIdPropertyNames( persister ), timing );
350304
}
351305
return null;
352306
}
353307

354308
private static boolean supportsReturning(Dialect dialect, EventType timing) {
355-
return timing == EventType.INSERT ? dialect.supportsInsertReturning() : dialect.supportsUpdateReturning();
309+
return timing == EventType.INSERT
310+
? dialect.supportsInsertReturning()
311+
: dialect.supportsUpdateReturning();
356312
}
357313

358314
public static boolean noCustomSql(EntityPersister persister, EventType timing) {
359-
final EntityTableMapping identifierTable = persister.getIdentifierTableMapping();
360-
final TableMapping.MutationDetails mutationDetails = timing == EventType.INSERT ?
361-
identifierTable.getInsertDetails() :
362-
identifierTable.getUpdateDetails();
315+
final var identifierTable = persister.getIdentifierTableMapping();
316+
final TableMapping.MutationDetails mutationDetails =
317+
timing == EventType.INSERT
318+
? identifierTable.getInsertDetails()
319+
: identifierTable.getUpdateDetails();
363320
return mutationDetails.getCustomSql() == null;
364321
}
365322
}

hibernate-core/src/main/java/org/hibernate/generator/values/internal/GeneratedValuesImpl.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,16 @@
55
package org.hibernate.generator.values.internal;
66

77
import java.util.ArrayList;
8-
import java.util.Collections;
98
import java.util.IdentityHashMap;
109
import java.util.List;
1110
import java.util.Map;
1211

1312
import org.hibernate.generator.values.GeneratedValues;
14-
import org.hibernate.internal.util.collections.CollectionHelper;
1513
import org.hibernate.metamodel.mapping.ModelPart;
1614

15+
import static java.util.Collections.emptyList;
16+
import static org.hibernate.internal.util.collections.CollectionHelper.isEmpty;
17+
1718
/**
1819
* Standard implementation for {@link GeneratedValues} using {@link IdentityHashMap}.
1920
*
@@ -38,8 +39,8 @@ public Object getGeneratedValue(ModelPart modelPart) {
3839

3940
@Override
4041
public List<Object> getGeneratedValues(List<? extends ModelPart> modelParts) {
41-
if ( CollectionHelper.isEmpty( modelParts ) ) {
42-
return Collections.emptyList();
42+
if ( isEmpty( modelParts ) ) {
43+
return emptyList();
4344
}
4445

4546
final List<Object> generatedValues = new ArrayList<>( modelParts.size() );

0 commit comments

Comments
 (0)