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}
*