/// <summary>
 /// Called once when loading the module, will not necessarily be called once per classificaiton run
 /// </summary>
 /// <param name="moduleDefinition">The definition for this module</param>
 /// <param name="moduleConnector"></param>
 public void OnLoad(
     IFsrmPipelineModuleDefinition moduleDefinition,
     out FsrmPipelineModuleConnector moduleConnector
     )
 {
     moduleConnector = new FsrmPipelineModuleConnector();
     moduleConnector.Bind(moduleDefinition, this);
     m_moduleDefinition = moduleDefinition;
 }
 /// <summary>
 /// Called once when loading the module, will not necessarily be called once per classificaiton run
 /// </summary>
 /// <param name="moduleDefinition">The definition for this module</param>
 /// <param name="moduleConnector"></param>
 public void OnLoad(
     IFsrmPipelineModuleDefinition moduleDefinition,
     out FsrmPipelineModuleConnector moduleConnector
     )
 {
     moduleConnector = new FsrmPipelineModuleConnector();
     moduleConnector.Bind( moduleDefinition, this );
     m_moduleDefinition = moduleDefinition;
 }
        /*++

            Routine RegexClassifier::OnLoad

        Description:

            This routine implements the IFsrmClassifierModuleImplementation interface OnLoad.
            It is called when the classifier module is loaded by the FSRM classification manager.

        Arguments:

            moduleDefinition - The module definition for this object passed by the FSRM classification manager
            moduleConnector - Out parameter for the FSRM pipeline connector module that this method creates and returns.

        Return value:

            void

        Notes:

        --*/
        public void OnLoad(
            IFsrmPipelineModuleDefinition moduleDefinition,
            out FsrmPipelineModuleConnector moduleConnector
            )
        {
            //Default value for the Regex options
            m_iValRegexOptions = (int)(RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.CultureInvariant);

            //Create the FSRM pipeline module connector
            moduleConnector = new FsrmPipelineModuleConnector();

            //Bind the connector to this object
            moduleConnector.Bind( moduleDefinition, this );

            //Retrieve the classifier's module parameters from the module definitions
            object[] modParams = moduleDefinition.Parameters;

            //loop through all module parameters and save appropriate ones
            foreach (object param in modParams) {
                string strParam = (string)param;
                string[] splitParams =
                    strParam.Split(
                        RegexClassifier.ModuleParamDelimiter.ToCharArray(),
                        2
                        );

                string key = splitParams[0];
                string val = splitParams[1];
                if (val != null) {
                    if (key.Equals(
                        RegexClassifier.ModuleParamRegexOptions,
                        StringComparison.OrdinalIgnoreCase )) {
                        m_iValRegexOptions = Convert.ToInt32( val, CultureInfo.InvariantCulture );
                    } else if (key.Equals( "encoding", StringComparison.OrdinalIgnoreCase )) {
                        if (val.Equals( "ascii", StringComparison.OrdinalIgnoreCase )) {
                            m_encoder = new System.Text.ASCIIEncoding();
                        } else if (val.Equals( "unicode", StringComparison.OrdinalIgnoreCase )) {
                            m_encoder = new System.Text.UnicodeEncoding();
                        } else if (val.Equals( "utf32", StringComparison.OrdinalIgnoreCase )) {
                            m_encoder = new System.Text.UTF32Encoding();
                        } else if (val.Equals( "utf7", StringComparison.OrdinalIgnoreCase )) {
                            m_encoder = new System.Text.UTF7Encoding();
                        } else if (val.Equals( "utf8", StringComparison.OrdinalIgnoreCase )) {
                            m_encoder = new System.Text.UTF8Encoding();
                        }
                    }
                }
            }
            if (m_encoder == null) {
                throw new ArgumentException( "Classifier needs a valid encoding" );
            }
        }
Пример #4
0
        /*++
         *
         *  Routine RegexClassifier::OnLoad
         *
         * Description:
         *
         *  This routine implements the IFsrmClassifierModuleImplementation interface OnLoad.
         *  It is called when the classifier module is loaded by the FSRM classification manager.
         *
         * Arguments:
         *
         *  moduleDefinition - The module definition for this object passed by the FSRM classification manager
         *  moduleConnector - Out parameter for the FSRM pipeline connector module that this method creates and returns.
         *
         * Return value:
         *
         *  void
         *
         * Notes:
         *
         *
         * --*/
        public void OnLoad(
            IFsrmPipelineModuleDefinition moduleDefinition,
            out FsrmPipelineModuleConnector moduleConnector
            )
        {
            //Default value for the Regex options
            m_iValRegexOptions = (int)(RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.CultureInvariant);

            //Create the FSRM pipeline module connector
            moduleConnector = new FsrmPipelineModuleConnector();

            //Bind the connector to this object
            moduleConnector.Bind(moduleDefinition, this);

            //Retrieve the classifier's module parameters from the module definitions
            object[] modParams = moduleDefinition.Parameters;

            //loop through all module parameters and save appropriate ones
            foreach (object param in modParams)
            {
                string   strParam    = (string)param;
                string[] splitParams =
                    strParam.Split(
                        RegexClassifier.ModuleParamDelimiter.ToCharArray(),
                        2
                        );

                string key = splitParams[0];
                string val = splitParams[1];
                if (val != null)
                {
                    if (key.Equals(
                            RegexClassifier.ModuleParamRegexOptions,
                            StringComparison.OrdinalIgnoreCase))
                    {
                        m_iValRegexOptions = Convert.ToInt32(val, CultureInfo.InvariantCulture);
                    }
                    else if (key.Equals("encoding", StringComparison.OrdinalIgnoreCase))
                    {
                        if (val.Equals("ascii", StringComparison.OrdinalIgnoreCase))
                        {
                            m_encoder = new System.Text.ASCIIEncoding();
                        }
                        else if (val.Equals("unicode", StringComparison.OrdinalIgnoreCase))
                        {
                            m_encoder = new System.Text.UnicodeEncoding();
                        }
                        else if (val.Equals("utf32", StringComparison.OrdinalIgnoreCase))
                        {
                            m_encoder = new System.Text.UTF32Encoding();
                        }
                        else if (val.Equals("utf7", StringComparison.OrdinalIgnoreCase))
                        {
                            m_encoder = new System.Text.UTF7Encoding();
                        }
                        else if (val.Equals("utf8", StringComparison.OrdinalIgnoreCase))
                        {
                            m_encoder = new System.Text.UTF8Encoding();
                        }
                    }
                }
            }
            if (m_encoder == null)
            {
                throw new ArgumentException("Classifier needs a valid encoding");
            }
        }