Skip to content

Commit 2ec3b1e

Browse files
mbelladesebersole
authored andcommitted
#61 - Correct and simplify TypeDetails#isResolved()
1 parent a30b969 commit 2ec3b1e

File tree

3 files changed

+7
-42
lines changed

3 files changed

+7
-42
lines changed

src/main/java/org/hibernate/models/internal/IsBoundTypeSwitch.java

Lines changed: 0 additions & 23 deletions
This file was deleted.

src/main/java/org/hibernate/models/internal/IsResolvedTypeSwitch.java

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,6 @@
2121
import org.hibernate.models.spi.VoidTypeDetails;
2222
import org.hibernate.models.spi.WildcardTypeDetails;
2323

24-
import static org.hibernate.models.internal.IsBoundTypeSwitch.IS_BOUND_SWITCH;
25-
2624
/**
2725
* TypeDetailsSwitch implementation checking whether a type is resolved (all of its bounds are known)
2826
*
@@ -31,10 +29,6 @@
3129
public class IsResolvedTypeSwitch implements TypeDetailsSwitch<Boolean> {
3230
public static final IsResolvedTypeSwitch IS_RESOLVED_SWITCH = new IsResolvedTypeSwitch();
3331

34-
private static boolean isBound(TypeDetails typeDetails, SourceModelBuildingContext buildingContext) {
35-
return TypeDetailsSwitch.switchType( typeDetails, IS_BOUND_SWITCH, buildingContext );
36-
}
37-
3832
@Override
3933
public Boolean caseClass(ClassTypeDetails classType, SourceModelBuildingContext buildingContext) {
4034
return true;
@@ -52,7 +46,7 @@ public Boolean caseVoid(VoidTypeDetails voidType, SourceModelBuildingContext bui
5246

5347
@Override
5448
public Boolean caseArrayType(ArrayTypeDetails arrayType, SourceModelBuildingContext buildingContext) {
55-
return isBound( arrayType.getConstituentType(), buildingContext );
49+
return arrayType.getConstituentType().isResolved();
5650
}
5751

5852
@Override
@@ -71,24 +65,19 @@ public Boolean caseParameterizedType(
7165
@Override
7266
public Boolean caseWildcardType(WildcardTypeDetails wildcardType, SourceModelBuildingContext buildingContext) {
7367
final TypeDetails bound = wildcardType.getBound();
74-
return bound != null && ( bound.getTypeKind() == TypeDetails.Kind.CLASS || isBound( bound, buildingContext ) );
68+
return bound != null && bound.isResolved();
7569
}
7670

7771
@Override
7872
public Boolean caseTypeVariable(TypeVariableDetails typeVariable, SourceModelBuildingContext buildingContext) {
79-
for ( TypeDetails bound : typeVariable.getBounds() ) {
80-
if ( !isBound( bound, buildingContext ) ) {
81-
return false;
82-
}
83-
}
84-
return true;
73+
return false;
8574
}
8675

8776
@Override
8877
public Boolean caseTypeVariableReference(
8978
TypeVariableReferenceDetails typeVariableReference,
9079
SourceModelBuildingContext buildingContext) {
91-
return true;
80+
return false;
9281
}
9382

9483
@Override

src/test/java/org/hibernate/models/generics/SimpleTypeVariableTests.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,16 +60,15 @@ void testParameterizedClass(Index index) {
6060
assertThat( idFieldType.isImplementor( Number.class ) ).isTrue();
6161
assertThat( idFieldType.isImplementor( Object.class ) ).isTrue();
6262
assertThat( idFieldType.isImplementor( String.class ) ).isFalse();
63-
// resolved because we know it is a Number
64-
assertThat( idFieldType.isResolved() ).isTrue();
65-
assertThat( idFieldType.determineRelativeType( classDetails ).isResolved() ).isTrue();
63+
assertThat( idFieldType.isResolved() ).isFalse();
64+
assertThat( idFieldType.determineRelativeType( classDetails ).isResolved() ).isFalse();
6665

6766
final TypeDetails idFieldConcreteType = idField.resolveRelativeType( classDetails );
6867
assertThat( idFieldConcreteType ).isInstanceOf( TypeVariableDetails.class );
6968
final TypeVariableDetails typeVariable = idFieldConcreteType.asTypeVariable();
7069
assertThat( typeVariable.getBounds() ).hasSize( 1 );
7170
assertThat( typeVariable.getBounds().get( 0 ).asClassType().getClassDetails().toJavaClass() ).isEqualTo( Number.class );
72-
assertThat( idFieldConcreteType.isResolved() ).isTrue();
71+
assertThat( idFieldConcreteType.isResolved() ).isFalse();
7372

7473
final ClassBasedTypeDetails classBasedTypeDetails = idField.resolveRelativeClassType( classDetails );
7574
assertThat( classBasedTypeDetails.getClassDetails().toJavaClass() ).isEqualTo( Number.class );

0 commit comments

Comments
 (0)