[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.
This commit is contained in:
Knut Wannheden 2019-12-18 17:29:01 +01:00
parent 9d6e8236a1
commit fb0a53b200
7 changed files with 37 additions and 73 deletions

View File

@ -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("}");
}
}
}
}

View File

@ -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 <code></code>
@ -48,12 +47,6 @@ public class DefaultCatalog extends CatalogImpl {
@Override
public final List<Schema> getSchemas() {
List result = new ArrayList();
result.addAll(getSchemas0());
return result;
}
private final List<Schema> getSchemas0() {
return Arrays.<Schema>asList(
FlywayTest.FLYWAY_TEST);
}

View File

@ -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 <code>FLYWAY_TEST</code>
@ -63,24 +62,12 @@ public class FlywayTest extends SchemaImpl {
@Override
public final List<Sequence<?>> getSequences() {
List result = new ArrayList();
result.addAll(getSequences0());
return result;
}
private final List<Sequence<?>> getSequences0() {
return Arrays.<Sequence<?>>asList(
Sequences.S_AUTHOR_ID);
}
@Override
public final List<Table<?>> getTables() {
List result = new ArrayList();
result.addAll(getTables0());
return result;
}
private final List<Table<?>> getTables0() {
return Arrays.<Table<?>>asList(
Author.AUTHOR,
Book.BOOK);

View File

@ -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 <code></code>
@ -39,12 +38,6 @@ public class DefaultCatalog extends CatalogImpl {
@Override
public final List<Schema> getSchemas() {
List result = new ArrayList();
result.addAll(getSchemas0());
return result;
}
private final List<Schema> getSchemas0() {
return Arrays.<Schema>asList(
DefaultSchema.DEFAULT_SCHEMA);
}

View File

@ -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 <code></code>
@ -65,12 +64,6 @@ public class DefaultSchema extends SchemaImpl {
@Override
public final List<Table<?>> getTables() {
List result = new ArrayList();
result.addAll(getTables0());
return result;
}
private final List<Table<?>> getTables0() {
return Arrays.<Table<?>>asList(
Actor.ACTOR,
Film.FILM,

View File

@ -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 <code></code>
@ -39,12 +38,6 @@ public class DefaultCatalog extends CatalogImpl {
@Override
public final List<Schema> getSchemas() {
List result = new ArrayList();
result.addAll(getSchemas0());
return result;
}
private final List<Schema> getSchemas0() {
return Arrays.<Schema>asList(
Public.PUBLIC);
}

View File

@ -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 <code>PUBLIC</code>
@ -65,12 +64,6 @@ public class Public extends SchemaImpl {
@Override
public final List<Table<?>> getTables() {
List result = new ArrayList();
result.addAll(getTables0());
return result;
}
private final List<Table<?>> getTables0() {
return Arrays.<Table<?>>asList(
Author.AUTHOR,
Book.BOOK,