Skip to content

Commit c2da73e

Browse files
SentryManrbygrave
andauthored
Generate Value Types when on Valhalla (#249)
* generate value types * Format, remove unused method --------- Co-authored-by: Rob Bygrave <robin.bygrave@gmail.com>
1 parent f2a585f commit c2da73e

File tree

4 files changed

+27
-23
lines changed

4 files changed

+27
-23
lines changed

validator-generator/src/main/java/io/avaje/validation/generator/SimpleAdapterWriter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ private void writeClassStart() {
9292
writer.append("@ConstraintAdapter(%s.class)", beanReader.contraintTarget()).eol();
9393
}
9494

95-
writer.append("public final class %sValidationAdapter implements ValidationAdapter<%s> ", adapterShortName, beanReader.shortName());
95+
writer.append("public final %sclass %sValidationAdapter implements ValidationAdapter<%s> ", Util.valhalla(), adapterShortName, beanReader.shortName());
9696
writer.append("{").eol().eol();
9797
}
9898

validator-generator/src/main/java/io/avaje/validation/generator/SimpleComponentWriter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ private void writeClassStart() {
117117
writeMetaDataEntry(all);
118118
writer.append("})").eol();
119119

120-
writer.append("public class %s implements GeneratedComponent {", shortName).eol().eol();
120+
writer.append("public %sclass %s implements GeneratedComponent {", Util.valhalla(), shortName).eol().eol();
121121
}
122122

123123
private void writeMetaDataEntry(List<String> entries) {

validator-generator/src/main/java/io/avaje/validation/generator/SimpleParamBeanWriter.java

Lines changed: 15 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -19,24 +19,18 @@ final class SimpleParamBeanWriter {
1919
SimpleParamBeanWriter(ValidMethodReader beanReader) {
2020
this.beanReader = beanReader;
2121
final var method = beanReader.getBeanType();
22-
2322
this.adapterPackage = ProcessorUtils.packageOf(method.getEnclosingElement().asType().toString());
24-
adapterFullName =
25-
adapterPackage
26-
+ "."
27-
+ method
28-
.getSimpleName()
29-
.toString()
30-
.transform(str -> str.substring(0, 1).toUpperCase() + str.substring(1))
31-
+ "ParamProvider";
23+
this.adapterFullName = adapterPackage
24+
+ "."
25+
+ method
26+
.getSimpleName()
27+
.toString()
28+
.transform(str -> str.substring(0, 1).toUpperCase() + str.substring(1))
29+
+ "ParamProvider";
3230

3331
this.adapterShortName = Util.shortName(adapterFullName);
3432
}
3533

36-
String fullName() {
37-
return adapterFullName;
38-
}
39-
4034
private Writer createFileWriter() throws IOException {
4135
final JavaFileObject jfo = createSourceFile(adapterFullName);
4236
return jfo.openWriter();
@@ -62,14 +56,14 @@ private void writePackage() {
6256

6357
private void writeClassStart() {
6458
writer
65-
.append(
66-
"""
67-
@Generated("avaje-validator-generator")
68-
@Named
69-
@%s
70-
public final class %s implements MethodAdapterProvider {""",
71-
Util.shortName(diAnnotation()), adapterShortName)
72-
.eol();
59+
.append(
60+
"""
61+
@Generated("avaje-validator-generator")
62+
@Named
63+
@%s
64+
public final %sclass %s implements MethodAdapterProvider {""",
65+
Util.shortName(diAnnotation()), Util.valhalla(), adapterShortName)
66+
.eol();
7367
}
7468

7569
private void writeMethods() {

validator-generator/src/main/java/io/avaje/validation/generator/Util.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,4 +158,14 @@ static boolean isPublic(Element element) {
158158
}
159159
return !ProcessingContext.isImported(element);
160160
}
161+
162+
static String valhalla() {
163+
try {
164+
if (Modifier.valueOf("VALUE") != null && APContext.previewEnabled()) return "value ";
165+
} catch (IllegalArgumentException e) {
166+
// no valhalla
167+
}
168+
return "";
169+
}
170+
161171
}

0 commit comments

Comments
 (0)