Skip to content

Commit 115f802

Browse files
committed
HHH-19449 clean up TupleType hierarchy
1 parent 36261a9 commit 115f802

File tree

4 files changed

+13
-17
lines changed

4 files changed

+13
-17
lines changed

hibernate-core/src/main/java/org/hibernate/metamodel/model/domain/internal/ArrayTupleType.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,15 @@
1616
import org.hibernate.query.sqm.SqmBindable;
1717
import org.hibernate.query.sqm.tree.domain.SqmDomainType;
1818
import org.hibernate.query.sqm.tuple.TupleType;
19-
import org.hibernate.metamodel.model.domain.ReturnableType;
2019
import org.hibernate.query.sqm.SqmExpressible;
2120
import org.hibernate.type.descriptor.java.JavaType;
2221
import org.hibernate.type.descriptor.java.ObjectArrayJavaType;
2322

2423
/**
2524
* @author Christian Beikov
2625
*/
27-
public class ArrayTupleType implements TupleType<Object[]>,
28-
ReturnableType<Object[]>, SqmDomainType<Object[]>,
29-
MappingModelExpressible<Object[]> {
26+
public class ArrayTupleType
27+
implements TupleType<Object[]>, SqmDomainType<Object[]>, MappingModelExpressible<Object[]> {
3028

3129
private final ObjectArrayJavaType javaType;
3230
private final SqmBindable<?>[] components;

hibernate-core/src/main/java/org/hibernate/query/sqm/tree/domain/SqmDomainType.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,16 @@
66

77
import org.hibernate.Incubating;
88
import org.hibernate.metamodel.model.domain.DomainType;
9-
import org.hibernate.query.BindableType;
109
import org.hibernate.query.sqm.SqmBindable;
1110

1211
@Incubating
1312
public interface SqmDomainType<T>
14-
extends DomainType<T>, SqmBindable<T>, BindableType<T> {
13+
extends DomainType<T>, SqmBindable<T> {
14+
1515
@Override
16-
SqmDomainType<T> getSqmType();
16+
default Class<T> getJavaType() {
17+
return SqmBindable.super.getJavaType();
18+
}
1719

1820
@Override
1921
default String getTypeName() {
@@ -23,7 +25,4 @@ default String getTypeName() {
2325
default int getTupleLength() {
2426
return 1;
2527
}
26-
27-
@Override
28-
Class<T> getJavaType();
2928
}

hibernate-core/src/main/java/org/hibernate/query/sqm/tuple/TupleType.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,17 @@
44
*/
55
package org.hibernate.query.sqm.tuple;
66

7-
import java.util.List;
8-
7+
import org.hibernate.metamodel.model.domain.ReturnableType;
98
import org.hibernate.query.sqm.SqmBindable;
10-
import org.hibernate.query.sqm.SqmExpressible;
9+
10+
import java.util.List;
1111

1212
/**
1313
* Describes any structural type without a direct java type representation.
1414
*
1515
* @author Christian Beikov
1616
*/
17-
public interface TupleType<J> extends SqmExpressible<J> {
17+
public interface TupleType<J> extends ReturnableType<J> {
1818

1919
int componentCount();
2020
String getComponentName(int index);

hibernate-core/src/main/java/org/hibernate/query/sqm/tuple/internal/AnonymousTupleType.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import org.hibernate.query.sqm.tree.domain.SqmDomainType;
2424
import org.hibernate.query.sqm.tree.domain.SqmPluralPersistentAttribute;
2525
import org.hibernate.query.sqm.tuple.TupleType;
26-
import org.hibernate.metamodel.model.domain.ReturnableType;
2726
import org.hibernate.query.SemanticException;
2827
import org.hibernate.query.sqm.SqmExpressible;
2928
import org.hibernate.query.sqm.tree.domain.SqmPath;
@@ -46,7 +45,7 @@
4645
*/
4746
@Incubating
4847
public class AnonymousTupleType<T>
49-
implements TupleType<T>, SqmDomainType<T>, ReturnableType<T>, SqmPathSource<T> {
48+
implements TupleType<T>, SqmDomainType<T>, SqmPathSource<T> {
5049

5150
private final JavaType<T> javaTypeDescriptor;
5251
private final @Nullable NavigablePath[] componentSourcePaths;
@@ -277,7 +276,7 @@ public Class<T> getBindableJavaType() {
277276

278277
@Override
279278
public Class<T> getJavaType() {
280-
return getBindableJavaType();
279+
return SqmDomainType.super.getJavaType();
281280
}
282281

283282
@Override

0 commit comments

Comments
 (0)