Skip to content

Commit 3357d1e

Browse files
committed
squash some warnings in SemanticQueryBuilder
1 parent a42c526 commit 3357d1e

File tree

1 file changed

+12
-9
lines changed

1 file changed

+12
-9
lines changed

hibernate-core/src/main/java/org/hibernate/query/hql/internal/SemanticQueryBuilder.java

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@
5555
import org.hibernate.metamodel.model.domain.ManagedDomainType;
5656
import org.hibernate.metamodel.model.domain.PersistentAttribute;
5757
import org.hibernate.metamodel.model.domain.PluralPersistentAttribute;
58-
import org.hibernate.metamodel.model.domain.SimpleDomainType;
5958
import org.hibernate.metamodel.model.domain.SingularPersistentAttribute;
6059
import org.hibernate.metamodel.model.domain.internal.AnyDiscriminatorSqmPath;
6160
import org.hibernate.metamodel.model.domain.internal.EntitySqmPathSource;
@@ -2109,10 +2108,10 @@ else if ( ( possibleEnumValues = getPossibleEnumValues( rightExpressionContext )
21092108
final SqmExpression<?> r = (SqmExpression<?>) rightExpressionContext.accept( this );
21102109
if ( l instanceof AnyDiscriminatorSqmPath && r instanceof SqmLiteralEntityType ) {
21112110
left = l;
2112-
right = createDiscriminatorValue( (AnyDiscriminatorSqmPath) left, rightExpressionContext );
2111+
right = createDiscriminatorValue( (AnyDiscriminatorSqmPath<?>) left, rightExpressionContext );
21132112
}
21142113
else if ( r instanceof AnyDiscriminatorSqmPath && l instanceof SqmLiteralEntityType ) {
2115-
left = createDiscriminatorValue( (AnyDiscriminatorSqmPath) r, leftExpressionContext );
2114+
left = createDiscriminatorValue( (AnyDiscriminatorSqmPath<?>) r, leftExpressionContext );
21162115
right = r;
21172116
}
21182117
else {
@@ -2154,7 +2153,7 @@ else if ( right instanceof SqmLiteralNull<?> ) {
21542153
}
21552154

21562155
private <T> SqmExpression<T> createDiscriminatorValue(
2157-
AnyDiscriminatorSqmPath anyDiscriminatorTypeSqmPath,
2156+
AnyDiscriminatorSqmPath<T> anyDiscriminatorTypeSqmPath,
21582157
HqlParser.ExpressionContext valueExpressionContext) {
21592158
return new SqmAnyDiscriminatorValue<>(
21602159
anyDiscriminatorTypeSqmPath.getNodeType().getPathName(),
@@ -2392,7 +2391,9 @@ public SqmPredicate visitBooleanExpressionPredicate(HqlParser.BooleanExpressionP
23922391
if ( expression.getJavaType() != Boolean.class ) {
23932392
throw new SemanticException( "Non-boolean expression used in predicate context: " + ctx.getText() );
23942393
}
2395-
return new SqmBooleanExpressionPredicate( expression, creationContext.getNodeBuilder() );
2394+
@SuppressWarnings("unchecked")
2395+
final SqmExpression<Boolean> booleanExpression = expression;
2396+
return new SqmBooleanExpressionPredicate( booleanExpression, creationContext.getNodeBuilder() );
23962397
}
23972398

23982399
@Override
@@ -2433,7 +2434,7 @@ public SqmPath<?> visitEntityIdReference(HqlParser.EntityIdReferenceContext ctx)
24332434
if ( ctx.getChildCount() != 5 ) {
24342435
return idPath;
24352436
}
2436-
final HqlParser.PathContinuationContext pathContinuationContext = (HqlParser.PathContinuationContext) ctx.getChild( 4 );
2437+
// final HqlParser.PathContinuationContext pathContinuationContext = (HqlParser.PathContinuationContext) ctx.getChild( 4 );
24372438

24382439
throw new NotYetImplementedFor6Exception( "Path continuation from `id()` reference not yet implemented" );
24392440
}
@@ -2538,7 +2539,7 @@ public SqmFkExpression<?> visitToOneFkReference(HqlParser.ToOneFkReferenceContex
25382539

25392540
}
25402541

2541-
return new SqmFkExpression( (SqmEntityValuedSimplePath<?>) sqmPath, creationContext.getNodeBuilder() );
2542+
return new SqmFkExpression<>( (SqmEntityValuedSimplePath<?>) sqmPath, creationContext.getNodeBuilder() );
25422543
}
25432544

25442545
@Override
@@ -3360,7 +3361,6 @@ private SqmLiteral<? extends Number> hexLiteral(String text) {
33603361
value = Integer.parseUnsignedInt( text, 16 );
33613362
type = resolveExpressibleTypeBasic( Integer.class );
33623363
}
3363-
//noinspection unchecked
33643364
return new SqmLiteral<>(
33653365
value,
33663366
type,
@@ -3557,10 +3557,13 @@ public Object visitGenericFunction(HqlParser.GenericFunctionContext ctx) {
35573557
);
35583558
}
35593559

3560+
//TODO: this fragment of code is extremely fragile and lacking in typesafety!
35603561
final ParseTree argumentChild = ctx.getChild( 2 );
35613562
final List<SqmTypedNode<?>> functionArguments;
35623563
if ( argumentChild instanceof HqlParser.GenericFunctionArgumentsContext ) {
3563-
functionArguments = (List<SqmTypedNode<?>>) argumentChild.accept( this );
3564+
@SuppressWarnings("unchecked")
3565+
List<SqmTypedNode<?>> node = (List<SqmTypedNode<?>>) argumentChild.accept(this);
3566+
functionArguments = node;
35643567
}
35653568
else if ( "*".equals( argumentChild.getText() ) ) {
35663569
functionArguments = Collections.singletonList( new SqmStar( getCreationContext().getNodeBuilder() ) );

0 commit comments

Comments
 (0)