public static function searchAddonClassFileInAddon(string $class, Addon $addon)
    {
        $classWithNamespaceToLoad = str_replace('\\', '/', $class);
        $namespaceToLoad = dirname($classWithNamespaceToLoad);
        
        $classToLoad = basename($classWithNamespaceToLoad);
        $classFileName = $classToLoad . EXT_PHP;
        
        $paths = array();
        
        $paths[] = ($addon->getPath() . $classFileName);
        $paths[] = ($addon->getPath() . $classWithNamespaceToLoad . EXT_PHP);
        $paths[] = ($addon->getPath() . strtolower($namespaceToLoad) . '/' . $classFileName);
        
        $paths[] = ($addon->getPath() . DIR_LIBS_BASENAME . $classFileName);
        $paths[] = ($addon->getPath() . DIR_LIBS_BASENAME . $classWithNamespaceToLoad . EXT_PHP);
        $paths[] = ($addon->getPath() . DIR_LIBS_BASENAME . strtolower($namespaceToLoad) . '/' . $classFileName);
        
        $segments = explode('/', $namespaceToLoad);
        for ($sidx = 1; $sidx <= sizeof($segments); $sidx++) {
            $paths[] = ($addon->getPath() . implode('-', array_slice($segments, 0, $sidx)) . '/' . $classFileName);
            $paths[] = ($addon->getPath() . DIR_LIBS_BASENAME . implode('-', array_slice($segments, 0, $sidx)) . '/' . $classFileName);
        }
        
        foreach ($paths as $path) {
            if (is_file($path)) {
                return $path;
            }
        }
        
        return null;
    }