static function getInstance( eZContentObjectAttribute $objectAttribute )
    {
        $eZFindIni = eZINI::instance( 'ezfind.ini' );
        
        $datatypeString = $objectAttribute->attribute( 'data_type_string' );

        // Check if using custom handler.
        $customMapList = $eZFindIni->variable( 'SolrFieldMapSettings', 'CustomMap' );
        if ( isset( $customMapList[$datatypeString] ) )
        {
            $fieldBaseClass = $customMapList[$datatypeString];
            if ( class_exists( $fieldBaseClass ) )
            {
                return new $fieldBaseClass( $objectAttribute );
            }
            else
            {
                eZDebug::writeError( "Unknown document field base class '$fieldBaseClass' for datatype '$datatypeString', check your ezfind.ini configuration", __METHOD__ );
            }
        }

        // Return standard handler.
        return new ezfSolrDocumentFieldBase( $objectAttribute );
    }