From fb0a53b2001fefd9a10d2136b8d5f57a4d6f9cc2 Mon Sep 17 00:00:00 2001 From: Knut Wannheden Date: Wed, 18 Dec 2019 17:29:01 +0100 Subject: [PATCH] [jOOQ/jOOQ#9272] Simplify generated Schema and Catalog classes The genereated `SchemaImpl` and `CatalogImpl` subclasses will only declare methods like `getSchemas0()` and `getTables0()` when necessary. I.e. when the number of returned definitions exceeds 500. --- .../java/org/jooq/codegen/JavaGenerator.java | 50 ++++++++++++------- .../flyway/ddl/db/h2/DefaultCatalog.java | 9 +--- .../example/flyway/ddl/db/h2/FlywayTest.java | 15 +----- .../jooq/example/jpa/jooq/DefaultCatalog.java | 9 +--- .../jooq/example/jpa/jooq/DefaultSchema.java | 9 +--- .../jooq/example/db/h2/DefaultCatalog.java | 9 +--- .../java/org/jooq/example/db/h2/Public.java | 9 +--- 7 files changed, 37 insertions(+), 73 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 fef3123f9a..4ee3a11aaa 100644 --- a/jOOQ-codegen/src/main/java/org/jooq/codegen/JavaGenerator.java +++ b/jOOQ-codegen/src/main/java/org/jooq/codegen/JavaGenerator.java @@ -4952,36 +4952,48 @@ public class JavaGenerator extends AbstractGenerator { if (scala) { out.tab(1).println("override def get%ss : %s[%s%s] = {", type.getSimpleName(), List.class, type, generic); - out.tab(2).println("val result = new %s[%s%s]", ArrayList.class, type, generic); - for (int i = 0; i < definitions.size(); i += INITIALISER_SIZE) { - out.tab(2).println("result.addAll(get%ss%s)", type.getSimpleName(), i / INITIALISER_SIZE); + if (definitions.size() > INITIALISER_SIZE) { + out.tab(2).println("val result = new %s[%s%s]", ArrayList.class, type, generic); + for (int i = 0; i < definitions.size(); i += INITIALISER_SIZE) { + out.tab(2).println("result.addAll(get%ss%s)", type.getSimpleName(), i / INITIALISER_SIZE); + } + out.tab(2).println("result"); + } + else { + out.tab(2).println("return %s.asList[%s%s]([[before=\n\t\t\t][separator=,\n\t\t\t][%s]])", Arrays.class, type, generic, references); } - out.tab(2).println("result"); out.tab(1).println("}"); } else { out.tab(1).override(); out.tab(1).println("public final %s<%s%s> get%ss() {", List.class, type, generic, type.getSimpleName()); - out.tab(2).println("%s result = new %s();", List.class, ArrayList.class); - for (int i = 0; i < definitions.size(); i += INITIALISER_SIZE) { - out.tab(2).println("result.addAll(get%ss%s());", type.getSimpleName(), i / INITIALISER_SIZE); + if (definitions.size() > INITIALISER_SIZE) { + out.tab(2).println("%s result = new %s();", List.class, ArrayList.class); + for (int i = 0; i < definitions.size(); i += INITIALISER_SIZE) { + out.tab(2).println("result.addAll(get%ss%s());", type.getSimpleName(), i / INITIALISER_SIZE); + } + out.tab(2).println("return result;"); + } + else { + out.tab(2).println("return %s.<%s%s>asList([[before=\n\t\t\t][separator=,\n\t\t\t][%s]]);", Arrays.class, type, generic, references); } - out.tab(2).println("return result;"); out.tab(1).println("}"); } - for (int i = 0; i < definitions.size(); i += INITIALISER_SIZE) { - out.println(); + if (definitions.size() > INITIALISER_SIZE) { + for (int i = 0; i < definitions.size(); i += INITIALISER_SIZE) { + out.println(); - if (scala) { - out.tab(1).println("private def get%ss%s(): %s[%s%s] = {", type.getSimpleName(), i / INITIALISER_SIZE, List.class, type, generic); - out.tab(2).println("return %s.asList[%s%s]([[before=\n\t\t\t][separator=,\n\t\t\t][%s]])", Arrays.class, type, generic, references.subList(i, Math.min(i + INITIALISER_SIZE, references.size()))); - out.tab(1).println("}"); - } - else { - out.tab(1).println("private final %s<%s%s> get%ss%s() {", List.class, type, generic, type.getSimpleName(), i / INITIALISER_SIZE); - out.tab(2).println("return %s.<%s%s>asList([[before=\n\t\t\t][separator=,\n\t\t\t][%s]]);", Arrays.class, type, generic, references.subList(i, Math.min(i + INITIALISER_SIZE, references.size()))); - out.tab(1).println("}"); + if (scala) { + out.tab(1).println("private def get%ss%s(): %s[%s%s] = {", type.getSimpleName(), i / INITIALISER_SIZE, List.class, type, generic); + out.tab(2).println("return %s.asList[%s%s]([[before=\n\t\t\t][separator=,\n\t\t\t][%s]])", Arrays.class, type, generic, references.subList(i, Math.min(i + INITIALISER_SIZE, references.size()))); + out.tab(1).println("}"); + } + else { + out.tab(1).println("private final %s<%s%s> get%ss%s() {", List.class, type, generic, type.getSimpleName(), i / INITIALISER_SIZE); + out.tab(2).println("return %s.<%s%s>asList([[before=\n\t\t\t][separator=,\n\t\t\t][%s]]);", Arrays.class, type, generic, references.subList(i, Math.min(i + INITIALISER_SIZE, references.size()))); + out.tab(1).println("}"); + } } } } 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 2c3a9827ef..c2909e34a6 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 @@ -4,7 +4,6 @@ package org.jooq.example.flyway.ddl.db.h2; -import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -27,7 +26,7 @@ import org.jooq.impl.CatalogImpl; @SuppressWarnings({ "all", "unchecked", "rawtypes" }) public class DefaultCatalog extends CatalogImpl { - private static final long serialVersionUID = 1549802009; + private static final long serialVersionUID = 602931876; /** * The reference instance of @@ -48,12 +47,6 @@ public class DefaultCatalog extends CatalogImpl { @Override public final List getSchemas() { - List result = new ArrayList(); - result.addAll(getSchemas0()); - return result; - } - - private final List getSchemas0() { return Arrays.asList( FlywayTest.FLYWAY_TEST); } diff --git a/jOOQ-examples/jOOQ-flyway-ddl-example/src/main/java/org/jooq/example/flyway/ddl/db/h2/FlywayTest.java b/jOOQ-examples/jOOQ-flyway-ddl-example/src/main/java/org/jooq/example/flyway/ddl/db/h2/FlywayTest.java index 21a7879eed..1249cf12bb 100644 --- a/jOOQ-examples/jOOQ-flyway-ddl-example/src/main/java/org/jooq/example/flyway/ddl/db/h2/FlywayTest.java +++ b/jOOQ-examples/jOOQ-flyway-ddl-example/src/main/java/org/jooq/example/flyway/ddl/db/h2/FlywayTest.java @@ -4,7 +4,6 @@ package org.jooq.example.flyway.ddl.db.h2; -import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -31,7 +30,7 @@ import org.jooq.impl.SchemaImpl; @SuppressWarnings({ "all", "unchecked", "rawtypes" }) public class FlywayTest extends SchemaImpl { - private static final long serialVersionUID = -464060435; + private static final long serialVersionUID = -219514663; /** * The reference instance of FLYWAY_TEST @@ -63,24 +62,12 @@ public class FlywayTest extends SchemaImpl { @Override public final List> getSequences() { - List result = new ArrayList(); - result.addAll(getSequences0()); - return result; - } - - private final List> getSequences0() { return Arrays.>asList( Sequences.S_AUTHOR_ID); } @Override public final List> getTables() { - List result = new ArrayList(); - result.addAll(getTables0()); - return result; - } - - private final List> getTables0() { return Arrays.>asList( Author.AUTHOR, Book.BOOK); 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 3435ea1eff..48836a599d 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 @@ -4,7 +4,6 @@ package org.jooq.example.jpa.jooq; -import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -18,7 +17,7 @@ import org.jooq.impl.CatalogImpl; @SuppressWarnings({ "all", "unchecked", "rawtypes" }) public class DefaultCatalog extends CatalogImpl { - private static final long serialVersionUID = -379550258; + private static final long serialVersionUID = -2138369575; /** * The reference instance of @@ -39,12 +38,6 @@ public class DefaultCatalog extends CatalogImpl { @Override public final List getSchemas() { - List result = new ArrayList(); - result.addAll(getSchemas0()); - return result; - } - - private final List getSchemas0() { return Arrays.asList( DefaultSchema.DEFAULT_SCHEMA); } diff --git a/jOOQ-examples/jOOQ-jpa-example/src/main/java/org/jooq/example/jpa/jooq/DefaultSchema.java b/jOOQ-examples/jOOQ-jpa-example/src/main/java/org/jooq/example/jpa/jooq/DefaultSchema.java index 928afb2ca0..2d07fa2f98 100644 --- a/jOOQ-examples/jOOQ-jpa-example/src/main/java/org/jooq/example/jpa/jooq/DefaultSchema.java +++ b/jOOQ-examples/jOOQ-jpa-example/src/main/java/org/jooq/example/jpa/jooq/DefaultSchema.java @@ -4,7 +4,6 @@ package org.jooq.example.jpa.jooq; -import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -23,7 +22,7 @@ import org.jooq.impl.SchemaImpl; @SuppressWarnings({ "all", "unchecked", "rawtypes" }) public class DefaultSchema extends SchemaImpl { - private static final long serialVersionUID = -567042889; + private static final long serialVersionUID = 1552766182; /** * The reference instance of @@ -65,12 +64,6 @@ public class DefaultSchema extends SchemaImpl { @Override public final List> getTables() { - List result = new ArrayList(); - result.addAll(getTables0()); - return result; - } - - private final List> getTables0() { return Arrays.>asList( Actor.ACTOR, Film.FILM, 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 e51e6cfb25..f8ca455ce5 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 @@ -4,7 +4,6 @@ package org.jooq.example.db.h2; -import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -18,7 +17,7 @@ import org.jooq.impl.CatalogImpl; @SuppressWarnings({ "all", "unchecked", "rawtypes" }) public class DefaultCatalog extends CatalogImpl { - private static final long serialVersionUID = 873304014; + private static final long serialVersionUID = 2007051757; /** * The reference instance of @@ -39,12 +38,6 @@ public class DefaultCatalog extends CatalogImpl { @Override public final List getSchemas() { - List result = new ArrayList(); - result.addAll(getSchemas0()); - return result; - } - - private final List getSchemas0() { return Arrays.asList( Public.PUBLIC); } diff --git a/jOOQ-examples/jOOQ-kotlin-example/src/main/java/org/jooq/example/db/h2/Public.java b/jOOQ-examples/jOOQ-kotlin-example/src/main/java/org/jooq/example/db/h2/Public.java index d6c67771ae..20a4590967 100644 --- a/jOOQ-examples/jOOQ-kotlin-example/src/main/java/org/jooq/example/db/h2/Public.java +++ b/jOOQ-examples/jOOQ-kotlin-example/src/main/java/org/jooq/example/db/h2/Public.java @@ -4,7 +4,6 @@ package org.jooq.example.db.h2; -import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -23,7 +22,7 @@ import org.jooq.impl.SchemaImpl; @SuppressWarnings({ "all", "unchecked", "rawtypes" }) public class Public extends SchemaImpl { - private static final long serialVersionUID = 1053453567; + private static final long serialVersionUID = -767902874; /** * The reference instance of PUBLIC @@ -65,12 +64,6 @@ public class Public extends SchemaImpl { @Override public final List> getTables() { - List result = new ArrayList(); - result.addAll(getTables0()); - return result; - } - - private final List> getTables0() { return Arrays.>asList( Author.AUTHOR, Book.BOOK,