IRISLIB database
Processor Class Reference
Inheritance diagram for Processor:
Collaboration diagram for Processor:

Public Member Functions

_.Library.String GetKnownLanguage (_.Library.Integer loc, _.Library.List ref, _.Library.Integer keyid)
 
_.Library.Status ProcessListElement (_.Library.Integer loc, _.Library.List ref, _.Library.Integer keyid, _.Library.String metadata, _.Library.Boolean skipped)
 
_.Library.Status ProcessVirtualListElement (_.Library.Integer loc, _.Library.List ref)
 Same as <method>ProcessListElement</method>, but for Virtual Sources.
 
_.Library.Status SetConverter (_.Library.Integer convId, _.Library.String convParams)
 
_.Library.Status SetParams (_.Library.String params)
 
- Public Member Functions inherited from RegisteredObject
_.Library.Status OnAddToSaveSet (_.Library.Integer depth, _.Library.Integer insert, _.Library.Integer callcount)
 This callback method is invoked when the current object is added to the SaveSet,. More...
 
_.Library.Status OnClose ()
 This callback method is invoked by the <METHOD>Close</METHOD> method to. More...
 
_.Library.Status OnConstructClone (_.Library.RegisteredObject object, _.Library.Boolean deep, _.Library.String cloned)
 This callback method is invoked by the <METHOD>ConstructClone</METHOD> method to. More...
 
_.Library.Status OnNew ()
 This callback method is invoked by the <METHOD>New</METHOD> method to. More...
 
_.Library.Status OnValidateObject ()
 This callback method is invoked by the <METHOD>ValidateObject</METHOD> method to. More...
 

Static Public Member Functions

_.Library.List GetMetadataKeys (_.Library.String params)
 

Private Member Functions

_.Library.Status __FetchSource (_.Library.Integer loc, _.Library.List ref)
 
_.Library.Status __ReportError (_.Library.List ref, _.Library.String message, _.Library.String location, _.Library.String errorId)
 Utility method to report failures for a given source (identified through a Composite Reference)
 
_.Library.Status __ReportWarning (_.Library.List ref, _.Library.String message, _.Library.String location)
 Utility method to report warnings for a given source (identified through a Composite Reference)
 
_.Library.Status __SetCurrentMetadataValues (_.Library.List metaValues)
 

Private Attributes

 __Buffer
   More...
 
 __ConvParams
   More...
 
 __Converter
   More...
 
 __ConverterId
   More...
 
 __DirectInput
   More...
 
 __DomainId
   More...
 
 __Indexer
   More...
 
 __ListerId
   More...
 
 __Params
   More...
 
 __TempId
 surrogate domain ID for use in IRIS.Temp More...
 

Additional Inherited Members

- Static Public Attributes inherited from RegisteredObject
 CAPTION = None
 Optional name used by the Form Wizard for a class when generating forms. More...
 
 JAVATYPE = None
 The Java type to be used when exported.
 
 PROPERTYVALIDATION = None
 This parameter controls the default validation behavior for the object. More...
 

Detailed Description

This is the base class for any Processor implementations. Processor classes are developed to read source data as referenced (or stored temporarily) by <class>iKnow.Source.Lister</class> classes in their <method class="%iKnow.Source.Lister">ExpandList</method> methods. It is up to the Lister to make sure the references they store in this stage refer to the proper Processor implementation and contain the details it needs to find and read that source while executing <method>FetchSource</method>.

Each Processor implementation tackles a specific type of location where source data can be read from, such as a filesystem for <class>iKnow.Source.File.Processor</class> or a global for <class>iKnow.Source.Global.Processor</class>.

Processor objects are handled by the loading framework automatically and custom code should never instantiate a Processor object or call any of its methods directly.

Member Function Documentation

◆ __FetchSource()

_.Library.Status __FetchSource ( _.Library.Integer  loc,
_.Library.List  ref 
)
private

This is the primary method that will need to be implemented by subclasses. It gets the local ID

of the source being processed (as assigned by the lister) and the Composite Reference in List format. Data read by the Processor should be buffered through calling ..Buffer.BufferString(), which will automatically forward the data to the iKnow Indexing engine or, if configured, a <class>iKnow.Source.Converter</class> object that will in turn push converted data through to the engine.

If this Processor also extracts metadata while reading (as specified in its <method>GetMetadataKeys</method> implementation), it should make sure to invoke <method>SetCurrentMetadataValues</method> at some point in this methods execution.

Reimplemented in Processor, Processor, and Processor.

◆ GetKnownLanguage()

_.Library.String GetKnownLanguage ( _.Library.Integer  loc,
_.Library.List  ref,
_.Library.Integer  keyid 
)

This method is called from <method>ProcessListElement</method> and <method>ProcessVirtualListElement</method>

right before calling on the Indexer to process the data read by this Processor instance. It returns the language (two-letter ISO code) for the source being processed, if there is any means to derive it from known facts about the source. If no language can be derived with enough certainty, this method returns "".

The default implementation looks if there is a $$$IKPLANGUAGEFIELDNAME parameter defined pointing to a metadata field containing the language code. Subclasses may override and/or extend this method if they have access to additional information.

Reimplemented in Processor.

◆ GetMetadataKeys()

_.Library.List GetMetadataKeys ( _.Library.String  params)
static

Subclasses should override this method to identify those metadata keys that are

calculated or extracted by this Processor implementation and will be registered for every source processed by calling <method>SetCurrentMetadataValues</method> during the <method>FetchSource</method> execution.

Reimplemented in Processor, Processor, and Processor.

◆ ProcessListElement()

_.Library.Status ProcessListElement ( _.Library.Integer  loc,
_.Library.List  ref,
_.Library.Integer  keyid,
_.Library.String  metadata,
_.Library.Boolean  skipped 
)

This is the primary method that will be called from the <class>iKnow.Source.Loader</class>

for each source identified by the <class>iKnow.Source.Lister</class> objects involved in this loading process. It will buffer what's read in the <method>FetchSource</method> implementation, trigger the <class>iKnow.Source.Converter</class> if one is configured, and then instruct the Indexer to process the resulting plain text, directing its output to the appropriate DirectInput object.

Also, this method will gather any metadata set by the Lister, combine it with metadata calculated by the Processor or Converter and push it to the DirectInput object as well.

◆ SetConverter()

_.Library.Status SetConverter ( _.Library.Integer  convId,
_.Library.String  convParams 
)

Registers the Converter to be used by this Processor onwards.

◆ __SetCurrentMetadataValues()

_.Library.Status __SetCurrentMetadataValues ( _.Library.List  metaValues)
private

Stores the metadata values for the source currently being processed. Their order and

number should correspond to the keys returned by <method>GetMetadataKeys</method>.

◆ SetParams()

_.Library.Status SetParams ( _.Library.String  params)

This method stores the Processor parameters in the <property>Params</property> property,

from where they can be referenced in the <method>FetchSource</method> implementation.

NOTE: If this method is overridden by a subclass, it should make sure to either call this method via ##super, or set <property>Params</property> itself.

Reimplemented in Processor, Processor, and Processor.

Member Data Documentation

◆ __Buffer

__Buffer
private

 

 

◆ __ConvParams

__ConvParams
private

 

 

◆ __Converter

__Converter
private

 

 

◆ __ConverterId

__ConverterId
private

 

 

◆ __DirectInput

__DirectInput
private

 

 

◆ __DomainId

__DomainId
private

 

 

◆ __Indexer

__Indexer
private

 

 

◆ __ListerId

__ListerId
private

 

 

◆ __Params

__Params
private

 

 

◆ __TempId

__TempId
private

surrogate domain ID for use in IRIS.Temp

guaranteed to be unique across namespaces