# Package org.drools.ruleunits.api

- Interface Summary
  Interface | Description
  --- | ---
  DataHandle | An handle to an object inserted into a `DataStore`.
  DataObserver |
  DataProcessor<T> | The interface to implement in order to be notified of all the changes occurred to the facts managed by a `DataSource`
  DataSource<T> | A strongly typed source of data for a `RuleUnit`.
  DataSource.Factory |
  DataStore<T> | A `DataSource` of mutable data.
  DataStream<T> | A `DataSource` of immutable data.
  RuleUnit<T extends RuleUnitData> | A rule unit is an atomic module defining a set of rules and a set of strongly typed `DataSource`s through which the facts processed by the rule engine are inserted.
  RuleUnitData | A marker interface that has to be implemented by a POJO defining the set of data belonging to and used by a `RuleUnit`.
  RuleUnitInstance<T extends RuleUnitData> | An instance of a `RuleUnit` working on the data contained in a specific `RuleUnitData`.
  RuleUnitProvider | A provider of `RuleUnit` and `RuleUnitInstance` from a given `RuleUnitData`.
  SingletonStore<T> | A data store that contains at most one value

- Class Summary
  Class | Description
  --- | ---
  DataSource.FactoryHolder |
  RuleUnitProvider.Factory |