From 3dbcccb65a71b7b438a67701b869fed9b0fd4649 Mon Sep 17 00:00:00 2001 From: Knut Wannheden Date: Wed, 26 Jun 2019 15:57:20 +0200 Subject: [PATCH] [jOOQ/jOOQ#8808] Only qualify sequence class references when required The `Sequences` class will now only have fully qualified references to the sequence classes when there is a name conflict between the schema and any of its sequences. --- .../main/java/org/jooq/codegen/JavaGenerator.java | 13 ++++++++++++- 1 file changed, 12 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 b8aea03be2..f6f86382aa 100644 --- a/jOOQ-codegen/src/main/java/org/jooq/codegen/JavaGenerator.java +++ b/jOOQ-codegen/src/main/java/org/jooq/codegen/JavaGenerator.java @@ -4643,12 +4643,15 @@ public class JavaGenerator extends AbstractGenerator { else out.println("public class Sequences {"); + boolean qualifySequenceClassReferences = containsConflictingDefinition(schema, database.getSequences(schema)); + for (SequenceDefinition sequence : database.getSequences(schema)) { final String seqTypeFull = getJavaType(sequence.getType(resolver())); final String seqType = out.ref(seqTypeFull); final String seqId = getStrategy().getJavaIdentifier(sequence); final String seqName = sequence.getOutputName(); - final String schemaId = getStrategy().getFullJavaIdentifier(schema); + final String schemaId = qualifySequenceClassReferences ? getStrategy().getFullJavaIdentifier(schema) + : out.ref(getStrategy().getFullJavaIdentifier(schema), 2); final String typeRef = getJavaTypeReference(sequence.getDatabase(), sequence.getType(resolver())); if (!printDeprecationIfUnknownType(out, seqTypeFull)) @@ -4666,6 +4669,14 @@ public class JavaGenerator extends AbstractGenerator { watch.splitInfo("Sequences generated"); } + private boolean containsConflictingDefinition(SchemaDefinition schema, List definitions) { + final String unqualifiedSchemaId = getStrategy().getJavaIdentifier(schema); + for (Definition def : definitions) + if (unqualifiedSchemaId.equals(getStrategy().getJavaIdentifier(def))) + return true; + return false; + } + protected void generateCatalog(CatalogDefinition catalog) { JavaWriter out = newJavaWriter(getFile(catalog)); log.info("");