From c8d04634bb0f915526136693df8ec0bc2c12a668 Mon Sep 17 00:00:00 2001 From: lukaseder Date: Mon, 25 Jul 2016 17:50:18 +0200 Subject: [PATCH] [#5467] Add Sequence.getCatalog() and Table.getCatalog() for convenience --- jOOQ/src/main/java/org/jooq/ArrayRecord.java | 5 +++++ jOOQ/src/main/java/org/jooq/DSLContext.java | 16 ++++++++++++++++ jOOQ/src/main/java/org/jooq/EnumType.java | 6 ++++++ jOOQ/src/main/java/org/jooq/Package.java | 5 +++++ jOOQ/src/main/java/org/jooq/Routine.java | 5 +++++ jOOQ/src/main/java/org/jooq/Sequence.java | 5 +++++ jOOQ/src/main/java/org/jooq/Table.java | 5 +++++ jOOQ/src/main/java/org/jooq/UDT.java | 5 +++++ .../main/java/org/jooq/impl/AbstractRoutine.java | 6 ++++++ .../main/java/org/jooq/impl/AbstractTable.java | 6 ++++++ .../main/java/org/jooq/impl/ArrayRecordImpl.java | 6 ++++++ .../java/org/jooq/impl/DefaultDSLContext.java | 14 ++++++++++++++ .../src/main/java/org/jooq/impl/PackageImpl.java | 6 ++++++ .../main/java/org/jooq/impl/SequenceImpl.java | 6 ++++++ jOOQ/src/main/java/org/jooq/impl/UDTImpl.java | 6 ++++++ 15 files changed, 102 insertions(+) diff --git a/jOOQ/src/main/java/org/jooq/ArrayRecord.java b/jOOQ/src/main/java/org/jooq/ArrayRecord.java index 4aa5e9115e..b7aa5fc5fd 100644 --- a/jOOQ/src/main/java/org/jooq/ArrayRecord.java +++ b/jOOQ/src/main/java/org/jooq/ArrayRecord.java @@ -120,6 +120,11 @@ package org.jooq; + + + + + diff --git a/jOOQ/src/main/java/org/jooq/DSLContext.java b/jOOQ/src/main/java/org/jooq/DSLContext.java index 4eb56b83fb..ca7616f17d 100644 --- a/jOOQ/src/main/java/org/jooq/DSLContext.java +++ b/jOOQ/src/main/java/org/jooq/DSLContext.java @@ -207,6 +207,22 @@ public interface DSLContext extends Scope , AutoCloseable { */ Meta meta(InformationSchema schema); + /** + * Export a catalog to the {@link InformationSchema} format. + *

+ * This allows for serialising schema meta information as XML using JAXB. + * See also {@link Constants#XSD_META} for details. + */ + InformationSchema informationSchema(Catalog catalog); + + /** + * Export a schema to the {@link InformationSchema} format. + *

+ * This allows for serialising schema meta information as XML using JAXB. + * See also {@link Constants#XSD_META} for details. + */ + InformationSchema informationSchema(Schema schema); + // ------------------------------------------------------------------------- // XXX APIs for creating scope for transactions, mocking, batching, etc. // ------------------------------------------------------------------------- diff --git a/jOOQ/src/main/java/org/jooq/EnumType.java b/jOOQ/src/main/java/org/jooq/EnumType.java index a36dfba9ad..ee22f8dc1b 100644 --- a/jOOQ/src/main/java/org/jooq/EnumType.java +++ b/jOOQ/src/main/java/org/jooq/EnumType.java @@ -64,6 +64,12 @@ public interface EnumType { */ String getLiteral(); + /** + * The catalog of the enum type, if applicable. Otherwise, this returns + * null + */ + Catalog getCatalog(); + /** * The schema of the enum type, if applicable (Postgres schema-scope enum * type only). Otherwise, this returns null diff --git a/jOOQ/src/main/java/org/jooq/Package.java b/jOOQ/src/main/java/org/jooq/Package.java index f9527e9b89..9c7ca974f7 100644 --- a/jOOQ/src/main/java/org/jooq/Package.java +++ b/jOOQ/src/main/java/org/jooq/Package.java @@ -49,6 +49,11 @@ package org.jooq; */ public interface Package extends QueryPart { + /** + * Get the package catalog. + */ + Catalog getCatalog(); + /** * Get the package schema */ diff --git a/jOOQ/src/main/java/org/jooq/Routine.java b/jOOQ/src/main/java/org/jooq/Routine.java index ddd109dc9e..cab57015d5 100644 --- a/jOOQ/src/main/java/org/jooq/Routine.java +++ b/jOOQ/src/main/java/org/jooq/Routine.java @@ -93,6 +93,11 @@ public interface Routine extends QueryPart { // XXX: Meta information // ------------------------------------------------------------------------- + /** + * Get the routine catalog. + */ + Catalog getCatalog(); + /** * Get the routine schema */ diff --git a/jOOQ/src/main/java/org/jooq/Sequence.java b/jOOQ/src/main/java/org/jooq/Sequence.java index faf4703662..d05f2c3856 100644 --- a/jOOQ/src/main/java/org/jooq/Sequence.java +++ b/jOOQ/src/main/java/org/jooq/Sequence.java @@ -66,6 +66,11 @@ public interface Sequence extends QueryPart { */ String getName(); + /** + * Get the sequence catalog. + */ + Catalog getCatalog(); + /** * Get the sequence schema */ diff --git a/jOOQ/src/main/java/org/jooq/Table.java b/jOOQ/src/main/java/org/jooq/Table.java index 7e304ed486..7249102a18 100644 --- a/jOOQ/src/main/java/org/jooq/Table.java +++ b/jOOQ/src/main/java/org/jooq/Table.java @@ -79,6 +79,11 @@ import org.jooq.impl.DSL; */ public interface Table extends TableLike { + /** + * Get the table catalog. + */ + Catalog getCatalog(); + /** * Get the table schema. */ diff --git a/jOOQ/src/main/java/org/jooq/UDT.java b/jOOQ/src/main/java/org/jooq/UDT.java index 0cf27b8000..79f85210ad 100644 --- a/jOOQ/src/main/java/org/jooq/UDT.java +++ b/jOOQ/src/main/java/org/jooq/UDT.java @@ -125,6 +125,11 @@ public interface UDT> extends QueryPart { */ Field[] fields(int... fieldIndexes); + /** + * Get the UDT catalog. + */ + Catalog getCatalog(); + /** * Get the UDT schema */ diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractRoutine.java b/jOOQ/src/main/java/org/jooq/impl/AbstractRoutine.java index fc3260519d..ec8f242939 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractRoutine.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractRoutine.java @@ -75,6 +75,7 @@ import org.jooq.AggregateFunction; import org.jooq.AttachableInternal; import org.jooq.BindContext; import org.jooq.Binding; +import org.jooq.Catalog; import org.jooq.Clause; import org.jooq.Configuration; import org.jooq.Context; @@ -854,6 +855,11 @@ public abstract class AbstractRoutine extends AbstractQueryPart implements Ro return Collections.unmodifiableList(allParameters); } + @Override + public final Catalog getCatalog() { + return getSchema() == null ? null : getSchema().getCatalog(); + } + @Override public final Schema getSchema() { return schema; diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractTable.java b/jOOQ/src/main/java/org/jooq/impl/AbstractTable.java index 808cb21374..1e7623b1f3 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractTable.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractTable.java @@ -66,6 +66,7 @@ import java.util.Collections; import java.util.List; import org.jooq.Binding; +import org.jooq.Catalog; import org.jooq.Clause; import org.jooq.Comparator; import org.jooq.Condition; @@ -269,6 +270,11 @@ abstract class AbstractTable extends AbstractQueryPart impleme // XXX: Table API // ------------------------------------------------------------------------ + @Override + public final Catalog getCatalog() { + return getSchema() == null ? null : getSchema().getCatalog(); + } + @Override public /* non-final */ Schema getSchema() { return tableschema; diff --git a/jOOQ/src/main/java/org/jooq/impl/ArrayRecordImpl.java b/jOOQ/src/main/java/org/jooq/impl/ArrayRecordImpl.java index cc20260112..17712f69c2 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ArrayRecordImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/ArrayRecordImpl.java @@ -394,6 +394,12 @@ package org.jooq.impl; + + + + + + diff --git a/jOOQ/src/main/java/org/jooq/impl/DefaultDSLContext.java b/jOOQ/src/main/java/org/jooq/impl/DefaultDSLContext.java index 7562bff9bb..d2bc01b325 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DefaultDSLContext.java +++ b/jOOQ/src/main/java/org/jooq/impl/DefaultDSLContext.java @@ -378,6 +378,20 @@ public class DefaultDSLContext extends AbstractScope implements DSLContext, Seri return new InformationSchemaMetaImpl(configuration(), schema); } + @Override + public InformationSchema informationSchema(Catalog catalog) { + return informationSchema0(catalog.getSchemas()); + } + + @Override + public InformationSchema informationSchema(Schema schema) { + return informationSchema0(Arrays.asList(schema)); + } + + private final InformationSchema informationSchema0(List schemas) { + return InformationSchemaExport.export(schemas); + } + // ------------------------------------------------------------------------- // XXX APIs for creating scope for transactions, mocking, batching, etc. // ------------------------------------------------------------------------- diff --git a/jOOQ/src/main/java/org/jooq/impl/PackageImpl.java b/jOOQ/src/main/java/org/jooq/impl/PackageImpl.java index f0128b1851..dbb5907c82 100644 --- a/jOOQ/src/main/java/org/jooq/impl/PackageImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/PackageImpl.java @@ -40,6 +40,7 @@ */ package org.jooq.impl; +import org.jooq.Catalog; import org.jooq.Clause; import org.jooq.Context; import org.jooq.Package; @@ -72,6 +73,11 @@ public class PackageImpl extends AbstractQueryPart implements Package { this.name = name; } + @Override + public final Catalog getCatalog() { + return getSchema() == null ? null : getSchema().getCatalog(); + } + @Override public final Schema getSchema() { return schema; diff --git a/jOOQ/src/main/java/org/jooq/impl/SequenceImpl.java b/jOOQ/src/main/java/org/jooq/impl/SequenceImpl.java index fdf46f1739..7f9d17c28f 100644 --- a/jOOQ/src/main/java/org/jooq/impl/SequenceImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/SequenceImpl.java @@ -49,6 +49,7 @@ import static org.jooq.impl.DSL.field; import static org.jooq.impl.DSL.inline; import static org.jooq.impl.DSL.select; +import org.jooq.Catalog; import org.jooq.Clause; import org.jooq.Configuration; import org.jooq.Context; @@ -96,6 +97,11 @@ public class SequenceImpl extends AbstractQueryPart implements return name; } + @Override + public final Catalog getCatalog() { + return getSchema() == null ? null : getSchema().getCatalog(); + } + @Override public final Schema getSchema() { return schema; diff --git a/jOOQ/src/main/java/org/jooq/impl/UDTImpl.java b/jOOQ/src/main/java/org/jooq/impl/UDTImpl.java index 1bfe99d8ac..9d86c79ac2 100644 --- a/jOOQ/src/main/java/org/jooq/impl/UDTImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/UDTImpl.java @@ -41,6 +41,7 @@ package org.jooq.impl; import org.jooq.Binding; +import org.jooq.Catalog; import org.jooq.Clause; import org.jooq.Context; import org.jooq.Converter; @@ -76,6 +77,11 @@ public class UDTImpl> extends AbstractQueryPart implement this.schema = schema; } + @Override + public final Catalog getCatalog() { + return getSchema() == null ? null : getSchema().getCatalog(); + } + @Override public /* non-final */ Schema getSchema() { return schema;