%iKnow.Matching.Formats.Formatabstract class %iKnow.Matching.Formats.Format
This abstract class describes the interface to be implemented by an actual Dictionary Format matching object. Subclasses of this class can for example introduce regular expression matching, date matching, number checking or something more domain-specific.
Format implementations can be parameterized through a number of parameters the Format class
defines, which will get passed to the
This method is called after matching has finished to clean up eventual memory structures generated while executing
MatchSingleor MatchAllcalls and can be overridden in subclasses to perform any required cleanup operations.
Whether or not this Format class has a
MatchAllfunction that deals with a set of strings directly. Subclasses should make sure to override this method (to make it return true) if they override MatchAll.
This method loops through @stringsGlobalName@(" "_string) = id and matches all global entries, storing the results in @resultGlobalName@(id) = $lb(matchScore, matchedWordBits, isScattered, formatOutput). The implementation should ignore all ids < minEntUniId and should not store any results if the matchScore is 0.
Implementing this method only makes sense if the specific format this class represents can exploit the inverse global structure of @stringsGlobalName.
Note: entries in @stringsGlobalName are all in lowercase and prefixed with a space
Warning: an implementation for this method does not replace
MatchSingle. There should still be a MatchSingle alternative, for example to process strings longer than $$$IKHASHSIZE that would not appear in @stringsGlobalName.
MatchAllcan only tackle those strings shorter than $$$IKHASHSIZE, this method complements it by looping through the corresponding global structures for longer strings and checking them manually using MatchSingle.
Implementations of this method check whether an individual string complies with the format this class represents, returning a matchScore (0..1) and optional matchedWordBits, isScattered and formatOutput through output parameters.
Utility method subclasses can implement to verify user-supplied format parameters are valid. The default implementation instantiates an object of this matching format class and calls its
MatchSinglemethod for "test string". The %Statusobject returned by that call is returned for this method.