PermissionSetUnion.java
net.minecraft.server.permissions.PermissionSetUnion
信息
- 全限定名:net.minecraft.server.permissions.PermissionSetUnion
- 类型:public class
- 包:net.minecraft.server.permissions
- 源码路径:src/main/java/net/minecraft/server/permissions/PermissionSetUnion.java
- 起始行号:L7
- 实现:PermissionSet
- 职责:
TODO
字段/常量
permissions- 类型:
ReferenceSet<PermissionSet> - 修饰符:
private final - 源码定位:
L8 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
PermissionSetUnion(PermissionSet first, PermissionSet second) @ L10
- 构造器名:PermissionSetUnion
- 源码定位:L10
- 修饰符:package-private
参数:
- first: PermissionSet
- second: PermissionSet
说明:
TODO
private PermissionSetUnion(ReferenceSet<PermissionSet> oldPermissions, PermissionSet other) @ L16
- 构造器名:PermissionSetUnion
- 源码定位:L16
- 修饰符:private
参数:
- oldPermissions: ReferenceSet
- other: PermissionSet
说明:
TODO
private PermissionSetUnion(ReferenceSet<PermissionSet> oldPermissions, ReferenceSet<PermissionSet> other) @ L22
- 构造器名:PermissionSetUnion
- 源码定位:L22
- 修饰符:private
参数:
- oldPermissions: ReferenceSet
- other: ReferenceSet
说明:
TODO
方法
下面的方法块按源码顺序生成。
public boolean hasPermission(Permission permission) @ L28
- 方法名:hasPermission
- 源码定位:L28
- 返回类型:boolean
- 修饰符:public
参数:
- permission: Permission
说明:
TODO
public PermissionSet union(PermissionSet other) @ L39
- 方法名:union
- 源码定位:L39
- 返回类型:PermissionSet
- 修饰符:public
参数:
- other: PermissionSet
说明:
TODO
public ReferenceSet<PermissionSet> getPermissions() @ L46
- 方法名:getPermissions
- 源码定位:L46
- 返回类型:ReferenceSet
- 修饰符:public
参数:
- 无
说明:
TODO
private void ensureNoUnionsWithinUnions() @ L51
- 方法名:ensureNoUnionsWithinUnions
- 源码定位:L51
- 返回类型:void
- 修饰符:private
参数:
- 无
说明:
TODO
代码
public class PermissionSetUnion implements PermissionSet {
private final ReferenceSet<PermissionSet> permissions = new ReferenceArraySet<>();
PermissionSetUnion(PermissionSet first, PermissionSet second) {
this.permissions.add(first);
this.permissions.add(second);
this.ensureNoUnionsWithinUnions();
}
private PermissionSetUnion(ReferenceSet<PermissionSet> oldPermissions, PermissionSet other) {
this.permissions.addAll(oldPermissions);
this.permissions.add(other);
this.ensureNoUnionsWithinUnions();
}
private PermissionSetUnion(ReferenceSet<PermissionSet> oldPermissions, ReferenceSet<PermissionSet> other) {
this.permissions.addAll(oldPermissions);
this.permissions.addAll(other);
this.ensureNoUnionsWithinUnions();
}
@Override
public boolean hasPermission(Permission permission) {
for (PermissionSet set : this.permissions) {
if (set.hasPermission(permission)) {
return true;
}
}
return false;
}
@Override
public PermissionSet union(PermissionSet other) {
return other instanceof PermissionSetUnion otherUnion
? new PermissionSetUnion(this.permissions, otherUnion.permissions)
: new PermissionSetUnion(this.permissions, other);
}
@VisibleForTesting
public ReferenceSet<PermissionSet> getPermissions() {
return new ReferenceArraySet<>(this.permissions);
}
private void ensureNoUnionsWithinUnions() {
for (PermissionSet set : this.permissions) {
if (set instanceof PermissionSetUnion) {
throw new IllegalArgumentException("Cannot have PermissionSetUnion within another PermissionSetUnion");
}
}
}
}引用的其他类
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数/字段/实现/返回值
- 引用位置: