From 6ecb5b5cd8effd97853118e4bc201aab780970fb Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Wed, 29 Sep 2021 14:03:56 +0200 Subject: [PATCH] [jOOQ/jOOQ#12457] Generate some Javadoc on implicit join path navigation methods --- .../src/main/java/org/jooq/codegen/JavaGenerator.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/jOOQ-codegen/src/main/java/org/jooq/codegen/JavaGenerator.java b/jOOQ-codegen/src/main/java/org/jooq/codegen/JavaGenerator.java index 4ded770940..c75e53632d 100644 --- a/jOOQ-codegen/src/main/java/org/jooq/codegen/JavaGenerator.java +++ b/jOOQ-codegen/src/main/java/org/jooq/codegen/JavaGenerator.java @@ -39,6 +39,8 @@ package org.jooq.codegen; import static java.util.Arrays.asList; +import static java.util.stream.Collectors.counting; +import static java.util.stream.Collectors.groupingBy; // ... // ... import static org.jooq.SQLDialect.MYSQL; @@ -5933,6 +5935,7 @@ public class JavaGenerator extends AbstractGenerator { } } + Map pathCounts = foreignKeys.stream().collect(groupingBy(ForeignKeyDefinition::getReferencedTable, counting())); for (ForeignKeyDefinition foreignKey : foreignKeys) { final String keyFullId = kotlin ? out.ref(getStrategy().getFullJavaIdentifier(foreignKey)) @@ -5940,6 +5943,12 @@ public class JavaGenerator extends AbstractGenerator { final String referencedTableClassName = out.ref(getStrategy().getFullJavaClassName(foreignKey.getReferencedTable())); final String keyMethodName = out.ref(getStrategy().getJavaMethodName(foreignKey)); + out.javadoc( + "Get the implicit join path to the " + foreignKey.getReferencedTable().getQualifiedName() + " table" + + (pathCounts.get(foreignKey.getReferencedTable()) > 1 ? ", via the " + foreignKey.getInputName() + " key" : "") + + "." + ); + if (scala) { out.println("%slazy val %s: %s = { new %s(this, %s) }", visibility(), scalaWhitespaceSuffix(keyMethodName), referencedTableClassName, referencedTableClassName, keyFullId); } @@ -5952,7 +5961,6 @@ public class JavaGenerator extends AbstractGenerator { out.println("}"); } else { - out.println(); out.println("%s%s %s() {", visibility(), referencedTableClassName, keyMethodName); out.println("if (_%s == null)", keyMethodName); out.println("_%s = new %s(this, %s);", keyMethodName, referencedTableClassName, keyFullId);