Class AbstractPermissible
- java.lang.Object
-
- de.dytanic.cloudnet.common.document.gson.BasicJsonDocPropertyable
-
- de.dytanic.cloudnet.driver.serialization.json.SerializableJsonDocPropertyable
-
- de.dytanic.cloudnet.driver.permission.AbstractPermissible
-
- All Implemented Interfaces:
de.dytanic.cloudnet.common.document.gson.IJsonDocPropertyable,de.dytanic.cloudnet.common.INameable,IPermissible,SerializableObject,java.lang.Comparable<IPermissible>
- Direct Known Subclasses:
PermissionGroup,PermissionUser
public abstract class AbstractPermissible extends SerializableJsonDocPropertyable implements IPermissible
-
-
Field Summary
Fields Modifier and Type Field Description protected longcreatedTimeprotected java.util.Map<java.lang.String,java.util.Collection<Permission>>groupPermissionsprotected java.lang.Stringnameprotected java.util.List<Permission>permissionsprotected intpotency
-
Constructor Summary
Constructors Constructor Description AbstractPermissible()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanaddPermission(@NotNull Permission permission)Adds a new permission to this permissible and updates it if a permission with that name already exists.booleanaddPermission(@NotNull java.lang.String group, @NotNull Permission permission)Adds a new permission to this permissible and updates it if a permission with that name already exists.longgetCreatedTime()java.util.Map<java.lang.String,java.util.Collection<Permission>>getGroupPermissions()Gets all effective permissions on a specific group.java.lang.StringgetName()java.util.List<Permission>getPermissions()Gets all effective global permissions.intgetPotency()Gets the potency of this permissible.voidread(@NotNull ProtocolBuffer buffer)booleanremovePermission(@NotNull java.lang.String permission)Removes a permission out of this permissible.booleanremovePermission(@NotNull java.lang.String group, @NotNull java.lang.String permission)Removes a permission for a specific group out of this permissible.voidsetName(@NotNull java.lang.String name)Sets the name of this permissible.voidsetPermissions(java.util.List<Permission> permissions)voidsetPotency(int potency)Sets the potency of this permissible.voidwrite(@NotNull ProtocolBuffer buffer)-
Methods inherited from class de.dytanic.cloudnet.common.document.gson.BasicJsonDocPropertyable
canEqual, equals, getProperties, getProperty, hashCode, hasProperty, removeProperty, setProperty, toString
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface de.dytanic.cloudnet.common.document.gson.IJsonDocPropertyable
getProperties, getProperty, hasProperty, removeProperty, setProperty
-
Methods inherited from interface de.dytanic.cloudnet.driver.permission.IPermissible
addPermission, addPermission, addPermission, addPermission, addPermission, addPermission, compareTo, findMatchingPermission, getGroupNames, getPermission, getPermissionNames, hasPermission, hasPermission, hasPermission, hasPermission, isPermissionSet
-
-
-
-
Field Detail
-
createdTime
protected long createdTime
-
name
protected java.lang.String name
-
potency
protected int potency
-
permissions
protected java.util.List<Permission> permissions
-
groupPermissions
protected java.util.Map<java.lang.String,java.util.Collection<Permission>> groupPermissions
-
-
Method Detail
-
addPermission
public boolean addPermission(@NotNull @NotNull Permission permission)Description copied from interface:IPermissibleAdds a new permission to this permissible and updates it if a permission with that name already exists.An update via
IPermissionManagement.updateGroup(IPermissionGroup)orIPermissionManagement.updateGroup(IPermissionGroup)is required.- Specified by:
addPermissionin interfaceIPermissible- Parameters:
permission- the permission- Returns:
trueif the permission has been added successfully orfalseif the givenpermissionwas null
-
addPermission
public boolean addPermission(@NotNull @NotNull java.lang.String group, @NotNull @NotNull Permission permission)Description copied from interface:IPermissibleAdds a new permission to this permissible and updates it if a permission with that name already exists. This permission will be only effective on servers which have the specified group.An update via
IPermissionManagement.updateGroup(IPermissionGroup)orIPermissionManagement.updateGroup(IPermissionGroup)is required.- Specified by:
addPermissionin interfaceIPermissible- Parameters:
group- the group where this permission should be effectivepermission- the permission- Returns:
trueif the permission has been added successfully orfalseif the givenpermissionwas null
-
removePermission
public boolean removePermission(@NotNull @NotNull java.lang.String permission)Description copied from interface:IPermissibleRemoves a permission out of this permissible.An update via
IPermissionManagement.updateGroup(IPermissionGroup)orIPermissionManagement.updateGroup(IPermissionGroup)is required.- Specified by:
removePermissionin interfaceIPermissible- Parameters:
permission- the permission- Returns:
trueif the permission has been removed successfully orfalseif the givenpermissiondoesn't exist
-
removePermission
public boolean removePermission(@NotNull @NotNull java.lang.String group, @NotNull @NotNull java.lang.String permission)Description copied from interface:IPermissibleRemoves a permission for a specific group out of this permissible.An update via
IPermissionManagement.updateGroup(IPermissionGroup)orIPermissionManagement.updateGroup(IPermissionGroup)is required.- Specified by:
removePermissionin interfaceIPermissible- Parameters:
group- the group where this permission is effectivepermission- the permission- Returns:
trueif the permission has been removed successfully orfalseif the givenpermissiondoesn't exist
-
getCreatedTime
public long getCreatedTime()
-
getName
public java.lang.String getName()
- Specified by:
getNamein interfacede.dytanic.cloudnet.common.INameable
-
setName
public void setName(@NotNull @NotNull java.lang.String name)Description copied from interface:IPermissibleSets the name of this permissible.An update via
IPermissionManagement.updateGroup(IPermissionGroup)orIPermissionManagement.updateGroup(IPermissionGroup)is required.- Specified by:
setNamein interfaceIPermissible- Parameters:
name- the new name
-
getPotency
public int getPotency()
Description copied from interface:IPermissibleGets the potency of this permissible. If this permissible is anIPermissionGroup,IPermissionManagement.getHighestPermissionGroup(IPermissionUser)is sorted by the potency. If this permissible is anIPermissionUser, in CloudNet it has no specific meaning, but of course you can use it for whatever you want.- Specified by:
getPotencyin interfaceIPermissible- Returns:
- the potency of this permissible
-
setPotency
public void setPotency(int potency)
Description copied from interface:IPermissibleSets the potency of this permissible.An update via
IPermissionManagement.updateGroup(IPermissionGroup)orIPermissionManagement.updateGroup(IPermissionGroup)is required.- Specified by:
setPotencyin interfaceIPermissible- Parameters:
potency- the new potency
-
getPermissions
public java.util.List<Permission> getPermissions()
Description copied from interface:IPermissibleGets all effective global permissions. Permissions which are only effective on specific groups are not included.- Specified by:
getPermissionsin interfaceIPermissible- Returns:
- a mutable list of all permissions
-
setPermissions
public void setPermissions(java.util.List<Permission> permissions)
-
getGroupPermissions
public java.util.Map<java.lang.String,java.util.Collection<Permission>> getGroupPermissions()
Description copied from interface:IPermissibleGets all effective permissions on a specific group. Global permissions are not included.- Specified by:
getGroupPermissionsin interfaceIPermissible- Returns:
- a mutable map containing mutable lists of permissions
-
write
public void write(@NotNull @NotNull ProtocolBuffer buffer)- Specified by:
writein interfaceSerializableObject- Overrides:
writein classSerializableJsonDocPropertyable
-
read
public void read(@NotNull @NotNull ProtocolBuffer buffer)- Specified by:
readin interfaceSerializableObject- Overrides:
readin classSerializableJsonDocPropertyable
-
-