edu.internet2.middleware.grouper.rules
Class RuleEngine

java.lang.Object
  extended by edu.internet2.middleware.grouper.rules.RuleEngine

public class RuleEngine
extends Object

processes rules and kicks off actions

Author:
mchyzer

Constructor Summary
RuleEngine()
           
 
Method Summary
static Map<AttributeAssign,Set<AttributeAssignValueContainer>> allRulesAttributeAssignValueContainers(QueryOptions queryOptions)
          get all rules from the DB in the form of attribute assignments
static void clearRuleEngineCache()
          clear this for testing
static int daemon()
          validate the rules, and run the daemon stuff in rules
static void fireRule(RuleCheckType ruleCheckType, RulesBean rulesBean)
          find rules and fire them
 Map<RuleCheck,Set<RuleDefinition>> getRuleCheckIndex()
          map of checks to sets of relevant rules
 Set<RuleDefinition> getRuleDefinitions()
          rule definitions
static boolean hasAccessToElApi(edu.internet2.middleware.subject.Subject subject)
          see if a subejct (e.g.
 Set<RuleDefinition> ruleCheckIndexDefinitionsByNameOrId(RuleCheck ruleCheck)
          get rule definitions from cache based on name or id
 Set<RuleDefinition> ruleCheckIndexDefinitionsByNameOrIdInFolder(RuleCheck ruleCheck)
          get rule definitions from cache based on name or id
 Set<RuleDefinition> ruleCheckIndexDefinitionsByNameOrIdInFolderPickOneArgOptional(RuleCheck ruleCheck)
          get rule definitions from cache based on name or id
static RuleEngine ruleEngine()
           
 void setRuleDefinitions(Set<RuleDefinition> ruleDefinitions)
          rule definitions
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RuleEngine

public RuleEngine()
Method Detail

getRuleDefinitions

public Set<RuleDefinition> getRuleDefinitions()
rule definitions

Returns:
the ruleDefinitions

ruleCheckIndexDefinitionsByNameOrId

public Set<RuleDefinition> ruleCheckIndexDefinitionsByNameOrId(RuleCheck ruleCheck)
get rule definitions from cache based on name or id

Parameters:
ruleCheck -
Returns:
the definitions

ruleCheckIndexDefinitionsByNameOrIdInFolder

public Set<RuleDefinition> ruleCheckIndexDefinitionsByNameOrIdInFolder(RuleCheck ruleCheck)
get rule definitions from cache based on name or id

Parameters:
ruleCheck -
Returns:
the definitions

setRuleDefinitions

public void setRuleDefinitions(Set<RuleDefinition> ruleDefinitions)
rule definitions

Parameters:
ruleDefinitions - the ruleDefinitions to set

ruleEngine

public static RuleEngine ruleEngine()
Returns:
all the rule definitions, cached

getRuleCheckIndex

public Map<RuleCheck,Set<RuleDefinition>> getRuleCheckIndex()
map of checks to sets of relevant rules

Returns:
the ruleCheckIndex

ruleCheckIndexDefinitionsByNameOrIdInFolderPickOneArgOptional

public Set<RuleDefinition> ruleCheckIndexDefinitionsByNameOrIdInFolderPickOneArgOptional(RuleCheck ruleCheck)
get rule definitions from cache based on name or id

Parameters:
ruleCheck -
Returns:
the definitions

fireRule

public static void fireRule(RuleCheckType ruleCheckType,
                            RulesBean rulesBean)
find rules and fire them

Parameters:
ruleCheckType -
rulesBean -

allRulesAttributeAssignValueContainers

public static Map<AttributeAssign,Set<AttributeAssignValueContainer>> allRulesAttributeAssignValueContainers(QueryOptions queryOptions)
get all rules from the DB in the form of attribute assignments

Parameters:
queryOptions -
Returns:
the assigns of all rules

daemon

public static int daemon()
validate the rules, and run the daemon stuff in rules

Returns:
the number of records changed

clearRuleEngineCache

public static void clearRuleEngineCache()
clear this for testing


hasAccessToElApi

public static boolean hasAccessToElApi(edu.internet2.middleware.subject.Subject subject)
see if a subejct (e.g. act as subject) has access to the EL api

Parameters:
subject -
Returns:
true if has access, flase if not, use the cache