public function extractFromFile($filePath)
    {
        if (!is_file($filePath)) {

            throw new FileNotFoundException($filePath);
        }

        $extension = pathinfo($filePath, PATHINFO_EXTENSION);
        $this->checkDirectory();

        $extractorAdapterNamespace = $this->getAdapterNamespaceGivenExtension($extension);

        $extractorAdapter = $this
            ->instanceExtractorAdapter($extractorAdapterNamespace);

        if (!$extractorAdapter->isAvailable()) {

            throw new AdapterNotAvailableException($extractorAdapter->getIdentifier());
        }

        return $extractorAdapter->extract($filePath);
    }