class %iKnow.Source.Domain.Lister extends %iKnow.Source.Lister
Lister implementation for loading data from an existing Domain.
Lister Parameters to be supplied to AddListToBatch() and ProcessList() calls:
- sourceDomainId As %String - the domain ID where to load from (should be in the same namespace)
- filterString As %String (optional) - if set, only the sources in the source domain satisfying the filter represented by this filter string (see ToString() in %iKnow.Filters.Filter will be loaded. If a comma-delimited list of %Integer values is passed in rather than a filter representation, this is considered as a list of source IDs that need to be copied. Negative source IDs are interpreted as referring to a Virtual Source.
External ID structure: the external IDs of the source domain are maintained
Default Processor: %iKnow.Source.Domain.Processor
See also %iKnow.Utils.CopyUtils for methods to copy other domain elements.
Please note any sources copied with this Lister will be created using the version of the target domain, regardless of the source domain's version number.
This method returns the default %iKnow.Source.Processor class to use (without any parameters) if none was registered explicitly through calls to SetProcessor(). By default, this selects (if it exists) a class called Processor in the same package as this Lister implementation, but subclasses might wish to override this and hardcode a specific default Processor to use.()
This method should be overridden by subclasses, implementing how they scan through the particular type of source location or structures they specialize in. The arguments for this method are the same Lister Parameters as those used when issuing the corresponding AddListToBatch() call and are specified and documented by the Lister implementation.
When expanding the list, the Lister should build a "Composite reference": a %List containing the lister ID, the group ID and the local reference for each (candidate) source it found and pass that to either a StoreRef(), StoreTemp() or StoreTempStream() call. Optionally, it can store metadata for each of these refs using the SetMetadataValues() method.
NOTE: This method is used by the iKnow loading frameworkand should never be called by custom code.
This method is called at the start of ProcessList() and AddListToBatch() to validate the supplied Lister Parameters. Subclasses should override this method to execute the validation logic specific to their Lister Parameters.