public class DictionaryLoader
extends java.lang.Object
DictionaryLoader is the preferred mechanism for loading rule dictionaries for execution. DictionaryFinders are added to a DictionaryLoader instance with the addFinder in the order in which they will be invoked to find a dictionary. That is, the first finder added will be the first one to attempt to find a dictionary. The loadDictionary method is invoked to load a dictionary. When a dictionary is loaded, its linked dictionary dependencies are recorded. Proper DictionaryFinder implementations added with addFinder interact with this class to respond to dictionary updates. Depending on the finder implementation, updates to dictionaries are either detected by polling a dictionary finder or via asynchronous callback from the finder. Detection of a dictionary update is then reflected in the dictionary dependency graph. The reloadNeeded method will return true for a dictionary if it or one of the dictionaries it links to have been updated since the last time the dictionary was loaded.| Constructor and Description |
|---|
DictionaryLoader() |
| Modifier and Type | Method and Description |
|---|---|
void |
addFinder(DictionaryFinder finder)
Add a
DictionaryFinder to the chain maintained by this instance. |
void |
close()
Closes all the finders added to this loader.
|
void |
foundDictionary(DictionaryFQN fqn, RuleDictionary rd, AbstractDictionaryFinder by, RuleDictionary from) |
void |
foundDictionary(java.lang.String path, RuleDictionary rd, AbstractDictionaryFinder by, RuleDictionary from) |
DictionaryFinder |
getFinderChain()
Get the chain of
DictionaryFinder's constructed by this instance. |
RuleDictionary |
loadDictionary(DictionaryFQN fqn)
Load a
RuleDictionary. |
RuleDictionary |
loadDictionary(java.lang.String path)
Load a
RuleDictionary. |
boolean |
reloadNeeded(DictionaryFQN fqn)
Check whether the
RuleDictionary needs to be reloaded. |
boolean |
reloadNeeded(java.lang.String path)
Check whether the
RuleDictionary needs to be reloaded. |
void |
setReloadNeeded(DictionaryFQN fqn)
Indicates that the specified dictionary has been updated.
|
void |
setReloadNeeded(java.lang.String path)
Indicates that the specified dictionary has been updated.
|
public void addFinder(DictionaryFinder finder)
DictionaryFinder to the chain maintained by this instance. Finders should be added in the order they are expected to be applied. The first finder added to the chain will be the first finder asked to find a dictionary. The DictionaryFinder should be an extension of AbstractDictionaryFinder.finder - The DictionaryFinder to add.public DictionaryFinder getFinderChain()
DictionaryFinder's constructed by this instance.DictionaryFinders.public RuleDictionary loadDictionary(DictionaryFQN fqn)
RuleDictionary.fqn - The fully qualified name of the rule dictionary.public void foundDictionary(DictionaryFQN fqn, RuleDictionary rd, AbstractDictionaryFinder by, RuleDictionary from)
public boolean reloadNeeded(DictionaryFQN fqn)
RuleDictionary needs to be reloaded. This indicator is maintained for rule dictionaries loaded with the loadDictionary method. It will return true if the specified dictionary or any dictionary in the set of dictionaries it is linked to (recursively) have been updated since it was last loaded by this DictionaryLoader.fqn - The fully qualified name of the rule dictionary.public void setReloadNeeded(DictionaryFQN fqn)
DictionaryFinder implementation.fqn - The fully qualified name of the rule dictionary.public RuleDictionary loadDictionary(java.lang.String path)
RuleDictionary.path - The path used to find the rule dictionary.
public void foundDictionary(java.lang.String path,
RuleDictionary rd,
AbstractDictionaryFinder by,
RuleDictionary from)
public boolean reloadNeeded(java.lang.String path)
RuleDictionary needs to be reloaded. This indicator is maintained for rule dictionaries loaded with the loadDictionary method. It will return true if the specified dictionary or any dictionary in the set of dictionaries it is linked to (recursively) have been updated since it was last loaded by this DictionaryLoader.path - The path to used to find the rule dictionary.public void setReloadNeeded(java.lang.String path)
DictionaryFinder implementation.path - The path to used to find the rule dictionary.public void close()