This is an automated email from the ASF dual-hosted git repository.
liuxun pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/gravitino.git
The following commit(s) were added to refs/heads/main by this push:
new 5b6d71af8 [#4007] improvement: Use template to reduce Privileges
duplicate codes (#4010)
5b6d71af8 is described below
commit 5b6d71af8bd8a361c72e9b6d54e6db8117e7617d
Author: rich7420 <[email protected]>
AuthorDate: Thu Jul 4 10:04:45 2024 +0800
[#4007] improvement: Use template to reduce Privileges duplicate codes
(#4010)
### What changes were proposed in this pull request?
- make the template to reduce these duplicate codes.
### Why are the changes needed?
- Currently
[Privileges.java](https://github.com/datastrato/gravitino/blob/main/api/src/main/java/com/datastrato/gravitino/authorization/Privileges.java#L266)
have more than one thousand duplicate code to instantiation
CreateCatalog, AlterCatalog, ...
- we can use template to make Privileges.java smaller.
Fix: #4007
### Does this PR introduce _any_ user-facing change?
N/A
### How was this patch tested?
`./gradlew test`
---------
Co-authored-by: user <[email protected]>
---
.../gravitino/authorization/Privileges.java | 1276 +++++---------------
1 file changed, 293 insertions(+), 983 deletions(-)
diff --git
a/api/src/main/java/com/datastrato/gravitino/authorization/Privileges.java
b/api/src/main/java/com/datastrato/gravitino/authorization/Privileges.java
index 24df63521..5fa717cad 100644
--- a/api/src/main/java/com/datastrato/gravitino/authorization/Privileges.java
+++ b/api/src/main/java/com/datastrato/gravitino/authorization/Privileges.java
@@ -18,40 +18,7 @@
*/
package com.datastrato.gravitino.authorization;
-import static com.datastrato.gravitino.authorization.Privilege.Name.ADD_GROUP;
-import static com.datastrato.gravitino.authorization.Privilege.Name.ADD_USER;
-import static
com.datastrato.gravitino.authorization.Privilege.Name.ALTER_CATALOG;
-import static
com.datastrato.gravitino.authorization.Privilege.Name.ALTER_SCHEMA;
-import static
com.datastrato.gravitino.authorization.Privilege.Name.CREATE_CATALOG;
-import static
com.datastrato.gravitino.authorization.Privilege.Name.CREATE_FILESET;
-import static
com.datastrato.gravitino.authorization.Privilege.Name.CREATE_METALAKE;
-import static
com.datastrato.gravitino.authorization.Privilege.Name.CREATE_ROLE;
-import static
com.datastrato.gravitino.authorization.Privilege.Name.CREATE_SCHEMA;
-import static
com.datastrato.gravitino.authorization.Privilege.Name.CREATE_TABLE;
-import static
com.datastrato.gravitino.authorization.Privilege.Name.CREATE_TOPIC;
-import static
com.datastrato.gravitino.authorization.Privilege.Name.DELETE_ROLE;
-import static
com.datastrato.gravitino.authorization.Privilege.Name.DROP_CATALOG;
-import static
com.datastrato.gravitino.authorization.Privilege.Name.DROP_FILESET;
-import static
com.datastrato.gravitino.authorization.Privilege.Name.DROP_SCHEMA;
-import static com.datastrato.gravitino.authorization.Privilege.Name.DROP_TABLE;
-import static com.datastrato.gravitino.authorization.Privilege.Name.DROP_TOPIC;
-import static com.datastrato.gravitino.authorization.Privilege.Name.GET_GROUP;
-import static com.datastrato.gravitino.authorization.Privilege.Name.GET_ROLE;
-import static com.datastrato.gravitino.authorization.Privilege.Name.GET_USER;
-import static com.datastrato.gravitino.authorization.Privilege.Name.GRANT_ROLE;
-import static
com.datastrato.gravitino.authorization.Privilege.Name.MANAGE_METALAKE;
-import static
com.datastrato.gravitino.authorization.Privilege.Name.READ_FILESET;
-import static com.datastrato.gravitino.authorization.Privilege.Name.READ_TABLE;
-import static com.datastrato.gravitino.authorization.Privilege.Name.READ_TOPIC;
-import static
com.datastrato.gravitino.authorization.Privilege.Name.REMOVE_GROUP;
-import static
com.datastrato.gravitino.authorization.Privilege.Name.REMOVE_USER;
-import static
com.datastrato.gravitino.authorization.Privilege.Name.REVOKE_ROLE;
-import static
com.datastrato.gravitino.authorization.Privilege.Name.USE_CATALOG;
-import static
com.datastrato.gravitino.authorization.Privilege.Name.USE_METALAKE;
-import static com.datastrato.gravitino.authorization.Privilege.Name.USE_SCHEMA;
-import static
com.datastrato.gravitino.authorization.Privilege.Name.WRITE_FILESET;
-import static
com.datastrato.gravitino.authorization.Privilege.Name.WRITE_TABLE;
-import static
com.datastrato.gravitino.authorization.Privilege.Name.WRITE_TOPIC;
+import java.util.Objects;
/** The helper class for {@link Privilege}. */
public class Privileges {
@@ -276,26 +243,84 @@ public class Privileges {
}
}
- /** The privilege to create a catalog. */
- public abstract static class CreateCatalog implements Privilege {
+ /**
+ * Abstract class representing a generic privilege.
+ *
+ * @param <T> the type of the privilege
+ */
+ public abstract static class GenericPrivilege<T extends GenericPrivilege<T>>
+ implements Privilege {
+
+ /**
+ * Functional interface for creating instances of GenericPrivilege.
+ *
+ * @param <T> the type of the privilege
+ */
+ @FunctionalInterface
+ public interface GenericPrivilegeFactory<T extends GenericPrivilege<T>> {
+ /**
+ * Creates a new instance of the privilege.
+ *
+ * @param condition the condition of the privilege
+ * @param name the name of the privilege
+ * @return the created privilege instance
+ */
+ T create(Condition condition, Name name);
+ }
+
+ private final Condition condition;
+ private final Name name;
+
+ /**
+ * Constructor for GenericPrivilege.
+ *
+ * @param condition the condition of the privilege
+ * @param name the name of the privilege
+ */
+ protected GenericPrivilege(Condition condition, Name name) {
+ this.condition = condition;
+ this.name = name;
+ }
- private static final CreateCatalog ALLOW_INSTANCE =
- new CreateCatalog() {
- @Override
- public Condition condition() {
- return Condition.ALLOW;
- }
- };
+ @Override
+ public Name name() {
+ return name;
+ }
+
+ @Override
+ public Condition condition() {
+ return condition;
+ }
+
+ @Override
+ public String simpleString() {
+ return condition.name() + " " + name.name().toLowerCase().replace('_', '
');
+ }
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof GenericPrivilege)) return false;
+ GenericPrivilege<?> that = (GenericPrivilege<?>) o;
+ return condition == that.condition && name == that.name;
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(condition, name);
+ }
+ }
+
+ /** The privilege to create a catalog. */
+ public static class CreateCatalog extends GenericPrivilege<CreateCatalog> {
+ private static final CreateCatalog ALLOW_INSTANCE =
+ new CreateCatalog(Condition.ALLOW, Name.CREATE_CATALOG);
private static final CreateCatalog DENY_INSTANCE =
- new CreateCatalog() {
- @Override
- public Condition condition() {
- return Condition.DENY;
- }
- };
+ new CreateCatalog(Condition.DENY, Name.CREATE_CATALOG);
- private CreateCatalog() {}
+ private CreateCatalog(Condition condition, Name name) {
+ super(condition, name);
+ }
/** @return The instance with allow condition of the privilege. */
public static CreateCatalog allow() {
@@ -306,40 +331,18 @@ public class Privileges {
public static CreateCatalog deny() {
return DENY_INSTANCE;
}
-
- /** @return The generic name of the privilege. */
- @Override
- public Name name() {
- return CREATE_CATALOG;
- }
-
- /** @return A readable string representation for the privilege. */
- @Override
- public String simpleString() {
- return condition().name() + " create catalog";
- }
}
/** The privilege to alter a catalog. */
- public abstract static class AlterCatalog implements Privilege {
-
+ public static class AlterCatalog extends GenericPrivilege<AlterCatalog> {
private static final AlterCatalog ALLOW_INSTANCE =
- new AlterCatalog() {
- @Override
- public Condition condition() {
- return Condition.ALLOW;
- }
- };
-
+ new AlterCatalog(Condition.ALLOW, Name.CREATE_CATALOG);
private static final AlterCatalog DENY_INSTANCE =
- new AlterCatalog() {
- @Override
- public Condition condition() {
- return Condition.DENY;
- }
- };
+ new AlterCatalog(Condition.DENY, Name.CREATE_CATALOG);
- private AlterCatalog() {}
+ private AlterCatalog(Condition condition, Name name) {
+ super(condition, name);
+ }
/** @return The instance with allow condition of the privilege. */
public static AlterCatalog allow() {
@@ -350,40 +353,18 @@ public class Privileges {
public static AlterCatalog deny() {
return DENY_INSTANCE;
}
-
- /** @return The generic name of the privilege. */
- @Override
- public Name name() {
- return ALTER_CATALOG;
- }
-
- /** @return A readable string representation for the privilege. */
- @Override
- public String simpleString() {
- return condition().name() + " alter catalog";
- }
}
/** The privilege to drop a catalog. */
- public abstract static class DropCatalog implements Privilege {
-
+ public static class DropCatalog extends GenericPrivilege<DropCatalog> {
private static final DropCatalog ALLOW_INSTANCE =
- new DropCatalog() {
- @Override
- public Condition condition() {
- return Condition.ALLOW;
- }
- };
-
+ new DropCatalog(Condition.ALLOW, Name.CREATE_CATALOG);
private static final DropCatalog DENY_INSTANCE =
- new DropCatalog() {
- @Override
- public Condition condition() {
- return Condition.DENY;
- }
- };
+ new DropCatalog(Condition.DENY, Name.CREATE_CATALOG);
- private DropCatalog() {}
+ private DropCatalog(Condition condition, Name name) {
+ super(condition, name);
+ }
/** @return The instance with allow condition of the privilege. */
public static DropCatalog allow() {
@@ -394,39 +375,18 @@ public class Privileges {
public static DropCatalog deny() {
return DENY_INSTANCE;
}
-
- /** @return The generic name of the privilege. */
- @Override
- public Name name() {
- return DROP_CATALOG;
- }
-
- /** @return A readable string representation for the privilege. */
- @Override
- public String simpleString() {
- return condition().name() + " drop catalog";
- }
}
/** The privilege to use a catalog. */
- public abstract static class UseCatalog implements Privilege {
+ public static class UseCatalog extends GenericPrivilege<UseCatalog> {
private static final UseCatalog ALLOW_INSTANCE =
- new UseCatalog() {
- @Override
- public Condition condition() {
- return Condition.ALLOW;
- }
- };
-
+ new UseCatalog(Condition.ALLOW, Name.CREATE_CATALOG);
private static final UseCatalog DENY_INSTANCE =
- new UseCatalog() {
- @Override
- public Condition condition() {
- return Condition.DENY;
- }
- };
+ new UseCatalog(Condition.DENY, Name.CREATE_CATALOG);
- private UseCatalog() {}
+ private UseCatalog(Condition condition, Name name) {
+ super(condition, name);
+ }
/** @return The instance with allow condition of the privilege. */
public static UseCatalog allow() {
@@ -437,40 +397,18 @@ public class Privileges {
public static UseCatalog deny() {
return DENY_INSTANCE;
}
-
- /** @return The generic name of the privilege. */
- @Override
- public Name name() {
- return USE_CATALOG;
- }
-
- /** @return A readable string representation for the privilege. */
- @Override
- public String simpleString() {
- return condition().name() + " use catalog";
- }
}
/** The privilege to use a schema. */
- public abstract static class UseSchema implements Privilege {
-
+ public static class UseSchema extends GenericPrivilege<UseSchema> {
private static final UseSchema ALLOW_INSTANCE =
- new UseSchema() {
- @Override
- public Condition condition() {
- return Condition.ALLOW;
- }
- };
-
+ new UseSchema(Condition.ALLOW, Name.CREATE_CATALOG);
private static final UseSchema DENY_INSTANCE =
- new UseSchema() {
- @Override
- public Condition condition() {
- return Condition.DENY;
- }
- };
+ new UseSchema(Condition.DENY, Name.CREATE_CATALOG);
- private UseSchema() {}
+ private UseSchema(Condition condition, Name name) {
+ super(condition, name);
+ }
/** @return The instance with allow condition of the privilege. */
public static UseSchema allow() {
@@ -481,40 +419,18 @@ public class Privileges {
public static UseSchema deny() {
return DENY_INSTANCE;
}
-
- /** @return The generic name of the privilege. */
- @Override
- public Name name() {
- return USE_SCHEMA;
- }
-
- /** @return A readable string representation for the privilege. */
- @Override
- public String simpleString() {
- return condition().name() + " use schema";
- }
}
/** The privilege to create a schema. */
- public abstract static class CreateSchema implements Privilege {
-
+ public static class CreateSchema extends GenericPrivilege<CreateSchema> {
private static final CreateSchema ALLOW_INSTANCE =
- new CreateSchema() {
- @Override
- public Condition condition() {
- return Condition.ALLOW;
- }
- };
-
+ new CreateSchema(Condition.ALLOW, Name.CREATE_CATALOG);
private static final CreateSchema DENY_INSTANCE =
- new CreateSchema() {
- @Override
- public Condition condition() {
- return Condition.DENY;
- }
- };
+ new CreateSchema(Condition.DENY, Name.CREATE_CATALOG);
- private CreateSchema() {}
+ private CreateSchema(Condition condition, Name name) {
+ super(condition, name);
+ }
/** @return The instance with allow condition of the privilege. */
public static CreateSchema allow() {
@@ -525,40 +441,18 @@ public class Privileges {
public static CreateSchema deny() {
return DENY_INSTANCE;
}
-
- /** @return The generic name of the privilege. */
- @Override
- public Name name() {
- return CREATE_SCHEMA;
- }
-
- /** @return A readable string representation for the privilege. */
- @Override
- public String simpleString() {
- return condition().name() + " create schema";
- }
}
/** The privilege to alter a schema. */
- public abstract static class AlterSchema implements Privilege {
-
+ public static class AlterSchema extends GenericPrivilege<AlterSchema> {
private static final AlterSchema ALLOW_INSTANCE =
- new AlterSchema() {
- @Override
- public Condition condition() {
- return Condition.ALLOW;
- }
- };
-
+ new AlterSchema(Condition.ALLOW, Name.CREATE_CATALOG);
private static final AlterSchema DENY_INSTANCE =
- new AlterSchema() {
- @Override
- public Condition condition() {
- return Condition.DENY;
- }
- };
+ new AlterSchema(Condition.DENY, Name.CREATE_CATALOG);
- private AlterSchema() {}
+ private AlterSchema(Condition condition, Name name) {
+ super(condition, name);
+ }
/** @return The instance with allow condition of the privilege. */
public static AlterSchema allow() {
@@ -569,40 +463,18 @@ public class Privileges {
public static AlterSchema deny() {
return DENY_INSTANCE;
}
-
- /** @return The generic name of the privilege. */
- @Override
- public Name name() {
- return ALTER_SCHEMA;
- }
-
- /** @return A readable string representation for the privilege. */
- @Override
- public String simpleString() {
- return condition().name() + " alter schema";
- }
}
/** The privilege to drop a schema. */
- public abstract static class DropSchema implements Privilege {
-
+ public static class DropSchema extends GenericPrivilege<DropSchema> {
private static final DropSchema ALLOW_INSTANCE =
- new DropSchema() {
- @Override
- public Condition condition() {
- return Condition.ALLOW;
- }
- };
-
+ new DropSchema(Condition.ALLOW, Name.CREATE_CATALOG);
private static final DropSchema DENY_INSTANCE =
- new DropSchema() {
- @Override
- public Condition condition() {
- return Condition.DENY;
- }
- };
+ new DropSchema(Condition.DENY, Name.CREATE_CATALOG);
- private DropSchema() {}
+ private DropSchema(Condition condition, Name name) {
+ super(condition, name);
+ }
/** @return The instance with allow condition of the privilege. */
public static DropSchema allow() {
@@ -613,40 +485,18 @@ public class Privileges {
public static DropSchema deny() {
return DENY_INSTANCE;
}
-
- /** @return The generic name of the privilege. */
- @Override
- public Name name() {
- return DROP_SCHEMA;
- }
-
- /** @return A readable string representation for the privilege. */
- @Override
- public String simpleString() {
- return condition().name() + " drop schema";
- }
}
/** The privilege to create a table. */
- public abstract static class CreateTable implements Privilege {
-
+ public static class CreateTable extends GenericPrivilege<CreateTable> {
private static final CreateTable ALLOW_INSTANCE =
- new CreateTable() {
- @Override
- public Condition condition() {
- return Condition.ALLOW;
- }
- };
-
+ new CreateTable(Condition.ALLOW, Name.CREATE_CATALOG);
private static final CreateTable DENY_INSTANCE =
- new CreateTable() {
- @Override
- public Condition condition() {
- return Condition.DENY;
- }
- };
+ new CreateTable(Condition.DENY, Name.CREATE_CATALOG);
- private CreateTable() {}
+ private CreateTable(Condition condition, Name name) {
+ super(condition, name);
+ }
/** @return The instance with allow condition of the privilege. */
public static CreateTable allow() {
@@ -657,38 +507,18 @@ public class Privileges {
public static CreateTable deny() {
return DENY_INSTANCE;
}
-
- /** @return The generic name of the privilege. */
- @Override
- public Name name() {
- return CREATE_TABLE;
- }
-
- /** @return A readable string representation for the privilege. */
- @Override
- public String simpleString() {
- return condition().name() + " create table";
- }
}
/** The privilege to drop a table. */
- public abstract static class DropTable implements Privilege {
-
+ public static class DropTable extends GenericPrivilege<DropTable> {
private static final DropTable ALLOW_INSTANCE =
- new DropTable() {
- @Override
- public Condition condition() {
- return Condition.ALLOW;
- }
- };
-
+ new DropTable(Condition.ALLOW, Name.CREATE_CATALOG);
private static final DropTable DENY_INSTANCE =
- new DropTable() {
- @Override
- public Condition condition() {
- return Condition.DENY;
- }
- };
+ new DropTable(Condition.DENY, Name.CREATE_CATALOG);
+
+ private DropTable(Condition condition, Name name) {
+ super(condition, name);
+ }
/** @return The instance with allow condition of the privilege. */
public static DropTable allow() {
@@ -699,38 +529,18 @@ public class Privileges {
public static DropTable deny() {
return DENY_INSTANCE;
}
-
- /** @return The generic name of the privilege. */
- @Override
- public Name name() {
- return DROP_TABLE;
- }
-
- /** @return A readable string representation for the privilege. */
- @Override
- public String simpleString() {
- return condition().name() + " drop table";
- }
}
/** The privilege to read a table. */
- public abstract static class ReadTable implements Privilege {
-
+ public static class ReadTable extends GenericPrivilege<ReadTable> {
private static final ReadTable ALLOW_INSTANCE =
- new ReadTable() {
- @Override
- public Condition condition() {
- return Condition.ALLOW;
- }
- };
-
+ new ReadTable(Condition.ALLOW, Name.CREATE_CATALOG);
private static final ReadTable DENY_INSTANCE =
- new ReadTable() {
- @Override
- public Condition condition() {
- return Condition.DENY;
- }
- };
+ new ReadTable(Condition.DENY, Name.CREATE_CATALOG);
+
+ private ReadTable(Condition condition, Name name) {
+ super(condition, name);
+ }
/** @return The instance with allow condition of the privilege. */
public static ReadTable allow() {
@@ -741,38 +551,18 @@ public class Privileges {
public static ReadTable deny() {
return DENY_INSTANCE;
}
-
- /** @return The generic name of the privilege. */
- @Override
- public Name name() {
- return READ_TABLE;
- }
-
- /** @return A readable string representation for the privilege. */
- @Override
- public String simpleString() {
- return condition().name() + " read table";
- }
}
/** The privilege to write a table. */
- public abstract static class WriteTable implements Privilege {
-
+ public static class WriteTable extends GenericPrivilege<WriteTable> {
private static final WriteTable ALLOW_INSTANCE =
- new WriteTable() {
- @Override
- public Condition condition() {
- return Condition.ALLOW;
- }
- };
-
+ new WriteTable(Condition.ALLOW, Name.CREATE_CATALOG);
private static final WriteTable DENY_INSTANCE =
- new WriteTable() {
- @Override
- public Condition condition() {
- return Condition.DENY;
- }
- };
+ new WriteTable(Condition.DENY, Name.CREATE_CATALOG);
+
+ private WriteTable(Condition condition, Name name) {
+ super(condition, name);
+ }
/** @return The instance with allow condition of the privilege. */
public static WriteTable allow() {
@@ -783,38 +573,18 @@ public class Privileges {
public static WriteTable deny() {
return DENY_INSTANCE;
}
-
- /** @return The generic name of the privilege. */
- @Override
- public Name name() {
- return WRITE_TABLE;
- }
-
- /** @return A readable string representation for the privilege. */
- @Override
- public String simpleString() {
- return condition().name() + " write table";
- }
}
/** The privilege to create a fileset. */
- public abstract static class CreateFileset implements Privilege {
-
+ public static class CreateFileset extends GenericPrivilege<CreateFileset> {
private static final CreateFileset ALLOW_INSTANCE =
- new CreateFileset() {
- @Override
- public Condition condition() {
- return Condition.ALLOW;
- }
- };
-
+ new CreateFileset(Condition.ALLOW, Name.CREATE_CATALOG);
private static final CreateFileset DENY_INSTANCE =
- new CreateFileset() {
- @Override
- public Condition condition() {
- return Condition.DENY;
- }
- };
+ new CreateFileset(Condition.DENY, Name.CREATE_CATALOG);
+
+ private CreateFileset(Condition condition, Name name) {
+ super(condition, name);
+ }
/** @return The instance with allow condition of the privilege. */
public static CreateFileset allow() {
@@ -825,38 +595,18 @@ public class Privileges {
public static CreateFileset deny() {
return DENY_INSTANCE;
}
-
- /** @return The generic name of the privilege. */
- @Override
- public Name name() {
- return CREATE_FILESET;
- }
-
- /** @return A readable string representation for the privilege. */
- @Override
- public String simpleString() {
- return condition().name() + " create fileset";
- }
}
/** The privilege to drop a fileset. */
- public abstract static class DropFileset implements Privilege {
-
+ public static class DropFileset extends GenericPrivilege<DropFileset> {
private static final DropFileset ALLOW_INSTANCE =
- new DropFileset() {
- @Override
- public Condition condition() {
- return Condition.ALLOW;
- }
- };
-
+ new DropFileset(Condition.ALLOW, Name.CREATE_CATALOG);
private static final DropFileset DENY_INSTANCE =
- new DropFileset() {
- @Override
- public Condition condition() {
- return Condition.DENY;
- }
- };
+ new DropFileset(Condition.DENY, Name.CREATE_CATALOG);
+
+ private DropFileset(Condition condition, Name name) {
+ super(condition, name);
+ }
/** @return The instance with allow condition of the privilege. */
public static DropFileset allow() {
@@ -867,38 +617,18 @@ public class Privileges {
public static DropFileset deny() {
return DENY_INSTANCE;
}
-
- /** @return The generic name of the privilege. */
- @Override
- public Name name() {
- return DROP_FILESET;
- }
-
- /** @return A readable string representation for the privilege. */
- @Override
- public String simpleString() {
- return condition().name() + " drop fileset";
- }
}
/** The privilege to read a fileset. */
- public abstract static class ReadFileset implements Privilege {
-
+ public static class ReadFileset extends GenericPrivilege<ReadFileset> {
private static final ReadFileset ALLOW_INSTANCE =
- new ReadFileset() {
- @Override
- public Condition condition() {
- return Condition.ALLOW;
- }
- };
-
+ new ReadFileset(Condition.ALLOW, Name.CREATE_CATALOG);
private static final ReadFileset DENY_INSTANCE =
- new ReadFileset() {
- @Override
- public Condition condition() {
- return Condition.DENY;
- }
- };
+ new ReadFileset(Condition.DENY, Name.CREATE_CATALOG);
+
+ private ReadFileset(Condition condition, Name name) {
+ super(condition, name);
+ }
/** @return The instance with allow condition of the privilege. */
public static ReadFileset allow() {
@@ -909,38 +639,18 @@ public class Privileges {
public static ReadFileset deny() {
return DENY_INSTANCE;
}
-
- /** @return The generic name of the privilege. */
- @Override
- public Name name() {
- return READ_FILESET;
- }
-
- /** @return A readable string representation for the privilege. */
- @Override
- public String simpleString() {
- return condition().name() + " read fileset";
- }
}
/** The privilege to write a fileset. */
- public abstract static class WriteFileset implements Privilege {
-
+ public static class WriteFileset extends GenericPrivilege<WriteFileset> {
private static final WriteFileset ALLOW_INSTANCE =
- new WriteFileset() {
- @Override
- public Condition condition() {
- return Condition.ALLOW;
- }
- };
-
+ new WriteFileset(Condition.ALLOW, Name.CREATE_CATALOG);
private static final WriteFileset DENY_INSTANCE =
- new WriteFileset() {
- @Override
- public Condition condition() {
- return Condition.DENY;
- }
- };
+ new WriteFileset(Condition.DENY, Name.CREATE_CATALOG);
+
+ private WriteFileset(Condition condition, Name name) {
+ super(condition, name);
+ }
/** @return The instance with allow condition of the privilege. */
public static WriteFileset allow() {
@@ -951,40 +661,18 @@ public class Privileges {
public static WriteFileset deny() {
return DENY_INSTANCE;
}
-
- /** @return The generic name of the privilege. */
- @Override
- public Name name() {
- return WRITE_FILESET;
- }
-
- /** @return A readable string representation for the privilege. */
- @Override
- public String simpleString() {
- return condition().name() + " write fileset";
- }
}
/** The privilege to create a topic. */
- public abstract static class CreateTopic implements Privilege {
-
+ public static class CreateTopic extends GenericPrivilege<CreateTopic> {
private static final CreateTopic ALLOW_INSTANCE =
- new CreateTopic() {
- @Override
- public Condition condition() {
- return Condition.ALLOW;
- }
- };
-
+ new CreateTopic(Condition.ALLOW, Name.CREATE_CATALOG);
private static final CreateTopic DENY_INSTANCE =
- new CreateTopic() {
- @Override
- public Condition condition() {
- return Condition.DENY;
- }
- };
+ new CreateTopic(Condition.DENY, Name.CREATE_CATALOG);
- private CreateTopic() {}
+ private CreateTopic(Condition condition, Name name) {
+ super(condition, name);
+ }
/** @return The instance with allow condition of the privilege. */
public static CreateTopic allow() {
@@ -995,38 +683,18 @@ public class Privileges {
public static CreateTopic deny() {
return DENY_INSTANCE;
}
-
- /** @return The generic name of the privilege. */
- @Override
- public Name name() {
- return CREATE_TOPIC;
- }
-
- /** @return A readable string representation for the privilege. */
- @Override
- public String simpleString() {
- return condition().name() + " create topic";
- }
}
/** The privilege to drop a topic. */
- public abstract static class DropTopic implements Privilege {
-
+ public static class DropTopic extends GenericPrivilege<DropTopic> {
private static final DropTopic ALLOW_INSTANCE =
- new DropTopic() {
- @Override
- public Condition condition() {
- return Condition.ALLOW;
- }
- };
-
+ new DropTopic(Condition.ALLOW, Name.CREATE_CATALOG);
private static final DropTopic DENY_INSTANCE =
- new DropTopic() {
- @Override
- public Condition condition() {
- return Condition.DENY;
- }
- };
+ new DropTopic(Condition.DENY, Name.CREATE_CATALOG);
+
+ private DropTopic(Condition condition, Name name) {
+ super(condition, name);
+ }
/** @return The instance with allow condition of the privilege. */
public static DropTopic allow() {
@@ -1037,38 +705,18 @@ public class Privileges {
public static DropTopic deny() {
return DENY_INSTANCE;
}
-
- /** @return The generic name of the privilege. */
- @Override
- public Name name() {
- return DROP_TOPIC;
- }
-
- /** @return A readable string representation for the privilege. */
- @Override
- public String simpleString() {
- return condition().name() + " drop topic";
- }
}
/** The privilege to read a topic. */
- public abstract static class ReadTopic implements Privilege {
-
+ public static class ReadTopic extends GenericPrivilege<ReadTopic> {
private static final ReadTopic ALLOW_INSTANCE =
- new ReadTopic() {
- @Override
- public Condition condition() {
- return Condition.ALLOW;
- }
- };
-
+ new ReadTopic(Condition.ALLOW, Name.CREATE_CATALOG);
private static final ReadTopic DENY_INSTANCE =
- new ReadTopic() {
- @Override
- public Condition condition() {
- return Condition.DENY;
- }
- };
+ new ReadTopic(Condition.DENY, Name.CREATE_CATALOG);
+
+ private ReadTopic(Condition condition, Name name) {
+ super(condition, name);
+ }
/** @return The instance with allow condition of the privilege. */
public static ReadTopic allow() {
@@ -1079,38 +727,18 @@ public class Privileges {
public static ReadTopic deny() {
return DENY_INSTANCE;
}
-
- /** @return The generic name of the privilege. */
- @Override
- public Name name() {
- return READ_TOPIC;
- }
-
- /** @return A readable string representation for the privilege. */
- @Override
- public String simpleString() {
- return condition().name() + " read topic";
- }
}
/** The privilege to write a topic. */
- public abstract static class WriteTopic implements Privilege {
-
+ public static class WriteTopic extends GenericPrivilege<WriteTopic> {
private static final WriteTopic ALLOW_INSTANCE =
- new WriteTopic() {
- @Override
- public Condition condition() {
- return Condition.ALLOW;
- }
- };
-
+ new WriteTopic(Condition.ALLOW, Name.CREATE_CATALOG);
private static final WriteTopic DENY_INSTANCE =
- new WriteTopic() {
- @Override
- public Condition condition() {
- return Condition.DENY;
- }
- };
+ new WriteTopic(Condition.DENY, Name.CREATE_CATALOG);
+
+ private WriteTopic(Condition condition, Name name) {
+ super(condition, name);
+ }
/** @return The instance with allow condition of the privilege. */
public static WriteTopic allow() {
@@ -1121,38 +749,18 @@ public class Privileges {
public static WriteTopic deny() {
return DENY_INSTANCE;
}
-
- /** @return The generic name of the privilege. */
- @Override
- public Name name() {
- return WRITE_TOPIC;
- }
-
- /** @return A readable string representation for the privilege. */
- @Override
- public String simpleString() {
- return condition().name() + " write topic";
- }
}
/** The privilege to manage a metalake. */
- public abstract static class ManageMetalake implements Privilege {
-
+ public static class ManageMetalake extends GenericPrivilege<ManageMetalake> {
private static final ManageMetalake ALLOW_INSTANCE =
- new ManageMetalake() {
- @Override
- public Condition condition() {
- return Condition.ALLOW;
- }
- };
-
+ new ManageMetalake(Condition.ALLOW, Name.CREATE_CATALOG);
private static final ManageMetalake DENY_INSTANCE =
- new ManageMetalake() {
- @Override
- public Condition condition() {
- return Condition.DENY;
- }
- };
+ new ManageMetalake(Condition.DENY, Name.CREATE_CATALOG);
+
+ private ManageMetalake(Condition condition, Name name) {
+ super(condition, name);
+ }
/** @return The instance with allow condition of the privilege. */
public static ManageMetalake allow() {
@@ -1163,38 +771,18 @@ public class Privileges {
public static ManageMetalake deny() {
return DENY_INSTANCE;
}
-
- /** @return The generic name of the privilege. */
- @Override
- public Name name() {
- return MANAGE_METALAKE;
- }
-
- /** @return A readable string representation for the privilege. */
- @Override
- public String simpleString() {
- return condition().name() + " manage metalake";
- }
}
- /** The privilege to manage a metalake. */
- public abstract static class CreateMetalake implements Privilege {
-
+ /** The privilege to create a metalake. */
+ public static class CreateMetalake extends GenericPrivilege<CreateMetalake> {
private static final CreateMetalake ALLOW_INSTANCE =
- new CreateMetalake() {
- @Override
- public Condition condition() {
- return Condition.ALLOW;
- }
- };
-
+ new CreateMetalake(Condition.ALLOW, Name.CREATE_CATALOG);
private static final CreateMetalake DENY_INSTANCE =
- new CreateMetalake() {
- @Override
- public Condition condition() {
- return Condition.DENY;
- }
- };
+ new CreateMetalake(Condition.DENY, Name.CREATE_CATALOG);
+
+ private CreateMetalake(Condition condition, Name name) {
+ super(condition, name);
+ }
/** @return The instance with allow condition of the privilege. */
public static CreateMetalake allow() {
@@ -1205,40 +793,18 @@ public class Privileges {
public static CreateMetalake deny() {
return DENY_INSTANCE;
}
-
- /** @return The generic name of the privilege. */
- @Override
- public Name name() {
- return CREATE_METALAKE;
- }
-
- /** @return A readable string representation for the privilege. */
- @Override
- public String simpleString() {
- return condition().name() + " create metalake";
- }
}
/** The privilege to use a metalake. */
- public abstract static class UseMetalake implements Privilege {
-
+ public static class UseMetalake extends GenericPrivilege<UseMetalake> {
private static final UseMetalake ALLOW_INSTANCE =
- new UseMetalake() {
- @Override
- public Condition condition() {
- return Condition.ALLOW;
- }
- };
-
+ new UseMetalake(Condition.ALLOW, Name.CREATE_CATALOG);
private static final UseMetalake DENY_INSTANCE =
- new UseMetalake() {
- @Override
- public Condition condition() {
- return Condition.DENY;
- }
- };
+ new UseMetalake(Condition.DENY, Name.CREATE_CATALOG);
- private UseMetalake() {}
+ private UseMetalake(Condition condition, Name name) {
+ super(condition, name);
+ }
/** @return The instance with allow condition of the privilege. */
public static UseMetalake allow() {
@@ -1249,38 +815,16 @@ public class Privileges {
public static UseMetalake deny() {
return DENY_INSTANCE;
}
-
- /** @return The generic name of the privilege. */
- @Override
- public Name name() {
- return USE_METALAKE;
- }
-
- /** @return A readable string representation for the privilege. */
- @Override
- public String simpleString() {
- return condition().name() + " use metalake";
- }
}
/** The privilege to get a user. */
- public abstract static class GetUser implements Privilege {
-
- private static final GetUser ALLOW_INSTANCE =
- new GetUser() {
- @Override
- public Condition condition() {
- return Condition.ALLOW;
- }
- };
-
- private static final GetUser DENY_INSTANCE =
- new GetUser() {
- @Override
- public Condition condition() {
- return Condition.DENY;
- }
- };
+ public static class GetUser extends GenericPrivilege<GetUser> {
+ private static final GetUser ALLOW_INSTANCE = new GetUser(Condition.ALLOW,
Name.CREATE_CATALOG);
+ private static final GetUser DENY_INSTANCE = new GetUser(Condition.DENY,
Name.CREATE_CATALOG);
+
+ private GetUser(Condition condition, Name name) {
+ super(condition, name);
+ }
/** @return The instance with allow condition of the privilege. */
public static GetUser allow() {
@@ -1291,40 +835,16 @@ public class Privileges {
public static GetUser deny() {
return DENY_INSTANCE;
}
-
- /** @return The generic name of the privilege. */
- @Override
- public Name name() {
- return GET_USER;
- }
-
- /** @return A readable string representation for the privilege. */
- @Override
- public String simpleString() {
- return condition().name() + " get user";
- }
}
/** The privilege to add a user. */
- public abstract static class AddUser implements Privilege {
-
- private static final AddUser ALLOW_INSTANCE =
- new AddUser() {
- @Override
- public Condition condition() {
- return Condition.ALLOW;
- }
- };
-
- private static final AddUser DENY_INSTANCE =
- new AddUser() {
- @Override
- public Condition condition() {
- return Condition.DENY;
- }
- };
-
- private AddUser() {}
+ public static class AddUser extends GenericPrivilege<AddUser> {
+ private static final AddUser ALLOW_INSTANCE = new AddUser(Condition.ALLOW,
Name.CREATE_CATALOG);
+ private static final AddUser DENY_INSTANCE = new AddUser(Condition.DENY,
Name.CREATE_CATALOG);
+
+ private AddUser(Condition condition, Name name) {
+ super(condition, name);
+ }
/** @return The instance with allow condition of the privilege. */
public static AddUser allow() {
@@ -1335,38 +855,18 @@ public class Privileges {
public static AddUser deny() {
return DENY_INSTANCE;
}
-
- /** @return The generic name of the privilege. */
- @Override
- public Name name() {
- return ADD_USER;
- }
-
- /** @return A readable string representation for the privilege. */
- @Override
- public String simpleString() {
- return condition().name() + " add user";
- }
}
/** The privilege to remove a user. */
- public abstract static class RemoveUser implements Privilege {
-
+ public static class RemoveUser extends GenericPrivilege<RemoveUser> {
private static final RemoveUser ALLOW_INSTANCE =
- new RemoveUser() {
- @Override
- public Condition condition() {
- return Condition.ALLOW;
- }
- };
-
+ new RemoveUser(Condition.ALLOW, Name.CREATE_CATALOG);
private static final RemoveUser DENY_INSTANCE =
- new RemoveUser() {
- @Override
- public Condition condition() {
- return Condition.DENY;
- }
- };
+ new RemoveUser(Condition.DENY, Name.CREATE_CATALOG);
+
+ private RemoveUser(Condition condition, Name name) {
+ super(condition, name);
+ }
/** @return The instance with allow condition of the privilege. */
public static RemoveUser allow() {
@@ -1377,40 +877,17 @@ public class Privileges {
public static RemoveUser deny() {
return DENY_INSTANCE;
}
-
- /** @return The generic name of the privilege. */
- @Override
- public Name name() {
- return REMOVE_USER;
- }
-
- /** @return A readable string representation for the privilege. */
- @Override
- public String simpleString() {
- return condition().name() + " remove user";
- }
}
/** The privilege to add a group. */
- public abstract static class AddGroup implements Privilege {
-
+ public static class AddGroup extends GenericPrivilege<AddGroup> {
private static final AddGroup ALLOW_INSTANCE =
- new AddGroup() {
- @Override
- public Condition condition() {
- return Condition.ALLOW;
- }
- };
-
- private static final AddGroup DENY_INSTANCE =
- new AddGroup() {
- @Override
- public Condition condition() {
- return Condition.DENY;
- }
- };
-
- private AddGroup() {}
+ new AddGroup(Condition.ALLOW, Name.CREATE_CATALOG);
+ private static final AddGroup DENY_INSTANCE = new AddGroup(Condition.DENY,
Name.CREATE_CATALOG);
+
+ private AddGroup(Condition condition, Name name) {
+ super(condition, name);
+ }
/** @return The instance with allow condition of the privilege. */
public static AddGroup allow() {
@@ -1421,40 +898,18 @@ public class Privileges {
public static AddGroup deny() {
return DENY_INSTANCE;
}
-
- /** @return The generic name of the privilege. */
- @Override
- public Name name() {
- return ADD_GROUP;
- }
-
- /** @return A readable string representation for the privilege. */
- @Override
- public String simpleString() {
- return condition().name() + " add group";
- }
}
/** The privilege to remove a group. */
- public abstract static class RemoveGroup implements Privilege {
-
+ public static class RemoveGroup extends GenericPrivilege<RemoveGroup> {
private static final RemoveGroup ALLOW_INSTANCE =
- new RemoveGroup() {
- @Override
- public Condition condition() {
- return Condition.ALLOW;
- }
- };
-
+ new RemoveGroup(Condition.ALLOW, Name.CREATE_CATALOG);
private static final RemoveGroup DENY_INSTANCE =
- new RemoveGroup() {
- @Override
- public Condition condition() {
- return Condition.DENY;
- }
- };
+ new RemoveGroup(Condition.DENY, Name.CREATE_CATALOG);
- private RemoveGroup() {}
+ private RemoveGroup(Condition condition, Name name) {
+ super(condition, name);
+ }
/** @return The instance with allow condition of the privilege. */
public static RemoveGroup allow() {
@@ -1465,40 +920,17 @@ public class Privileges {
public static RemoveGroup deny() {
return DENY_INSTANCE;
}
-
- /** @return The generic name of the privilege. */
- @Override
- public Name name() {
- return REMOVE_GROUP;
- }
-
- /** @return A readable string representation for the privilege. */
- @Override
- public String simpleString() {
- return condition().name() + " remove group";
- }
}
/** The privilege to get a group. */
- public abstract static class GetGroup implements Privilege {
-
+ public static class GetGroup extends GenericPrivilege<GetGroup> {
private static final GetGroup ALLOW_INSTANCE =
- new GetGroup() {
- @Override
- public Condition condition() {
- return Condition.ALLOW;
- }
- };
-
- private static final GetGroup DENY_INSTANCE =
- new GetGroup() {
- @Override
- public Condition condition() {
- return Condition.DENY;
- }
- };
-
- private GetGroup() {}
+ new GetGroup(Condition.ALLOW, Name.CREATE_CATALOG);
+ private static final GetGroup DENY_INSTANCE = new GetGroup(Condition.DENY,
Name.CREATE_CATALOG);
+
+ private GetGroup(Condition condition, Name name) {
+ super(condition, name);
+ }
/** @return The instance with allow condition of the privilege. */
public static GetGroup allow() {
@@ -1509,38 +941,18 @@ public class Privileges {
public static GetGroup deny() {
return DENY_INSTANCE;
}
-
- /** @return The generic name of the privilege. */
- @Override
- public Name name() {
- return GET_GROUP;
- }
-
- /** @return A readable string representation for the privilege. */
- @Override
- public String simpleString() {
- return condition().name() + " get group";
- }
}
/** The privilege to create a role. */
- public abstract static class CreateRole implements Privilege {
-
+ public static class CreateRole extends GenericPrivilege<CreateRole> {
private static final CreateRole ALLOW_INSTANCE =
- new CreateRole() {
- @Override
- public Condition condition() {
- return Condition.ALLOW;
- }
- };
-
+ new CreateRole(Condition.ALLOW, Name.CREATE_CATALOG);
private static final CreateRole DENY_INSTANCE =
- new CreateRole() {
- @Override
- public Condition condition() {
- return Condition.DENY;
- }
- };
+ new CreateRole(Condition.DENY, Name.CREATE_CATALOG);
+
+ private CreateRole(Condition condition, Name name) {
+ super(condition, name);
+ }
/** @return The instance with allow condition of the privilege. */
public static CreateRole allow() {
@@ -1551,40 +963,16 @@ public class Privileges {
public static CreateRole deny() {
return DENY_INSTANCE;
}
-
- /** @return The generic name of the privilege. */
- @Override
- public Name name() {
- return CREATE_ROLE;
- }
-
- /** @return A readable string representation for the privilege. */
- @Override
- public String simpleString() {
- return condition().name() + " create role";
- }
}
/** The privilege to get a role. */
- public abstract static class GetRole implements Privilege {
-
- private static final GetRole ALLOW_INSTANCE =
- new GetRole() {
- @Override
- public Condition condition() {
- return Condition.ALLOW;
- }
- };
-
- private static final GetRole DENY_INSTANCE =
- new GetRole() {
- @Override
- public Condition condition() {
- return Condition.DENY;
- }
- };
-
- private GetRole() {}
+ public static class GetRole extends GenericPrivilege<GetRole> {
+ private static final GetRole ALLOW_INSTANCE = new GetRole(Condition.ALLOW,
Name.CREATE_CATALOG);
+ private static final GetRole DENY_INSTANCE = new GetRole(Condition.DENY,
Name.CREATE_CATALOG);
+
+ private GetRole(Condition condition, Name name) {
+ super(condition, name);
+ }
/** @return The instance with allow condition of the privilege. */
public static GetRole allow() {
@@ -1595,40 +983,18 @@ public class Privileges {
public static GetRole deny() {
return DENY_INSTANCE;
}
-
- /** @return The generic name of the privilege. */
- @Override
- public Name name() {
- return GET_ROLE;
- }
-
- /** @return A readable string representation for the privilege. */
- @Override
- public String simpleString() {
- return condition().name() + " get role";
- }
}
/** The privilege to delete a role. */
- public abstract static class DeleteRole implements Privilege {
-
+ public static class DeleteRole extends GenericPrivilege<DeleteRole> {
private static final DeleteRole ALLOW_INSTANCE =
- new DeleteRole() {
- @Override
- public Condition condition() {
- return Condition.ALLOW;
- }
- };
-
+ new DeleteRole(Condition.ALLOW, Name.CREATE_CATALOG);
private static final DeleteRole DENY_INSTANCE =
- new DeleteRole() {
- @Override
- public Condition condition() {
- return Condition.DENY;
- }
- };
+ new DeleteRole(Condition.DENY, Name.CREATE_CATALOG);
- private DeleteRole() {}
+ private DeleteRole(Condition condition, Name name) {
+ super(condition, name);
+ }
/** @return The instance with allow condition of the privilege. */
public static DeleteRole allow() {
@@ -1639,40 +1005,18 @@ public class Privileges {
public static DeleteRole deny() {
return DENY_INSTANCE;
}
-
- /** @return The generic name of the privilege. */
- @Override
- public Name name() {
- return DELETE_ROLE;
- }
-
- /** @return A readable string representation for the privilege. */
- @Override
- public String simpleString() {
- return condition().name() + " delete role";
- }
}
/** The privilege to grant a role to the user or the group. */
- public abstract static class GrantRole implements Privilege {
-
+ public static class GrantRole extends GenericPrivilege<GrantRole> {
private static final GrantRole ALLOW_INSTANCE =
- new GrantRole() {
- @Override
- public Condition condition() {
- return Condition.ALLOW;
- }
- };
-
+ new GrantRole(Condition.ALLOW, Name.CREATE_CATALOG);
private static final GrantRole DENY_INSTANCE =
- new GrantRole() {
- @Override
- public Condition condition() {
- return Condition.DENY;
- }
- };
+ new GrantRole(Condition.DENY, Name.CREATE_CATALOG);
- private GrantRole() {}
+ private GrantRole(Condition condition, Name name) {
+ super(condition, name);
+ }
/** @return The instance with allow condition of the privilege. */
public static GrantRole allow() {
@@ -1683,40 +1027,18 @@ public class Privileges {
public static GrantRole deny() {
return DENY_INSTANCE;
}
-
- /** @return The generic name of the privilege. */
- @Override
- public Name name() {
- return GRANT_ROLE;
- }
-
- /** @return A readable string representation for the privilege. */
- @Override
- public String simpleString() {
- return condition().name() + " grant role";
- }
}
/** The privilege to revoke a role from the user or the group. */
- public abstract static class RevokeRole implements Privilege {
-
+ public static class RevokeRole extends GenericPrivilege<RevokeRole> {
private static final RevokeRole ALLOW_INSTANCE =
- new RevokeRole() {
- @Override
- public Condition condition() {
- return Condition.ALLOW;
- }
- };
-
+ new RevokeRole(Condition.ALLOW, Name.CREATE_CATALOG);
private static final RevokeRole DENY_INSTANCE =
- new RevokeRole() {
- @Override
- public Condition condition() {
- return Condition.DENY;
- }
- };
+ new RevokeRole(Condition.DENY, Name.CREATE_CATALOG);
- private RevokeRole() {}
+ private RevokeRole(Condition condition, Name name) {
+ super(condition, name);
+ }
/** @return The instance with allow condition of the privilege. */
public static RevokeRole allow() {
@@ -1727,17 +1049,5 @@ public class Privileges {
public static RevokeRole deny() {
return DENY_INSTANCE;
}
-
- /** @return The generic name of the privilege. */
- @Override
- public Name name() {
- return REVOKE_ROLE;
- }
-
- /** @return A readable string representation for the privilege. */
- @Override
- public String simpleString() {
- return condition().name() + " revoke role";
- }
}
}