public static function getFieldNameList( eZContentClassAttribute $classAttribute, $exclusiveTypeFilter = array() )
    {
        $eZFindIni = eZINI::instance( 'ezfind.ini' );
        
        $datatypeString = $classAttribute->attribute( 'data_type_string' );
        $customMapList = $eZFindIni->variable( 'SolrFieldMapSettings', 'CustomMap' );

        if ( array_key_exists( $datatypeString, $customMapList ) )
        {
            if ( self::isStaticDelegationAllowed( $customMapList[$datatypeString], 'getFieldNameList' ) and
                 ( $returnValue = call_user_func_array( array( $customMapList[$datatypeString], 'getFieldNameList' ),
                                                        array( $classAttribute, $exclusiveTypeFilter ) ) )
               )
            {
                return $returnValue;
            }
        }

        // fallback behaviour :
        if ( empty( $exclusiveTypeFilter ) or !in_array( self::getClassAttributeType( $classAttribute ), $exclusiveTypeFilter ) )
            return array( self::getFieldName( $classAttribute ) );
        else
            return array();
    }