From 91fde41fb974d23fc9d2008c4e34d17b497cd192 Mon Sep 17 00:00:00 2001 From: Knut Wannheden Date: Fri, 20 Dec 2019 11:19:04 +0100 Subject: [PATCH] [jOOQ/jOOQ#9272] Avoid fully qualified class references when possible In the generated `CatalogImpl` subclasses the static fields representing the schemas of the catalog typically don't need a fully qualified class reference in the initializer expression, since the Java type is imported already. Additionally the Javadoc comment of the field representing the default schema (if any) will now also include the schema's name (before it was missing). --- .../main/java/org/jooq/codegen/JavaGenerator.java | 15 ++++++++++++--- .../example/flyway/ddl/db/h2/DefaultCatalog.java | 4 ++-- .../org/jooq/example/jpa/jooq/DefaultCatalog.java | 6 +++--- .../org/jooq/example/db/h2/DefaultCatalog.java | 4 ++-- 4 files changed, 19 insertions(+), 10 deletions(-) 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 52853536b6..fecd5ce242 100644 --- a/jOOQ-codegen/src/main/java/org/jooq/codegen/JavaGenerator.java +++ b/jOOQ-codegen/src/main/java/org/jooq/codegen/JavaGenerator.java @@ -4794,6 +4794,12 @@ public class JavaGenerator extends AbstractGenerator { List schemas = new ArrayList<>(); if (generateGlobalSchemaReferences()) { + Set fieldNames = new HashSet<>(); + fieldNames.add(catalogId); + for (SchemaDefinition schema : catalog.getSchemata()) + if (generateSchemaIfEmpty(schema)) + fieldNames.add(getStrategy().getJavaIdentifier(schema)); + for (SchemaDefinition schema : catalog.getSchemata()) { if (generateSchemaIfEmpty(schema)) { schemas.add(schema); @@ -4801,16 +4807,19 @@ public class JavaGenerator extends AbstractGenerator { final String schemaClassName = out.ref(getStrategy().getFullJavaClassName(schema)); final String schemaId = getStrategy().getJavaIdentifier(schema); final String schemaFullId = getStrategy().getFullJavaIdentifier(schema); + String schemaShortId = out.ref(getStrategy().getFullJavaIdentifier(schema), 2); + if (fieldNames.contains(schemaShortId.substring(0, schemaShortId.indexOf('.')))) + schemaShortId = schemaFullId; final String schemaComment = !StringUtils.isBlank(schema.getComment()) && generateCommentsOnSchemas() ? escapeEntities(schema.getComment()) - : "The schema " + schema.getQualifiedOutputName() + "."; + : "The schema " + (!schema.getQualifiedOutputName().isEmpty() ? schema.getQualifiedOutputName() : schemaId) + "."; out.tab(1).javadoc(schemaComment); if (scala) - out.tab(1).println("val %s = %s", schemaId, schemaFullId); + out.tab(1).println("val %s = %s", schemaId, schemaShortId); else - out.tab(1).println("public final %s %s = %s;", schemaClassName, schemaId, schemaFullId); + out.tab(1).println("public final %s %s = %s;", schemaClassName, schemaId, schemaShortId); } } } diff --git a/jOOQ-examples/jOOQ-flyway-ddl-example/src/main/java/org/jooq/example/flyway/ddl/db/h2/DefaultCatalog.java b/jOOQ-examples/jOOQ-flyway-ddl-example/src/main/java/org/jooq/example/flyway/ddl/db/h2/DefaultCatalog.java index f6184c5801..34d431330e 100644 --- a/jOOQ-examples/jOOQ-flyway-ddl-example/src/main/java/org/jooq/example/flyway/ddl/db/h2/DefaultCatalog.java +++ b/jOOQ-examples/jOOQ-flyway-ddl-example/src/main/java/org/jooq/example/flyway/ddl/db/h2/DefaultCatalog.java @@ -26,7 +26,7 @@ import org.jooq.impl.CatalogImpl; @SuppressWarnings({ "all", "unchecked", "rawtypes" }) public class DefaultCatalog extends CatalogImpl { - private static final long serialVersionUID = -949847017; + private static final long serialVersionUID = 1585122192; /** * The reference instance of DEFAULT_CATALOG @@ -36,7 +36,7 @@ public class DefaultCatalog extends CatalogImpl { /** * The schema FLYWAY_TEST. */ - public final FlywayTest FLYWAY_TEST = org.jooq.example.flyway.ddl.db.h2.FlywayTest.FLYWAY_TEST; + public final FlywayTest FLYWAY_TEST = FlywayTest.FLYWAY_TEST; /** * No further instances allowed diff --git a/jOOQ-examples/jOOQ-jpa-example/src/main/java/org/jooq/example/jpa/jooq/DefaultCatalog.java b/jOOQ-examples/jOOQ-jpa-example/src/main/java/org/jooq/example/jpa/jooq/DefaultCatalog.java index d37c845a5c..6c149d0bbd 100644 --- a/jOOQ-examples/jOOQ-jpa-example/src/main/java/org/jooq/example/jpa/jooq/DefaultCatalog.java +++ b/jOOQ-examples/jOOQ-jpa-example/src/main/java/org/jooq/example/jpa/jooq/DefaultCatalog.java @@ -17,7 +17,7 @@ import org.jooq.impl.CatalogImpl; @SuppressWarnings({ "all", "unchecked", "rawtypes" }) public class DefaultCatalog extends CatalogImpl { - private static final long serialVersionUID = 1745902354; + private static final long serialVersionUID = 1220415520; /** * The reference instance of DEFAULT_CATALOG @@ -25,9 +25,9 @@ public class DefaultCatalog extends CatalogImpl { public static final DefaultCatalog DEFAULT_CATALOG = new DefaultCatalog(); /** - * The schema . + * The schema DEFAULT_SCHEMA. */ - public final DefaultSchema DEFAULT_SCHEMA = org.jooq.example.jpa.jooq.DefaultSchema.DEFAULT_SCHEMA; + public final DefaultSchema DEFAULT_SCHEMA = DefaultSchema.DEFAULT_SCHEMA; /** * No further instances allowed diff --git a/jOOQ-examples/jOOQ-kotlin-example/src/main/java/org/jooq/example/db/h2/DefaultCatalog.java b/jOOQ-examples/jOOQ-kotlin-example/src/main/java/org/jooq/example/db/h2/DefaultCatalog.java index d9ab83e583..d903cd56e7 100644 --- a/jOOQ-examples/jOOQ-kotlin-example/src/main/java/org/jooq/example/db/h2/DefaultCatalog.java +++ b/jOOQ-examples/jOOQ-kotlin-example/src/main/java/org/jooq/example/db/h2/DefaultCatalog.java @@ -17,7 +17,7 @@ import org.jooq.impl.CatalogImpl; @SuppressWarnings({ "all", "unchecked", "rawtypes" }) public class DefaultCatalog extends CatalogImpl { - private static final long serialVersionUID = 1802263030; + private static final long serialVersionUID = -1733753869; /** * The reference instance of DEFAULT_CATALOG @@ -27,7 +27,7 @@ public class DefaultCatalog extends CatalogImpl { /** * The schema PUBLIC. */ - public final Public PUBLIC = org.jooq.example.db.h2.Public.PUBLIC; + public final Public PUBLIC = Public.PUBLIC; /** * No further instances allowed