public interface DictionaryFinder
extends java.io.Serializable
RuleDictionary
uses a DictionaryFinder to access linked dictionaries.
The RuleDictionary implementation will call the DictionaryFinder.findDictionary(String,String)
method
very often (at least once per RuleDictionary.update(java.util.List<oracle.rules.sdk2.exception.SDKWarning>)
).
Therefore, the findDictionary implementation MUST CACHE the last returned RuleDictionary,
and continue to return the cached value unless the underlying RuleDictionary file or edit buffer changes.
Change detection is up to the implementation. If it is cheap, findDictionary can poll the underlying file or edit buffer.
If the underlying file or edit buffer supports change notification, then the dictionary finder should register to receive
change notifications and clear the cache.
In an editing environment with several editors open on different dictionaries,
DictionaryFinder.findDictionary(java.lang.String, java.lang.String)
should load its RuleDictionary from the editor's RuleDictionary
using RuleDictionary.createHandle()
). This way, editors will be able to see each
others changes in a coordinated way.
Implementations of DictionaryFinder should extend AbstractDictionaryFinder,
implementing findDictionaryWithThisFinder and override other methods as
necessary to support use with DictionaryLoader
.AbstractDictionaryFinder
,
DictionaryLoader
Modifier and Type | Field and Description |
---|---|
static long |
serialVersionUID |
Modifier and Type | Method and Description |
---|---|
void |
close()
Close this finder to release held resources.
|
RuleDictionary |
findDictionary(DictionaryFQN fqn)
Find a dictionary given a fully qualified name
|
RuleDictionary |
findDictionary(java.lang.String path)
Find a dictionary given a logical, system independent path.
|
RuleDictionary |
findDictionary(java.lang.String pkg,
java.lang.String name)
Find a dictionary given a fully qualified package name and a name within the package.
|
static final long serialVersionUID
RuleDictionary findDictionary(java.lang.String pkg, java.lang.String name)
pkg
- fully qualified package name, e.g. foo.barname
- unqualified name, e.g. MyDicRuleDictionary findDictionary(DictionaryFQN fqn)
fqn
- DictionaryFQNRuleDictionary findDictionary(java.lang.String path)
path
- the path used to find the dictionaryvoid close()