ru.tehkode.permissions
Class PermissionEntity

java.lang.Object
  extended by ru.tehkode.permissions.PermissionEntity
Direct Known Subclasses:
FileEntity, PermissionGroup, PermissionUser, SQLEntity

public abstract class PermissionEntity
extends Object

Author:
code

Field Summary
protected  boolean debugMode
           
protected  PermissionManager manager
           
protected static HashMap<String,Pattern> patternCache
          Pattern cache
protected static Pattern rangeExpression
           
protected  Map<String,List<String>> timedPermissions
           
protected  Map<String,Long> timedPermissionsTime
           
protected  boolean virtual
           
 
Constructor Summary
PermissionEntity(String name, PermissionManager manager)
           
 
Method Summary
 void addPermission(String permission)
          Add permission in common space (all worlds)
 void addPermission(String permission, String world)
          Add permissions for specified world
 void addTimedPermission(String permission, String world, int lifeTime)
          Adds timed permission to specified world in seconds
protected  void callEvent(PermissionEntityEvent.Action action)
           
protected  void callEvent(PermissionEntityEvent event)
           
 boolean equals(Object obj)
           
 boolean explainExpression(String expression)
           
abstract  Map<String,Map<String,String>> getAllOptions()
          Return options for all worlds Common options stored as "" (empty string) as world.
abstract  Map<String,String[]> getAllPermissions()
          Return permissions for all worlds Common permissions stored as "" (empty string) as world.
 String getMatchingExpression(String[] permissions, String permission)
           
 String getMatchingExpression(String permission, String world)
           
 String getName()
          Return name of permission entity (User or Group) User should be equal to Player's name on the server
 String getOption(String option)
          Return option Option would be looked up in common options
 String getOption(String option, String world)
          Return option for world
abstract  String getOption(String option, String world, String defaultValue)
          Get option in world
 boolean getOptionBoolean(String optionName, String world, boolean defaultValue)
          Returns boolean value for option
 double getOptionDouble(String optionName, String world, double defaultValue)
          Returns double value for option
 int getOptionInteger(String optionName, String world, int defaultValue)
          Return integer value for option
abstract  Map<String,String> getOptions(String world)
          Get options in world
abstract  String[] getPermissions(String world)
          Return all entity permissions in specified world
 String getPrefix()
           
abstract  String getPrefix(String worldName)
          Returns entity prefix
 String getSuffix()
           
abstract  String getSuffix(String worldName)
          Return entity suffix
 int getTimedPermissionLifetime(String permission, String world)
          Returns remaining lifetime of specified permission in world
 String[] getTimedPermissions(String world)
          Return entity timed (temporary) permission for world
abstract  String[] getWorlds()
          Return world names where entity have permissions/options/etc
 boolean has(String permission)
          Checks if entity has specified permission in default world
 boolean has(String permission, String world)
          Check if entity has specified permission in world
 int hashCode()
           
 void initialize()
          This method 100% run after all constructors have been run and entity object, and entity object are completely ready to operate
 boolean isDebug()
           
static boolean isMatches(String expression, String permission, boolean additionalChecks)
          Checks if specified permission matches specified permission expression
 boolean isVirtual()
          Return state of entity
protected static String prepareRegexp(String expression)
           
abstract  void remove()
          Remove entity data from backend
 void removePermission(String permission)
          Remove specified permission from all worlds
 void removePermission(String permission, String worldName)
          Remove permission in world
 void removeTimedPermission(String permission, String world)
          Removes specified timed permission for world
abstract  void save()
          Save in-memory data to storage backend
 void setDebug(boolean debug)
           
protected  void setName(String name)
           
 void setOption(String permission, String value)
          Set option for all worlds.
abstract  void setOption(String option, String value, String world)
          Set specified option in world
 void setPermissions(String[] permission)
          Set specified permissions in common space (all world)
abstract  void setPermissions(String[] permissions, String world)
          Set permissions in world
abstract  void setPrefix(String prefix, String worldName)
          Set prefix to value
abstract  void setSuffix(String suffix, String worldName)
          Set suffix to value
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

rangeExpression

protected static Pattern rangeExpression

manager

protected PermissionManager manager

virtual

protected boolean virtual

timedPermissions

protected Map<String,List<String>> timedPermissions

timedPermissionsTime

protected Map<String,Long> timedPermissionsTime

debugMode

protected boolean debugMode

patternCache

protected static HashMap<String,Pattern> patternCache
Pattern cache

Constructor Detail

PermissionEntity

public PermissionEntity(String name,
                        PermissionManager manager)
Method Detail

initialize

public void initialize()
This method 100% run after all constructors have been run and entity object, and entity object are completely ready to operate


getName

public String getName()
Return name of permission entity (User or Group) User should be equal to Player's name on the server

Returns:
name

setName

protected void setName(String name)

getPrefix

public abstract String getPrefix(String worldName)
Returns entity prefix

Parameters:
worldName -
Returns:
prefix

getPrefix

public String getPrefix()

setPrefix

public abstract void setPrefix(String prefix,
                               String worldName)
Set prefix to value

Parameters:
prefix - new prefix

getSuffix

public abstract String getSuffix(String worldName)
Return entity suffix

Returns:
suffix

getSuffix

public String getSuffix()

setSuffix

public abstract void setSuffix(String suffix,
                               String worldName)
Set suffix to value

Parameters:
suffix - new suffix

has

public boolean has(String permission)
Checks if entity has specified permission in default world

Parameters:
permission - Permission to check
Returns:
true if entity has this permission otherwise false

has

public boolean has(String permission,
                   String world)
Check if entity has specified permission in world

Parameters:
permission - Permission to check
world - World to check permission in
Returns:
true if entity has this permission otherwise false

getPermissions

public abstract String[] getPermissions(String world)
Return all entity permissions in specified world

Parameters:
world - World name
Returns:
Array of permission expressions

getAllPermissions

public abstract Map<String,String[]> getAllPermissions()
Return permissions for all worlds Common permissions stored as "" (empty string) as world.

Returns:
Map with world name as key and permissions array as value

addPermission

public void addPermission(String permission,
                          String world)
Add permissions for specified world

Parameters:
permission - Permission to add
world - World name to add permission to

addPermission

public void addPermission(String permission)
Add permission in common space (all worlds)

Parameters:
permission - Permission to add

removePermission

public void removePermission(String permission,
                             String worldName)
Remove permission in world

Parameters:
permission - Permission to remove
world - World name to remove permission for

removePermission

public void removePermission(String permission)
Remove specified permission from all worlds

Parameters:
permission - Permission to remove

setPermissions

public abstract void setPermissions(String[] permissions,
                                    String world)
Set permissions in world

Parameters:
permissions - Array of permissions to set
world - World to set permissions for

setPermissions

public void setPermissions(String[] permission)
Set specified permissions in common space (all world)

Parameters:
permission - Permission to set

getOption

public abstract String getOption(String option,
                                 String world,
                                 String defaultValue)
Get option in world

Parameters:
option - Name of option
world - World to look for
defaultValue - Default value to fallback if no such option was found
Returns:
Value of option as String

getOption

public String getOption(String option)
Return option Option would be looked up in common options

Parameters:
option - Option name
Returns:
option value or empty string if option was not found

getOption

public String getOption(String option,
                        String world)
Return option for world

Parameters:
option - Option name
world - World to look in
Returns:
option value or empty string if option was not found

getOptionInteger

public int getOptionInteger(String optionName,
                            String world,
                            int defaultValue)
Return integer value for option

Parameters:
optionName -
world -
defaultValue -
Returns:
option value or defaultValue if option was not found or is not integer

getOptionDouble

public double getOptionDouble(String optionName,
                              String world,
                              double defaultValue)
Returns double value for option

Parameters:
optionName -
world -
defaultValue -
Returns:
option value or defaultValue if option was not found or is not double

getOptionBoolean

public boolean getOptionBoolean(String optionName,
                                String world,
                                boolean defaultValue)
Returns boolean value for option

Parameters:
optionName -
world -
defaultValue -
Returns:
option value or defaultValue if option was not found or is not boolean

setOption

public abstract void setOption(String option,
                               String value,
                               String world)
Set specified option in world

Parameters:
option - Option name
value - Value to set, null to remove
world - World name

setOption

public void setOption(String permission,
                      String value)
Set option for all worlds. Can be overwritten by world specific option

Parameters:
option - Option name
value - Value to set, null to remove

getOptions

public abstract Map<String,String> getOptions(String world)
Get options in world

Parameters:
world -
Returns:
Option value as string Map

getAllOptions

public abstract Map<String,Map<String,String>> getAllOptions()
Return options for all worlds Common options stored as "" (empty string) as world.

Returns:
Map with world name as key and map of options as value

save

public abstract void save()
Save in-memory data to storage backend


remove

public abstract void remove()
Remove entity data from backend


isVirtual

public boolean isVirtual()
Return state of entity

Returns:
true if entity is only in-memory

getWorlds

public abstract String[] getWorlds()
Return world names where entity have permissions/options/etc

Returns:

getTimedPermissions

public String[] getTimedPermissions(String world)
Return entity timed (temporary) permission for world

Parameters:
world -
Returns:
Array of timed permissions in that world

getTimedPermissionLifetime

public int getTimedPermissionLifetime(String permission,
                                      String world)
Returns remaining lifetime of specified permission in world

Parameters:
permission - Name of permission
world -
Returns:
remaining lifetime in seconds of timed permission. 0 if permission is transient

addTimedPermission

public void addTimedPermission(String permission,
                               String world,
                               int lifeTime)
Adds timed permission to specified world in seconds

Parameters:
permission -
world -
lifeTime - Lifetime of permission in seconds. 0 for transient permission (world disappear only after server reload)

removeTimedPermission

public void removeTimedPermission(String permission,
                                  String world)
Removes specified timed permission for world

Parameters:
permission -
world -

callEvent

protected void callEvent(PermissionEntityEvent event)

callEvent

protected void callEvent(PermissionEntityEvent.Action action)

equals

public boolean equals(Object obj)
Overrides:
equals in class Object

hashCode

public int hashCode()
Overrides:
hashCode in class Object

toString

public String toString()
Overrides:
toString in class Object

getMatchingExpression

public String getMatchingExpression(String permission,
                                    String world)

getMatchingExpression

public String getMatchingExpression(String[] permissions,
                                    String permission)

prepareRegexp

protected static String prepareRegexp(String expression)

isMatches

public static boolean isMatches(String expression,
                                String permission,
                                boolean additionalChecks)
Checks if specified permission matches specified permission expression

Parameters:
expression - permission expression - what user have in his permissions list (permission.nodes.*)
permission - permission which are checking for (permission.node.some.subnode)
additionalChecks - check for parent node matching
Returns:

explainExpression

public boolean explainExpression(String expression)

isDebug

public boolean isDebug()

setDebug

public void setDebug(boolean debug)


Copyright © 2011. All Rights Reserved.