diff --git a/jOOQ/src/main/java/org/jooq/Name.java b/jOOQ/src/main/java/org/jooq/Name.java index 9ed2458c89..e3f701e934 100644 --- a/jOOQ/src/main/java/org/jooq/Name.java +++ b/jOOQ/src/main/java/org/jooq/Name.java @@ -138,6 +138,15 @@ public interface Name extends QueryPart { */ String last(); + /** + * Whether this is the empty name. + *

+ * An unnamed object will have an "" empty string as its name. + * If a table has no explicit schema, it will be located in the default + * schema whose name is "". + */ + boolean empty(); + /** * Whether this is a qualified name. *

diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractName.java b/jOOQ/src/main/java/org/jooq/impl/AbstractName.java index f062bd60e4..04c5a24d13 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractName.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractName.java @@ -59,8 +59,8 @@ abstract class AbstractName extends AbstractQueryPart implements Name { /** * Generated UID */ - private static final long serialVersionUID = 8562325639223483938L; - static final Name NO_NAME = DSL.name(""); + private static final long serialVersionUID = 8562325639223483938L; + static final UnqualifiedName NO_NAME = new UnqualifiedName(""); @Override public final Name append(String name) { diff --git a/jOOQ/src/main/java/org/jooq/impl/QualifiedName.java b/jOOQ/src/main/java/org/jooq/impl/QualifiedName.java index a6896157f4..2ab5256a86 100644 --- a/jOOQ/src/main/java/org/jooq/impl/QualifiedName.java +++ b/jOOQ/src/main/java/org/jooq/impl/QualifiedName.java @@ -178,6 +178,15 @@ final class QualifiedName extends AbstractName { return qualifiedName.length > 0 ? qualifiedName[qualifiedName.length - 1].last() : null; } + @Override + public final boolean empty() { + for (UnqualifiedName n : qualifiedName) + if (!n.empty()) + return false; + + return true; + } + @Override public final boolean qualified() { return qualifiedName.length > 1; diff --git a/jOOQ/src/main/java/org/jooq/impl/UnqualifiedName.java b/jOOQ/src/main/java/org/jooq/impl/UnqualifiedName.java index 41e0172394..aaf47fde4c 100644 --- a/jOOQ/src/main/java/org/jooq/impl/UnqualifiedName.java +++ b/jOOQ/src/main/java/org/jooq/impl/UnqualifiedName.java @@ -45,6 +45,7 @@ import org.jooq.Context; import org.jooq.Name; import org.jooq.conf.RenderQuotedNames; import org.jooq.conf.SettingsTools; +import org.jooq.tools.StringUtils; /** * The default implementation for an unqualified SQL identifier. @@ -95,6 +96,11 @@ final class UnqualifiedName extends AbstractName { return name; } + @Override + public final boolean empty() { + return StringUtils.isEmpty(name); + } + @Override public final boolean qualified() { return false;