[jOOQ/jOOQ#6187] Add Schema.getTable(Name), getSequence(Name), getUDT(Name), getDomain(Name)
This commit is contained in:
parent
4df803651b
commit
425602980e
@ -97,8 +97,8 @@ public interface Catalog extends Named {
|
||||
Schema getSchema(String name);
|
||||
|
||||
/**
|
||||
* Get a schema by its name in this catalog, or <code>null</code> if no such
|
||||
* schema exists.
|
||||
* Get a schema by its qualified or unqualified name in this catalog, or
|
||||
* <code>null</code> if no such schema exists.
|
||||
*/
|
||||
@Nullable
|
||||
Schema getSchema(Name name);
|
||||
|
||||
@ -108,6 +108,13 @@ public interface Schema extends Named {
|
||||
@Nullable
|
||||
Table<?> getTable(String name);
|
||||
|
||||
/**
|
||||
* Get a table by its qualified or unqualified name in this schema, or
|
||||
* <code>null</code> if no such table exists.
|
||||
*/
|
||||
@Nullable
|
||||
Table<?> getTable(Name name);
|
||||
|
||||
|
||||
/**
|
||||
* Stream all UDTs contained in this schema.
|
||||
@ -129,6 +136,13 @@ public interface Schema extends Named {
|
||||
@Nullable
|
||||
UDT<?> getUDT(String name);
|
||||
|
||||
/**
|
||||
* Get a UDT by its qualified or unqualified name in this schema, or
|
||||
* <code>null</code> if no such UDT exists.
|
||||
*/
|
||||
@Nullable
|
||||
UDT<?> getUDT(Name name);
|
||||
|
||||
/**
|
||||
* Stream all domains contained in this schema.
|
||||
*/
|
||||
@ -150,6 +164,13 @@ public interface Schema extends Named {
|
||||
@Nullable
|
||||
Domain<?> getDomain(String name);
|
||||
|
||||
/**
|
||||
* Get a domain by its qualified or unqualified name in this schema, or
|
||||
* <code>null</code> if no such domain exists.
|
||||
*/
|
||||
@Nullable
|
||||
Domain<?> getDomain(Name name);
|
||||
|
||||
/**
|
||||
* Stream all sequences contained in this schema.
|
||||
*/
|
||||
@ -170,4 +191,11 @@ public interface Schema extends Named {
|
||||
*/
|
||||
@Nullable
|
||||
Sequence<?> getSequence(String name);
|
||||
|
||||
/**
|
||||
* Get a sequence by its qualified or unqualified name in this schema, or
|
||||
* <code>null</code> if no such sequence exists.
|
||||
*/
|
||||
@Nullable
|
||||
Sequence<?> getSequence(Name name);
|
||||
}
|
||||
|
||||
@ -119,11 +119,19 @@ abstract class AbstractNamed extends AbstractQueryPart implements Named {
|
||||
// Utilities
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
static Name qualify(Named qualifier, Name name) {
|
||||
static final Name qualify(Named qualifier, Name name) {
|
||||
return qualifier == null || name.qualified() ? name : qualifier.getQualifiedName().append(name);
|
||||
}
|
||||
|
||||
static <N extends Named> N find(Name name, Iterable<? extends N> in) {
|
||||
static final <N extends Named> N find(String name, Iterable<? extends N> in) {
|
||||
for (N n : in)
|
||||
if (n.getName().equals(name))
|
||||
return n;
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
static final <N extends Named> N find(Name name, Iterable<? extends N> in) {
|
||||
N unqualified = null;
|
||||
|
||||
for (N n : in)
|
||||
|
||||
@ -124,6 +124,11 @@ public final class LazySchema extends AbstractNamed implements Schema {
|
||||
return schema().getTable(name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Table<?> getTable(Name name) {
|
||||
return schema().getTable(name);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
@ -143,6 +148,11 @@ public final class LazySchema extends AbstractNamed implements Schema {
|
||||
return schema().getUDT(name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final UDT<?> getUDT(Name name) {
|
||||
return schema().getUDT(name);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
@ -162,6 +172,11 @@ public final class LazySchema extends AbstractNamed implements Schema {
|
||||
return schema().getDomain(name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Domain<?> getDomain(Name name) {
|
||||
return schema().getDomain(name);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
@ -180,4 +195,9 @@ public final class LazySchema extends AbstractNamed implements Schema {
|
||||
public final Sequence<?> getSequence(String name) {
|
||||
return schema().getSequence(name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Sequence<?> getSequence(Name name) {
|
||||
return schema().getSequence(name);
|
||||
}
|
||||
}
|
||||
|
||||
@ -53,7 +53,6 @@ import org.jooq.Comment;
|
||||
import org.jooq.Context;
|
||||
import org.jooq.Domain;
|
||||
import org.jooq.Name;
|
||||
import org.jooq.Named;
|
||||
import org.jooq.Schema;
|
||||
import org.jooq.Sequence;
|
||||
import org.jooq.Table;
|
||||
@ -132,32 +131,44 @@ public class SchemaImpl extends AbstractNamed implements Schema {
|
||||
return CLAUSES;
|
||||
}
|
||||
|
||||
private final <N extends Named> N getNamed(List<N> list, String name) {
|
||||
for (N named : list)
|
||||
if (named.getName().equals(name))
|
||||
return named;
|
||||
|
||||
return null;
|
||||
@Override
|
||||
public final Table<?> getTable(String name) {
|
||||
return find(name, getTables());
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Table<?> getTable(String name) {
|
||||
return getNamed(getTables(), name);
|
||||
public final Table<?> getTable(Name name) {
|
||||
return find(name, getTables());
|
||||
}
|
||||
|
||||
@Override
|
||||
public final UDT<?> getUDT(String name) {
|
||||
return getNamed(getUDTs(), name);
|
||||
return find(name, getUDTs());
|
||||
}
|
||||
|
||||
@Override
|
||||
public final UDT<?> getUDT(Name name) {
|
||||
return find(name, getUDTs());
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Domain<?> getDomain(String name) {
|
||||
return getNamed(getDomains(), name);
|
||||
return find(name, getDomains());
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Domain<?> getDomain(Name name) {
|
||||
return find(name, getDomains());
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Sequence<?> getSequence(String name) {
|
||||
return getNamed(getSequences(), name);
|
||||
return find(name, getSequences());
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Sequence<?> getSequence(Name name) {
|
||||
return find(name, getSequences());
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Loading…
Reference in New Issue
Block a user