diff --git a/jOOQ/src/main/java/org/jooq/Schema.java b/jOOQ/src/main/java/org/jooq/Schema.java index 3cf2a1fb92..98d3dea1e6 100644 --- a/jOOQ/src/main/java/org/jooq/Schema.java +++ b/jOOQ/src/main/java/org/jooq/Schema.java @@ -63,13 +63,31 @@ public interface Schema extends NamedQueryPart { */ List> getTables(); + /** + * Get a table by its name (case-sensitive) in this schema, or + * null if no such table exists + */ + Table getTable(String name); + /** * List all UDTs contained in this schema */ List> getUDTs(); + /** + * Get a UDT by its name (case-sensitive) in this schema, or + * null if no such UDT exists + */ + UDT getUDT(String name); + /** * List all sequences contained in this schema */ List> getSequences(); + + /** + * Get a sequence by its name (case-sensitive) in this schema, or + * null if no such sequence exists + */ + Sequence getSequence(String name); } diff --git a/jOOQ/src/main/java/org/jooq/impl/SchemaImpl.java b/jOOQ/src/main/java/org/jooq/impl/SchemaImpl.java index f25579eb38..da94aef5e6 100644 --- a/jOOQ/src/main/java/org/jooq/impl/SchemaImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/SchemaImpl.java @@ -90,6 +90,39 @@ public class SchemaImpl extends AbstractNamedQueryPart implements Schema { typeMapping.put(name, type); } + @Override + public final Table getTable(String name) { + for (Table table : getTables()) { + if (table.getName().equals(name)) { + return table; + } + } + + return null; + } + + @Override + public final UDT getUDT(String name) { + for (UDT udt : getUDTs()) { + if (udt.getName().equals(name)) { + return udt; + } + } + + return null; + } + + @Override + public final Sequence getSequence(String name) { + for (Sequence sequence : getSequences()) { + if (sequence.getName().equals(name)) { + return sequence; + } + } + + return null; + } + /** * {@inheritDoc} *