44 */
55package org .hibernate .query .sqm .tree .select ;
66
7- import java .util .Collections ;
87import java .util .LinkedHashSet ;
98import java .util .List ;
109import java .util .Map ;
4039import jakarta .persistence .criteria .Selection ;
4140import jakarta .persistence .metamodel .EntityType ;
4241
42+ import static java .util .Collections .emptySet ;
43+ import static java .util .Collections .unmodifiableSet ;
4344import static org .hibernate .query .sqm .spi .SqmCreationHelper .combinePredicates ;
4445import static org .hibernate .query .sqm .SqmQuerySource .CRITERIA ;
4546import static org .hibernate .query .sqm .tree .SqmCopyContext .noParamCopyContext ;
@@ -168,8 +169,8 @@ public SqmQuerySource getQuerySource() {
168169 public SqmQuerySpec <T > getQuerySpec () {
169170 if ( querySource == CRITERIA ) {
170171 final SqmQueryPart <T > queryPart = getQueryPart ();
171- if ( queryPart instanceof SqmQuerySpec <?> ) {
172- return ( SqmQuerySpec < T >) queryPart ;
172+ if ( queryPart instanceof SqmQuerySpec <T > querySpec ) {
173+ return querySpec ;
173174 }
174175 throw new IllegalStateException (
175176 "Query group can't be treated as query spec. Use JpaSelectCriteria#getQueryPart to access query group details"
@@ -185,8 +186,8 @@ public boolean producesUniqueResults() {
185186 }
186187
187188 private boolean producesUniqueResults (SqmQueryPart <?> queryPart ) {
188- if ( queryPart instanceof SqmQuerySpec <?> ) {
189- return ( ( SqmQuerySpec <?>) queryPart ) .producesUniqueResults ();
189+ if ( queryPart instanceof SqmQuerySpec <?> querySpec ) {
190+ return querySpec .producesUniqueResults ();
190191 }
191192 else {
192193 // For query groups we have to assume that duplicates are possible
@@ -199,29 +200,33 @@ public boolean containsCollectionFetches() {
199200 }
200201
201202 private boolean containsCollectionFetches (SqmQueryPart <?> queryPart ) {
202- if ( queryPart instanceof SqmQuerySpec <?> ) {
203- return ( ( SqmQuerySpec <?>) queryPart ) .containsCollectionFetches ();
203+ if ( queryPart instanceof SqmQuerySpec <?> querySpec ) {
204+ return querySpec .containsCollectionFetches ();
204205 }
205- else {
206+ else if ( queryPart instanceof SqmQueryGroup <?> queryGroup ) {
206207 // We only have to check the first one
207- final SqmQueryGroup <?> queryGroup = (SqmQueryGroup <?>) queryPart ;
208208 return containsCollectionFetches ( queryGroup .getQueryParts ().get ( 0 ) );
209209 }
210+ else {
211+ throw new IllegalStateException ("No SqmQueryPart" );
212+ }
210213 }
211214
212215 public boolean usesDistinct () {
213216 return usesDistinct ( getQueryPart () );
214217 }
215218
216219 private boolean usesDistinct (SqmQueryPart <?> queryPart ) {
217- if ( queryPart instanceof SqmQuerySpec <?> ) {
218- return ( ( SqmQuerySpec <?>) queryPart ) .getSelectClause ().isDistinct ();
220+ if ( queryPart instanceof SqmQuerySpec <?> querySpec ) {
221+ return querySpec .getSelectClause ().isDistinct ();
219222 }
220- else {
223+ else if ( queryPart instanceof SqmQueryGroup <?> queryGroup ) {
221224 // We only have to check the first one
222- final SqmQueryGroup <?> queryGroup = (SqmQueryGroup <?>) queryPart ;
223225 return usesDistinct ( queryGroup .getQueryParts ().get ( 0 ) );
224226 }
227+ else {
228+ throw new IllegalStateException ("No SqmQueryPart" );
229+ }
225230 }
226231
227232 @ Override
@@ -230,8 +235,9 @@ public Set<SqmParameter<?>> getSqmParameters() {
230235 assert parameters == null : "SqmSelectStatement (as Criteria) should not have collected parameters" ;
231236 return collectParameters ( this );
232237 }
233-
234- return parameters == null ? Collections .emptySet () : Collections .unmodifiableSet ( parameters );
238+ else {
239+ return parameters == null ? emptySet () : unmodifiableSet ( parameters );
240+ }
235241 }
236242
237243 @ Override
@@ -249,7 +255,6 @@ public void addParameter(SqmParameter<?> parameter) {
249255 if ( parameters == null ) {
250256 parameters = new LinkedHashSet <>();
251257 }
252-
253258 parameters .add ( parameter );
254259 }
255260
@@ -269,7 +274,8 @@ protected <X> JpaCteCriteria<X> withInternal(
269274 String name ,
270275 AbstractQuery <X > baseCriteria ,
271276 boolean unionDistinct ,
272- Function <JpaCteCriteria <X >, AbstractQuery <X >> recursiveCriteriaProducer ) {
277+ Function <JpaCteCriteria <X >,
278+ AbstractQuery <X >> recursiveCriteriaProducer ) {
273279 if ( baseCriteria instanceof SqmSubQuery <?> ) {
274280 throw new IllegalArgumentException (
275281 "Invalid query type provided to root query 'with' method, " +
0 commit comments