Skip to content

Commit 7d1d6d0

Browse files
committed
use a switch expression
1 parent 2fe4625 commit 7d1d6d0

File tree

1 file changed

+21
-35
lines changed

1 file changed

+21
-35
lines changed

hibernate-core/src/main/java/org/hibernate/boot/model/IdentifierGeneratorDefinition.java

Lines changed: 21 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,10 @@
66

77
import jakarta.persistence.GenerationType;
88
import org.hibernate.AnnotationException;
9-
import org.hibernate.AssertionFailure;
109
import org.hibernate.Internal;
1110
import org.hibernate.boot.models.annotations.internal.SequenceGeneratorJpaAnnotation;
1211
import org.hibernate.boot.models.annotations.internal.TableGeneratorJpaAnnotation;
1312
import org.hibernate.id.IdentifierGenerator;
14-
import org.hibernate.internal.util.StringHelper;
1513
import org.hibernate.models.spi.TypeDetails;
1614

1715
import java.io.Serializable;
@@ -27,6 +25,7 @@
2725
import static org.hibernate.boot.model.internal.GeneratorStrategies.generatorStrategy;
2826
import static org.hibernate.boot.models.JpaAnnotations.SEQUENCE_GENERATOR;
2927
import static org.hibernate.boot.models.JpaAnnotations.TABLE_GENERATOR;
28+
import static org.hibernate.internal.util.StringHelper.isNotEmpty;
3029
import static org.hibernate.internal.util.collections.CollectionHelper.isEmpty;
3130

3231
/**
@@ -49,7 +48,9 @@ public IdentifierGeneratorDefinition(
4948
final Map<String, String> parameters) {
5049
this.name = name;
5150
this.strategy = strategy;
52-
this.parameters = isEmpty( parameters ) ? emptyMap() : unmodifiableMap( parameters );
51+
this.parameters = isEmpty( parameters )
52+
? emptyMap()
53+
: unmodifiableMap( parameters );
5354
}
5455

5556
public IdentifierGeneratorDefinition(
@@ -98,52 +99,37 @@ public static IdentifierGeneratorDefinition createImplicit(
9899
// If we were unable to locate an actual matching named generator assume
99100
// a sequence/table of the given name, make one based on GenerationType.
100101

101-
if ( generationType == null ) {
102-
generationType = GenerationType.SEQUENCE;
103-
}
104-
105-
switch ( generationType ) {
106-
case SEQUENCE:
107-
return buildSequenceGeneratorDefinition( name );
108-
case TABLE:
109-
return buildTableGeneratorDefinition( name );
110-
case IDENTITY:
111-
throw new AnnotationException(
112-
"@GeneratedValue annotation specified 'strategy=IDENTITY' and 'generator'"
113-
+ " but the generator name is unnecessary"
114-
);
115-
case UUID:
116-
throw new AnnotationException(
117-
"@GeneratedValue annotation specified 'strategy=UUID' and 'generator'"
118-
+ " but the generator name is unnecessary"
119-
);
120-
case AUTO:
121-
return new IdentifierGeneratorDefinition(
122-
name,
123-
generatorStrategy( generationType, generatorName, idType ),
124-
singletonMap( IdentifierGenerator.GENERATOR_NAME, name )
125-
);
126-
default:
127-
throw new AssertionFailure( "unknown generator type: " + generationType );
128-
}
102+
return switch ( generationType == null ? GenerationType.SEQUENCE : generationType ) {
103+
case SEQUENCE -> buildSequenceGeneratorDefinition( name );
104+
case TABLE -> buildTableGeneratorDefinition( name );
105+
case AUTO -> new IdentifierGeneratorDefinition(
106+
name,
107+
generatorStrategy( generationType, generatorName, idType ),
108+
singletonMap( IdentifierGenerator.GENERATOR_NAME, name )
109+
);
110+
case IDENTITY, UUID -> throw new AnnotationException(
111+
"@GeneratedValue annotation specified 'strategy=" + generationType
112+
+ "' and 'generator' but the generator name is unnecessary"
113+
);
114+
};
129115
}
130116

131117
private static IdentifierGeneratorDefinition buildTableGeneratorDefinition(String name) {
132-
final Builder builder = new Builder();
133118
final TableGeneratorJpaAnnotation tableGeneratorUsage = TABLE_GENERATOR.createUsage( null );
134-
if ( StringHelper.isNotEmpty( name ) ) {
119+
if ( isNotEmpty( name ) ) {
135120
tableGeneratorUsage.name( name );
136121
}
122+
final Builder builder = new Builder();
137123
interpretTableGenerator( tableGeneratorUsage, builder );
138124
return builder.build();
139125
}
140126

141127
private static IdentifierGeneratorDefinition buildSequenceGeneratorDefinition(String name) {
142-
final Builder builder = new Builder();
143128
final SequenceGeneratorJpaAnnotation sequenceGeneratorUsage = SEQUENCE_GENERATOR.createUsage( null );
144-
if ( StringHelper.isNotEmpty( name ) ) {
129+
if ( isNotEmpty( name ) ) {
145130
sequenceGeneratorUsage.name( name );
146131
}
132+
final Builder builder = new Builder();
147133
interpretSequenceGenerator( sequenceGeneratorUsage, builder );
148134
return builder.build();
149135
}

0 commit comments

Comments
 (0)