Skip to content

Commit fa4cd9e

Browse files
committed
simple refactorings to Processor code
1 parent 2efcb1d commit fa4cd9e

17 files changed

+92
-55
lines changed

tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/AbstractAnnotatedMethod.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,6 @@
1313

1414
import static java.util.Collections.emptyList;
1515
import static java.util.stream.Collectors.toList;
16-
import static org.hibernate.processor.annotation.AnnotationMetaEntity.usingReactiveSession;
17-
import static org.hibernate.processor.annotation.AnnotationMetaEntity.usingReactiveSessionAccess;
18-
import static org.hibernate.processor.annotation.AnnotationMetaEntity.usingStatelessSession;
1916
import static org.hibernate.processor.util.Constants.ENTITY_MANAGER;
2017
import static org.hibernate.processor.util.Constants.OBJECTS;
2118
import static org.hibernate.processor.util.TypeUtils.hasAnnotation;
@@ -50,15 +47,15 @@ boolean isUsingEntityManager() {
5047
}
5148

5249
boolean isUsingStatelessSession() {
53-
return usingStatelessSession(sessionType);
50+
return annotationMetaEntity.isStatelessSession();
5451
}
5552

5653
boolean isReactive() {
57-
return usingReactiveSession(sessionType);
54+
return annotationMetaEntity.isReactive();
5855
}
5956

6057
boolean isReactiveSessionAccess() {
61-
return usingReactiveSessionAccess(sessionType);
58+
return annotationMetaEntity.isReactiveSessionAccess();
6259
}
6360

6461
String localSessionName() {

tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/AbstractQueryMethod.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@
1010
import javax.lang.model.element.ExecutableElement;
1111
import java.util.List;
1212
import java.util.Set;
13-
import java.util.stream.Collectors;
1413

1514
import static java.util.stream.Collectors.toList;
1615
import static org.hibernate.processor.util.Constants.BOXED_VOID;
16+
import static org.hibernate.processor.util.Constants.COLLECTORS;
1717
import static org.hibernate.processor.util.Constants.HIB_KEYED_PAGE;
1818
import static org.hibernate.processor.util.Constants.HIB_KEYED_RESULT_LIST;
1919
import static org.hibernate.processor.util.Constants.HIB_ORDER;
@@ -28,6 +28,7 @@
2828
import static org.hibernate.processor.util.Constants.JD_PAGE_REQUEST;
2929
import static org.hibernate.processor.util.Constants.JD_SORT;
3030
import static org.hibernate.processor.util.Constants.LIST;
31+
import static org.hibernate.processor.util.Constants.NONNULL;
3132
import static org.hibernate.processor.util.Constants.OPTIONAL;
3233
import static org.hibernate.processor.util.Constants.QUERY;
3334
import static org.hibernate.processor.util.Constants.SESSION_TYPES;
@@ -177,7 +178,7 @@ void notNull(StringBuilder declaration) {
177178
if ( addNonnullAnnotation ) {
178179
declaration
179180
.append('@')
180-
.append(annotationMetaEntity.importType("jakarta.annotation.Nonnull"))
181+
.append(annotationMetaEntity.importType(NONNULL))
181182
.append(' ');
182183
}
183184
}
@@ -363,7 +364,7 @@ void makeKeyedPage(StringBuilder declaration, List<String> paramTypes) {
363364
annotationMetaEntity.staticImport(HIB_ORDER, "by");
364365
annotationMetaEntity.staticImport(HIB_PAGE, "page");
365366
annotationMetaEntity.staticImport("org.hibernate.query.KeyedPage.KeyInterpretation", "*");
366-
annotationMetaEntity.staticImport(Collectors.class.getName(), "toList");
367+
annotationMetaEntity.staticImport(COLLECTORS, "toList");
367368
if ( returnTypeName == null ) {
368369
throw new AssertionFailure("entity class cannot be null");
369370
}

tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/AnnotationMetaAttribute.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
import javax.lang.model.element.Element;
1111

12+
import static org.hibernate.processor.util.Constants.STRING;
1213
import static org.hibernate.processor.util.StringUtil.getUpperUnderscoreCaseFromLowerCamelCase;
1314
import static org.hibernate.processor.util.TypeUtils.propertyName;
1415

@@ -70,7 +71,7 @@ public String getAttributeNameDeclarationString(){
7071
.append(getPropertyName())
7172
.append( "\n **/\n" )
7273
.append("public static final ")
73-
.append(parent.importType(String.class.getName()))
74+
.append(parent.importType(STRING))
7475
.append(' ')
7576
.append(getUpperUnderscoreCaseFromLowerCamelCase(getPropertyName()))
7677
.append(" = ")

tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/AnnotationMetaCollection.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* @author Emmanuel Bernard
1515
*/
1616
public class AnnotationMetaCollection extends AnnotationMetaAttribute implements MetaCollection {
17-
private String collectionType;
17+
private final String collectionType;
1818

1919
public AnnotationMetaCollection(AnnotationMetaEntity parent, Element element, String collectionType, String elementType) {
2020
super( parent, element, elementType );

tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/AnnotationMetaEntity.java

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -517,7 +517,7 @@ else if ( declaredType == parameterType
517517
}
518518

519519
private void validateStatelessSessionType() {
520-
if ( !usingStatelessSession(sessionType) ) {
520+
if ( !isStatelessSession() ) {
521521
message( element,
522522
"repository must be backed by a 'StatelessSession'",
523523
Diagnostic.Kind.ERROR );
@@ -645,7 +645,7 @@ else if ( element.getKind() == ElementKind.INTERFACE
645645

646646
private boolean needsEventBus() {
647647
return jakartaDataRepository
648-
&& !usingReactiveSession( sessionType ) // non-reactive
648+
&& !isReactive() // non-reactive
649649
&& context.isDataEventPackageAvailable() // events
650650
&& context.addInjectAnnotation() // @nject
651651
&& context.addDependentAnnotation(); // CDI
@@ -700,11 +700,18 @@ boolean needsDefaultConstructor() {
700700
return null;
701701
}
702702

703-
@Override
703+
public boolean isStatelessSession() {
704+
return usingStatelessSession(sessionType);
705+
}
706+
704707
public boolean isReactive() {
705708
return usingReactiveSession(sessionType);
706709
}
707710

711+
public boolean isReactiveSessionAccess() {
712+
return usingReactiveSessionAccess(sessionType);
713+
}
714+
708715
private boolean isPanacheType(TypeElement type) {
709716
return context.usesQuarkusOrm() && isOrmPanacheType( type )
710717
|| context.usesQuarkusReactive() && isReactivePanacheType( type );
@@ -1195,7 +1202,7 @@ else if ( kind == TypeKind.DECLARED ) {
11951202
private TypeMirror unUniIfPossible(ExecutableElement method, TypeMirror returnType) {
11961203
final TypeMirror result = ununi( returnType );
11971204
if ( repository ) {
1198-
if ( usingReactiveSession( sessionType ) ) {
1205+
if ( isReactive() ) {
11991206
if ( result == returnType ) {
12001207
message( method, "backed by a reactive session, must return 'Uni'", Diagnostic.Kind.ERROR );
12011208
}
@@ -1464,7 +1471,7 @@ private static boolean isVoid(TypeMirror returnType) {
14641471
case DECLARED:
14651472
final DeclaredType declaredType = (DeclaredType) returnType;
14661473
final TypeElement typeElement = (TypeElement) declaredType.asElement();
1467-
return typeElement.getQualifiedName().contentEquals(Void.class.getName());
1474+
return typeElement.getQualifiedName().contentEquals(VOID);
14681475
default:
14691476
return false;
14701477
}
@@ -2016,7 +2023,7 @@ private void createSingleParameterFinder(
20162023
}
20172024
}
20182025

2019-
private FieldType pickStrategy(FieldType fieldType, String sessionType, List<String> profiles) {
2026+
private static FieldType pickStrategy(FieldType fieldType, String sessionType, List<String> profiles) {
20202027
if ( ( usingStatelessSession(sessionType) || usingReactiveSession(sessionType) )
20212028
&& !profiles.isEmpty() ) {
20222029
// no support for passing fetch profiles i.e. IdentifierLoadAccess
@@ -2063,7 +2070,7 @@ enum FieldType {
20632070
}
20642071
else if ( containsAnnotation( param, PATTERN ) ) {
20652072
final AnnotationMirror mirror = getAnnotationMirror(param, PATTERN);
2066-
if ( mirror!=null && !typeNameEquals(param.asType(), String.class.getName()) ) {
2073+
if ( mirror!=null && !typeNameEquals(param.asType(), STRING) ) {
20672074
message( param, mirror,
20682075
"parameter annotated '@Pattern' is not of type 'String'",
20692076
Diagnostic.Kind.ERROR );
@@ -2537,7 +2544,7 @@ private void validateUpdateHql(
25372544
@Nullable TypeMirror returnType,
25382545
AnnotationMirror mirror,
25392546
AnnotationValue value) {
2540-
boolean reactive = usingReactiveSession( sessionType );
2547+
final boolean reactive = isReactive();
25412548
if ( !isValidUpdateReturnType( returnType, method, reactive ) ) {
25422549
message( method, mirror, value,
25432550
"return type of mutation query method must be "
@@ -3095,20 +3102,20 @@ private static boolean hasParameter(String hql, int i, String param) {
30953102
.matcher(hql).matches();
30963103
}
30973104

3098-
static boolean usingReactiveSession(String sessionType) {
3105+
private static boolean usingReactiveSession(String sessionType) {
30993106
return MUTINY_SESSION.equals(sessionType)
31003107
|| MUTINY_STATELESS_SESSION.equals(sessionType)
31013108
|| UNI_MUTINY_SESSION.equals(sessionType)
31023109
|| UNI_MUTINY_STATELESS_SESSION.equals(sessionType);
31033110
}
31043111

3105-
static boolean usingStatelessSession(String sessionType) {
3112+
private static boolean usingStatelessSession(String sessionType) {
31063113
return HIB_STATELESS_SESSION.equals(sessionType)
31073114
|| MUTINY_STATELESS_SESSION.equals(sessionType)
31083115
|| UNI_MUTINY_STATELESS_SESSION.equals(sessionType);
31093116
}
31103117

3111-
static boolean usingReactiveSessionAccess(String sessionType) {
3118+
private static boolean usingReactiveSessionAccess(String sessionType) {
31123119
return UNI_MUTINY_SESSION.equals(sessionType)
31133120
|| UNI_MUTINY_STATELESS_SESSION.equals(sessionType);
31143121
}

tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/AnnotationMetaType.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import org.hibernate.processor.model.MetaAttribute;
88
import org.hibernate.processor.model.Metamodel;
99
import org.hibernate.processor.util.Constants;
10-
import org.hibernate.metamodel.model.domain.ManagedDomainType;
1110

1211
import static org.hibernate.processor.util.TypeUtils.hasAnnotation;
1312

@@ -53,7 +52,7 @@ public String getAttributeNameDeclarationString() {
5352

5453
@Override
5554
public String getMetaType() {
56-
return ManagedDomainType.class.getName();
55+
return "org.hibernate.metamodel.model.domain.ManagedDomainType";
5756
}
5857

5958
@Override

tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/DataAnnotationMetaAttribute.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
import javax.lang.model.element.Element;
1212

13+
import static org.hibernate.processor.util.Constants.STRING;
1314
import static org.hibernate.processor.util.StringUtil.getUpperUnderscoreCaseFromLowerCamelCase;
1415
import static org.hibernate.processor.util.TypeUtils.propertyName;
1516

@@ -44,7 +45,7 @@ public boolean hasStringAttribute() {
4445
}
4546

4647
private boolean isTextual() {
47-
return String.class.getName().equals(type);
48+
return STRING.equals(type);
4849
}
4950

5051
@Override
@@ -81,7 +82,7 @@ public String getAttributeNameDeclarationString(){
8182
.append("#")
8283
.append( getPropertyName().replace('.','_') )
8384
.append( "\n **/\n" )
84-
.append(parent.importType(String.class.getName()))
85+
.append(parent.importType(STRING))
8586
.append(" ")
8687
.append(fieldName())
8788
.append(" = ")

tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/DefaultConstructor.java

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,20 +9,23 @@
99
import org.hibernate.processor.model.Metamodel;
1010
import org.hibernate.processor.util.Constants;
1111

12-
import static org.hibernate.processor.annotation.AnnotationMetaEntity.usingReactiveSession;
1312
import static org.hibernate.processor.util.Constants.ENTITY_MANAGER_FACTORY;
1413
import static org.hibernate.processor.util.Constants.HIB_SESSION_FACTORY;
14+
import static org.hibernate.processor.util.Constants.INJECT;
1515
import static org.hibernate.processor.util.Constants.MUTINY_SESSION;
1616
import static org.hibernate.processor.util.Constants.MUTINY_SESSION_FACTORY;
1717
import static org.hibernate.processor.util.Constants.MUTINY_STATELESS_SESSION;
18+
import static org.hibernate.processor.util.Constants.PERSISTENCE_UNIT;
19+
import static org.hibernate.processor.util.Constants.POST_CONSTRUCT;
20+
import static org.hibernate.processor.util.Constants.PRE_DESTROY;
1821

1922
/**
2023
* Used by the container to instantiate a Jakarta Data repository.
2124
*
2225
* @author Gavin King
2326
*/
2427
public class DefaultConstructor implements MetaAttribute {
25-
private final Metamodel annotationMetaEntity;
28+
private final AnnotationMetaEntity annotationMetaEntity;
2629
private final String constructorName;
2730
private final String methodName;
2831
private final String sessionTypeName;
@@ -31,7 +34,7 @@ public class DefaultConstructor implements MetaAttribute {
3134
private final boolean addInjectAnnotation;
3235

3336
public DefaultConstructor(
34-
Metamodel annotationMetaEntity,
37+
AnnotationMetaEntity annotationMetaEntity,
3538
String constructorName,
3639
String methodName,
3740
String sessionTypeName,
@@ -48,7 +51,7 @@ public DefaultConstructor(
4851
}
4952

5053
private boolean isReactive() {
51-
return usingReactiveSession(sessionTypeName);
54+
return annotationMetaEntity.isReactive();
5255
}
5356

5457
@Override
@@ -69,7 +72,7 @@ public String getAttributeDeclarationString() {
6972
if ( annotationMetaEntity.getSuperTypeElement() == null ) {
7073
declaration
7174
.append("@")
72-
.append(annotationMetaEntity.importType("jakarta.persistence.PersistenceUnit"));
75+
.append(annotationMetaEntity.importType(PERSISTENCE_UNIT));
7376
if ( dataStore != null ) {
7477
declaration
7578
.append("(unitName=\"")
@@ -82,15 +85,16 @@ public String getAttributeDeclarationString() {
8285
.append(" ")
8386
.append(sessionVariableName)
8487
.append("Factory;\n\n");
88+
final String sessionFactoryType = isReactive() ? MUTINY_SESSION_FACTORY : HIB_SESSION_FACTORY;
8589
declaration.append('@')
86-
.append(annotationMetaEntity.importType("jakarta.annotation.PostConstruct"))
90+
.append(annotationMetaEntity.importType(POST_CONSTRUCT))
8791
.append("\nprivate void openSession() {")
8892
.append("\n\t")
8993
.append(sessionVariableName)
9094
.append(" = ")
9195
.append(sessionVariableName)
9296
.append("Factory.unwrap(")
93-
.append(annotationMetaEntity.importType(isReactive() ? MUTINY_SESSION_FACTORY : HIB_SESSION_FACTORY))
97+
.append(annotationMetaEntity.importType( sessionFactoryType ))
9498
.append(".class).openStatelessSession()");
9599
if ( MUTINY_SESSION.equals(sessionTypeName)
96100
|| MUTINY_STATELESS_SESSION.equals(sessionTypeName) ) {
@@ -103,7 +107,7 @@ public String getAttributeDeclarationString() {
103107
// TODO: is it a problem that we never close the session?
104108
if ( !isReactive() ) {
105109
declaration.append('@')
106-
.append(annotationMetaEntity.importType("jakarta.annotation.PreDestroy"))
110+
.append(annotationMetaEntity.importType(PRE_DESTROY))
107111
.append("\nprivate void closeSession() {")
108112
.append("\n\t")
109113
.append(sessionVariableName)
@@ -124,7 +128,7 @@ private void inject(StringBuilder declaration) {
124128
if ( addInjectAnnotation ) {
125129
declaration
126130
.append('@')
127-
.append(annotationMetaEntity.importType("jakarta.inject.Inject"))
131+
.append(annotationMetaEntity.importType(INJECT))
128132
.append('\n');
129133
}
130134
}

tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/EventField.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,12 @@
88
import org.hibernate.processor.model.Metamodel;
99
import org.hibernate.processor.util.Constants;
1010

11+
import static org.hibernate.processor.util.Constants.INJECT;
12+
import static org.hibernate.processor.util.Constants.JD_LIFECYCLE_EVENT;
13+
1114

1215
/**
13-
* Used by the container to instantiate a Jakarta Data repository.
16+
* Holds a reference to the CDI {@code Event} object.
1417
*
1518
* @author Gavin King
1619
*/
@@ -34,8 +37,8 @@ public boolean hasStringAttribute() {
3437

3538
@Override
3639
public String getAttributeDeclarationString() {
37-
annotationMetaEntity.importType("jakarta.inject.Inject");
38-
annotationMetaEntity.importType("jakarta.data.event.LifecycleEvent");
40+
annotationMetaEntity.importType(INJECT);
41+
annotationMetaEntity.importType(JD_LIFECYCLE_EVENT);
3942
return "\n@Inject\nprivate Event<? super LifecycleEvent<?>> event;";
4043
}
4144

tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/LifecycleMethod.java

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,12 @@
1010
import java.util.Set;
1111

1212
import static java.lang.Character.toUpperCase;
13+
import static org.hibernate.processor.util.Constants.EVENT;
14+
import static org.hibernate.processor.util.Constants.INJECT;
15+
import static org.hibernate.processor.util.Constants.JD_LIFECYCLE_EVENT;
1316
import static org.hibernate.processor.util.Constants.LIST;
17+
import static org.hibernate.processor.util.Constants.NONNULL;
18+
import static org.hibernate.processor.util.Constants.TYPE_LITERAL;
1419
import static org.hibernate.processor.util.Constants.UNI;
1520

1621
public class LifecycleMethod extends AbstractAnnotatedMethod {
@@ -109,10 +114,10 @@ private void fireEvents(StringBuilder declaration, String prefix) {
109114
}
110115

111116
private void fireEvent(StringBuilder declaration, String entityName, String eventType) {
112-
annotationMetaEntity.importType( "jakarta.data.event.LifecycleEvent" );
113-
annotationMetaEntity.importType( "jakarta.enterprise.util.TypeLiteral" );
114-
annotationMetaEntity.importType( "jakarta.enterprise.event.Event" );
115-
annotationMetaEntity.importType( "jakarta.inject.Inject" );
117+
annotationMetaEntity.importType( JD_LIFECYCLE_EVENT );
118+
annotationMetaEntity.importType( TYPE_LITERAL );
119+
annotationMetaEntity.importType( EVENT );
120+
annotationMetaEntity.importType( INJECT );
116121
annotationMetaEntity.importType( "jakarta.data.event." + eventType );
117122
if (parameterKind != ParameterKind.NORMAL) {
118123
declaration.append( "\t" );
@@ -354,7 +359,7 @@ private void notNull(StringBuilder declaration) {
354359
if ( addNonnullAnnotation ) {
355360
declaration
356361
.append('@')
357-
.append(annotationMetaEntity.importType("jakarta.annotation.Nonnull"))
362+
.append(annotationMetaEntity.importType(NONNULL))
358363
.append(' ');
359364
}
360365
}

0 commit comments

Comments
 (0)