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, org.osgi.service.cm.ManagedService

public class RulesServiceImpl extends Object implements RulesService, EventListenerService, org.osgi.framework.SynchronousBundleListener, org.osgi.service.cm.ManagedService
  • Field Details

  • Constructor Details

    • RulesServiceImpl

      public RulesServiceImpl()
  • Method Details

    • 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)
    • updated

      public void updated(Dictionary<String,?> properties)
      Specified by:
      updated in interface org.osgi.service.cm.ManagedService
    • 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 interface RulesService
      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 interface RulesService
    • 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 interface RulesService
      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 interface EventListenerService
      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 interface EventListenerService
      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:
    • getRuleStatistics

      public RuleStatistics getRuleStatistics(String ruleId)
      Description copied from interface: RulesService
      Retrieves the statistics for a rule
      Specified by:
      getRuleStatistics in interface RulesService
      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 interface RulesService
      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 interface RulesService
    • 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 interface RulesService
      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 specified Query.
      Specified by:
      getRuleMetadatas in interface RulesService
      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 interface RulesService
      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 interface RulesService
      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 interface RulesService
      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 the trackedCondition tag and which sourceEventCondition matches the specified item) for the specified item.
      Specified by:
      getTrackedConditions in interface RulesService
      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 interface RulesService
      Parameters:
      ruleId - the identifier of the rule we want to delete
    • bundleChanged

      public void bundleChanged(org.osgi.framework.BundleEvent event)
      Specified by:
      bundleChanged in interface org.osgi.framework.BundleListener
    • bind

      public void bind(org.osgi.framework.ServiceReference<RuleListenerService> serviceReference)
    • unbind

      public void unbind(org.osgi.framework.ServiceReference<RuleListenerService> serviceReference)
    • fireEvaluate

      public void fireEvaluate(Rule rule, Event event)
    • fireAlreadyRaised

      public void fireAlreadyRaised(RuleListenerService.AlreadyRaisedFor alreadyRaisedFor, Rule rule, Event event)
    • fireExecuteActions

      public void fireExecuteActions(Rule rule, Event event)