From 0bf32a4458b8d6cbbb482ff999244230570e2326 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Fri, 17 Jul 2020 15:14:14 +0200 Subject: [PATCH] [jOOQ/jOOQ#10422] Let User and Role extend Named to give access to quoted / unquoted and qualified / unqualified names --- jOOQ/src/main/java/org/jooq/Role.java | 8 +---- jOOQ/src/main/java/org/jooq/User.java | 8 +---- .../main/java/org/jooq/impl/GrantImpl.java | 2 +- .../main/java/org/jooq/impl/RevokeImpl.java | 34 +++++++------------ .../src/main/java/org/jooq/impl/RoleImpl.java | 17 +++------- .../src/main/java/org/jooq/impl/UserImpl.java | 17 +++------- 6 files changed, 23 insertions(+), 63 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/Role.java b/jOOQ/src/main/java/org/jooq/Role.java index bf85dbdc3f..e29c6c6379 100644 --- a/jOOQ/src/main/java/org/jooq/Role.java +++ b/jOOQ/src/main/java/org/jooq/Role.java @@ -58,10 +58,4 @@ import org.jooq.impl.DSL; * * @author Timur Shaidullin */ -public interface Role extends QueryPart { - - /** - * The name of the role. - */ - String getName(); -} +public interface Role extends Named {} diff --git a/jOOQ/src/main/java/org/jooq/User.java b/jOOQ/src/main/java/org/jooq/User.java index 7f69ed87f1..bd770c5a9f 100644 --- a/jOOQ/src/main/java/org/jooq/User.java +++ b/jOOQ/src/main/java/org/jooq/User.java @@ -58,10 +58,4 @@ import org.jooq.impl.DSL; * * @author Timur Shaidullin */ -public interface User extends QueryPart { - - /** - * The name of the user. - */ - String getName(); -} +public interface User extends Named {} diff --git a/jOOQ/src/main/java/org/jooq/impl/GrantImpl.java b/jOOQ/src/main/java/org/jooq/impl/GrantImpl.java index decc1398ee..2a793c460f 100644 --- a/jOOQ/src/main/java/org/jooq/impl/GrantImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/GrantImpl.java @@ -130,7 +130,7 @@ implements @Override public final GrantImpl to(User to) { - return to(DSL.role(to.getName())); + return to(DSL.role(to.getQualifiedName())); } @Override diff --git a/jOOQ/src/main/java/org/jooq/impl/RevokeImpl.java b/jOOQ/src/main/java/org/jooq/impl/RevokeImpl.java index 2e8bc73791..652310b85a 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RevokeImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/RevokeImpl.java @@ -37,27 +37,17 @@ */ package org.jooq.impl; -import static org.jooq.SQLDialect.HSQLDB; -import static org.jooq.impl.Keywords.K_FROM; -import static org.jooq.impl.Keywords.K_GRANT_OPTION_FOR; -import static org.jooq.impl.Keywords.K_ON; -import static org.jooq.impl.Keywords.K_PUBLIC; -import static org.jooq.impl.Keywords.K_RESTRICT; -import static org.jooq.impl.Keywords.K_REVOKE; +import static org.jooq.impl.DSL.*; +import static org.jooq.impl.Keywords.*; +import static org.jooq.impl.Names.*; +import static org.jooq.impl.SQLDataType.*; +import static org.jooq.impl.Tools.BooleanDataKey.*; +import static org.jooq.SQLDialect.*; -import java.util.Collection; +import org.jooq.*; +import org.jooq.impl.*; -import org.jooq.Clause; -import org.jooq.Configuration; -import org.jooq.Context; -import org.jooq.Name; -import org.jooq.Privilege; -import org.jooq.RevokeFinalStep; -import org.jooq.RevokeFromStep; -import org.jooq.RevokeOnStep; -import org.jooq.Role; -import org.jooq.Table; -import org.jooq.User; +import java.util.*; /** * The REVOKE GRANT OPTION FOR statement. @@ -79,7 +69,7 @@ implements private Table on; private Role from; private Boolean fromPublic; - + RevokeImpl( Configuration configuration, Collection privileges, @@ -121,7 +111,7 @@ implements // ------------------------------------------------------------------------- // XXX: DSL API // ------------------------------------------------------------------------- - + @Override public final RevokeImpl on(String on) { return on(DSL.table(DSL.name(on))); @@ -140,7 +130,7 @@ implements @Override public final RevokeImpl from(User from) { - return from(DSL.role(from.getName())); + return from(DSL.role(from.getQualifiedName())); } @Override diff --git a/jOOQ/src/main/java/org/jooq/impl/RoleImpl.java b/jOOQ/src/main/java/org/jooq/impl/RoleImpl.java index 8abb30b18c..4900f0d475 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RoleImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/RoleImpl.java @@ -38,6 +38,7 @@ package org.jooq.impl; import static org.jooq.Clause.ROLE; +import static org.jooq.impl.CommentImpl.NO_COMMENT; import org.jooq.Clause; import org.jooq.Context; @@ -49,17 +50,16 @@ import org.jooq.Role; * * @author Timur Shaidullin */ -final class RoleImpl extends AbstractQueryPart implements Role { +final class RoleImpl extends AbstractNamed implements Role { /** * Generated UID */ private static final long serialVersionUID = -1169436492818811877L; private static final Clause[] CLAUSES = { ROLE }; - private final Name name; RoleImpl(Name name) { - this.name = name; + super(name, NO_COMMENT); } // ------------------------------------------------------------------------ @@ -68,20 +68,11 @@ final class RoleImpl extends AbstractQueryPart implements Role { @Override public final void accept(Context ctx) { - ctx.visit(name); + ctx.visit(getQualifiedName()); } @Override public final Clause[] clauses(Context ctx) { return CLAUSES; } - - // ------------------------------------------------------------------------ - // XXX: Role API - // ------------------------------------------------------------------------ - - @Override - public final String getName() { - return name.last(); - } } diff --git a/jOOQ/src/main/java/org/jooq/impl/UserImpl.java b/jOOQ/src/main/java/org/jooq/impl/UserImpl.java index 75c1577e93..faf603599b 100644 --- a/jOOQ/src/main/java/org/jooq/impl/UserImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/UserImpl.java @@ -38,6 +38,7 @@ package org.jooq.impl; import static org.jooq.Clause.USER; +import static org.jooq.impl.CommentImpl.NO_COMMENT; import org.jooq.Clause; import org.jooq.Context; @@ -49,17 +50,16 @@ import org.jooq.User; * * @author Timur Shaidullin */ -final class UserImpl extends AbstractQueryPart implements User { +final class UserImpl extends AbstractNamed implements User { /** * Generated UID */ private static final long serialVersionUID = 1169948119720063466L; private static final Clause[] CLAUSES = { USER }; - private final Name name; UserImpl(Name name) { - this.name = name; + super(name, NO_COMMENT); } // ------------------------------------------------------------------------ @@ -68,20 +68,11 @@ final class UserImpl extends AbstractQueryPart implements User { @Override public final void accept(Context ctx) { - ctx.visit(name); + ctx.visit(getQualifiedName()); } @Override public final Clause[] clauses(Context ctx) { return CLAUSES; } - - // ------------------------------------------------------------------------ - // XXX: User API - // ------------------------------------------------------------------------ - - @Override - public final String getName() { - return name.last(); - } }