Class RulesServiceImpl
- java.lang.Object
-
- org.apache.unomi.services.impl.rules.RulesServiceImpl
-
- All Implemented Interfaces:
EventListener
,EventListenerService
,RulesService
,org.osgi.framework.BundleListener
,org.osgi.framework.SynchronousBundleListener
public class RulesServiceImpl extends Object implements RulesService, EventListenerService, org.osgi.framework.SynchronousBundleListener
-
-
Field Summary
Fields Modifier and Type Field Description static String
TRACKED_PARAMETER
-
Constructor Summary
Constructors Constructor Description RulesServiceImpl()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
bind(org.osgi.framework.ServiceReference<RuleListenerService> serviceReference)
void
bundleChanged(org.osgi.framework.BundleEvent event)
boolean
canHandle(Event event)
Whether or not this listener can handle the specified event.void
fireAlreadyRaised(RuleListenerService.AlreadyRaisedFor alreadyRaisedFor, Rule rule, Event event)
void
fireEvaluate(Rule rule, Event event)
void
fireExecuteActions(Rule rule, Event event)
List<Rule>
getAllRules()
Get all rules available in the system.Map<String,RuleStatistics>
getAllRuleStatistics()
Retrieves the statistics for all the rulesSet<Rule>
getMatchingRules(Event event)
Retrieves all the matching rules for a specific eventRule
getRule(String ruleId)
Retrieves the rule identified by the specified identifier.PartialList<Rule>
getRuleDetails(Query query)
Retrieves rule details for rules matching the specified query.Set<Metadata>
getRuleMetadatas()
Retrieves the metadata for all known rules.PartialList<Metadata>
getRuleMetadatas(Query query)
Retrieves rule metadatas for rules matching the specifiedQuery
.RuleStatistics
getRuleStatistics(String ruleId)
Retrieves the statistics for a ruleSet<Condition>
getTrackedConditions(Item source)
Retrieves tracked conditions (rules with a condition marked with thetrackedCondition
tag and whichsourceEventCondition
matches the specified item) for the specified item.int
onEvent(Event event)
Handles the specified event.void
postConstruct()
void
preDestroy()
void
refreshRules()
Refresh the rules for this instance by reloading them from the persistence backendvoid
removeRule(String ruleId)
Deletes the rule identified by the specified identifier.void
resetAllRuleStatistics()
Resets all the rule statistics to zero, useful when testing or if you want to set a point in time.void
setActionExecutorDispatcher(ActionExecutorDispatcher actionExecutorDispatcher)
void
setBundleContext(org.osgi.framework.BundleContext bundleContext)
void
setDefinitionsService(DefinitionsService definitionsService)
void
setEventService(EventService eventService)
void
setOptimizedRulesActivated(Boolean optimizedRulesActivated)
void
setPersistenceService(PersistenceService persistenceService)
void
setRule(Rule rule)
Persists the specified rule to the context server.void
setRulesRefreshInterval(Integer rulesRefreshInterval)
void
setRulesStatisticsRefreshInterval(Integer rulesStatisticsRefreshInterval)
void
setSchedulerService(SchedulerService schedulerService)
void
unbind(org.osgi.framework.ServiceReference<RuleListenerService> serviceReference)
-
-
-
Field Detail
-
TRACKED_PARAMETER
public static final String TRACKED_PARAMETER
- See Also:
- Constant Field Values
-
-
Method Detail
-
setBundleContext
public void setBundleContext(org.osgi.framework.BundleContext bundleContext)
-
setPersistenceService
public void setPersistenceService(PersistenceService persistenceService)
-
setDefinitionsService
public void setDefinitionsService(DefinitionsService definitionsService)
-
setEventService
public void setEventService(EventService eventService)
-
setSchedulerService
public void setSchedulerService(SchedulerService schedulerService)
-
setActionExecutorDispatcher
public void setActionExecutorDispatcher(ActionExecutorDispatcher actionExecutorDispatcher)
-
setRulesRefreshInterval
public void setRulesRefreshInterval(Integer rulesRefreshInterval)
-
setRulesStatisticsRefreshInterval
public void setRulesStatisticsRefreshInterval(Integer rulesStatisticsRefreshInterval)
-
setOptimizedRulesActivated
public void setOptimizedRulesActivated(Boolean optimizedRulesActivated)
-
postConstruct
public void postConstruct()
-
preDestroy
public void preDestroy()
-
getMatchingRules
public Set<Rule> getMatchingRules(Event event)
Description copied from interface:RulesService
Retrieves all the matching rules for a specific event- Specified by:
getMatchingRules
in interfaceRulesService
- Parameters:
event
- the event we want to retrieve all the matching rules for- Returns:
- a set of rules that match the event passed in the parameters
-
refreshRules
public void refreshRules()
Description copied from interface:RulesService
Refresh the rules for this instance by reloading them from the persistence backend- Specified by:
refreshRules
in interfaceRulesService
-
getAllRules
public List<Rule> getAllRules()
Description copied from interface:RulesService
Get all rules available in the system. (This is not doing a persistence query to retrieve the rules, it's using the internal in memory cache that is refreshed every second by default but can vary depending on your own configuration)- Specified by:
getAllRules
in interfaceRulesService
- Returns:
- all rules available.
-
canHandle
public boolean canHandle(Event event)
Description copied from interface:EventListenerService
Whether or not this listener can handle the specified event.- Specified by:
canHandle
in interfaceEventListenerService
- Parameters:
event
- the event to be handled- Returns:
true
if this listener can handle the specified event,false
otherwise
-
onEvent
public int onEvent(Event event)
Description copied from interface:EventListenerService
Handles the specified event.- Specified by:
onEvent
in interfaceEventListenerService
- Parameters:
event
- the event to be handled- Returns:
- the result of the event handling as combination of
EventService
flags, to be checked using bitwise AND (&) operator - See Also:
EventService.NO_CHANGE
,EventService.PROFILE_UPDATED
,EventService.SESSION_UPDATED
-
getRuleStatistics
public RuleStatistics getRuleStatistics(String ruleId)
Description copied from interface:RulesService
Retrieves the statistics for a rule- Specified by:
getRuleStatistics
in interfaceRulesService
- Parameters:
ruleId
- the identifier of the rule- Returns:
- a long representing the number of times the rule was matched and executed.
-
getAllRuleStatistics
public Map<String,RuleStatistics> getAllRuleStatistics()
Description copied from interface:RulesService
Retrieves the statistics for all the rules- Specified by:
getAllRuleStatistics
in interfaceRulesService
- Returns:
- a map containing rule IDs as key, and the RuleStatistics object as a value
-
resetAllRuleStatistics
public void resetAllRuleStatistics()
Description copied from interface:RulesService
Resets all the rule statistics to zero, useful when testing or if you want to set a point in time.- Specified by:
resetAllRuleStatistics
in interfaceRulesService
-
getRuleMetadatas
public Set<Metadata> getRuleMetadatas()
Description copied from interface:RulesService
Retrieves the metadata for all known rules. Note that it only includes the rules in memory, not those persisted in storage.- Specified by:
getRuleMetadatas
in interfaceRulesService
- Returns:
- the Set of known metadata
-
getRuleMetadatas
public PartialList<Metadata> getRuleMetadatas(Query query)
Description copied from interface:RulesService
Retrieves rule metadatas for rules matching the specifiedQuery
.- Specified by:
getRuleMetadatas
in interfaceRulesService
- Parameters:
query
- the query the rules which metadata we want to retrieve must match- Returns:
- a
PartialList
of rules metadata for the rules matching the specified query
-
getRuleDetails
public PartialList<Rule> getRuleDetails(Query query)
Description copied from interface:RulesService
Retrieves rule details for rules matching the specified query.- Specified by:
getRuleDetails
in interfaceRulesService
- Parameters:
query
- the query specifying which rules to retrieve- Returns:
- a
PartialList
of rule details for the rules matching the specified query
-
getRule
public Rule getRule(String ruleId)
Description copied from interface:RulesService
Retrieves the rule identified by the specified identifier.- Specified by:
getRule
in interfaceRulesService
- Parameters:
ruleId
- the identifier of the rule we want to retrieve- Returns:
- the rule identified by the specified identifier or
null
if no such rule exists.
-
setRule
public void setRule(Rule rule)
Description copied from interface:RulesService
Persists the specified rule to the context server.- Specified by:
setRule
in interfaceRulesService
- Parameters:
rule
- the rule to be persisted
-
getTrackedConditions
public Set<Condition> getTrackedConditions(Item source)
Description copied from interface:RulesService
Retrieves tracked conditions (rules with a condition marked with thetrackedCondition
tag and whichsourceEventCondition
matches the specified item) for the specified item.- Specified by:
getTrackedConditions
in interfaceRulesService
- Parameters:
source
- the item which tracked conditions we want to retrieve- Returns:
- the Set of tracked conditions for the specified item
-
removeRule
public void removeRule(String ruleId)
Description copied from interface:RulesService
Deletes the rule identified by the specified identifier.- Specified by:
removeRule
in interfaceRulesService
- Parameters:
ruleId
- the identifier of the rule we want to delete
-
bundleChanged
public void bundleChanged(org.osgi.framework.BundleEvent event)
- Specified by:
bundleChanged
in interfaceorg.osgi.framework.BundleListener
-
bind
public void bind(org.osgi.framework.ServiceReference<RuleListenerService> serviceReference)
-
unbind
public void unbind(org.osgi.framework.ServiceReference<RuleListenerService> serviceReference)
-
fireAlreadyRaised
public void fireAlreadyRaised(RuleListenerService.AlreadyRaisedFor alreadyRaisedFor, Rule rule, Event event)
-
-