diff --git a/jOOQ-meta/src/main/java/org/jooq/meta/AbstractDefinition.java b/jOOQ-meta/src/main/java/org/jooq/meta/AbstractDefinition.java index eaedec4813..acf6117921 100644 --- a/jOOQ-meta/src/main/java/org/jooq/meta/AbstractDefinition.java +++ b/jOOQ-meta/src/main/java/org/jooq/meta/AbstractDefinition.java @@ -62,6 +62,7 @@ public abstract class AbstractDefinition implements Definition { private final String name; private final String comment; private final String overload; + private final String source; // [#2238] Some caches for strings that are heavy to calculate in large schemas private transient String qualifiedInputName; @@ -83,6 +84,10 @@ public abstract class AbstractDefinition implements Definition { } public AbstractDefinition(Database database, SchemaDefinition schema, PackageDefinition pkg, String name, String comment, String overload) { + this(database, schema, pkg, name, comment, overload, null); + } + + public AbstractDefinition(Database database, SchemaDefinition schema, PackageDefinition pkg, String name, String comment, String overload, String source) { this.database = database; // The subclass constructor cannot pass "this" to the super constructor @@ -93,6 +98,7 @@ public abstract class AbstractDefinition implements Definition { this.name = name; this.comment = comment; this.overload = overload; + this.source = source; } @Override @@ -294,4 +300,9 @@ public abstract class AbstractDefinition implements Definition { protected final SQLDialect getDialect() { return database.getDialect(); } + + @Override + public final String getSource() { + return source; + } } diff --git a/jOOQ-meta/src/main/java/org/jooq/meta/Definition.java b/jOOQ-meta/src/main/java/org/jooq/meta/Definition.java index e95fb0ad25..f1d00343be 100644 --- a/jOOQ-meta/src/main/java/org/jooq/meta/Definition.java +++ b/jOOQ-meta/src/main/java/org/jooq/meta/Definition.java @@ -136,4 +136,10 @@ public interface Definition { * @return The overload suffix if applicable */ String getOverload(); + + /** + * @return The source code of this object, if applicable, or + * null, if no such source code is available. + */ + String getSource(); }