def load_data(
        self,
        folder_id: Optional[str] = None,
        file_ids: Optional[List[str]] = None,
        is_recursive: bool = False,
    ) -> List[Document]:
        """
        Loads data from Box files into a list of Document objects.

        This method retrieves Box files based on the provided parameters and
        processes them into a structured format using a SimpleDirectoryReader.

        Args:
            self (BoxDataHandler): An instance of the BoxDataHandler class.
            folder_id (Optional[str], optional): The ID of the Box folder to load
                data from. If provided, along with is_recursive set to True, retrieves
                data from sub-folders as well. Defaults to None.
            file_ids (Optional[List[str]], optional): A list of Box file IDs to
                load data from. If provided, folder_id is ignored. Defaults to None.
            is_recursive (bool, optional): If True and folder_id is provided, retrieves
                data from sub-folders within the specified folder. Defaults to False.

        Returns:
            List[Document]: A list of Document objects containing the processed data
                extracted from the Box files.

        Raises:
            BoxAPIError: If an error occurs while interacting with the Box API.

        """
        # Connect to Box
        box_check_connection(self._box_client)

        # Get the file resources
        box_files: List[File] = []
        if file_ids is not None:
            box_files.extend(
                get_box_files_details(box_client=self._box_client, file_ids=file_ids)
            )
        elif folder_id is not None:
            box_files.extend(
                get_box_folder_files_details(
                    box_client=self._box_client,
                    folder_id=folder_id,
                    is_recursive=is_recursive,
                )
            )

        with tempfile.TemporaryDirectory() as temp_dir:
            box_files_with_path = self._download_files(box_files, temp_dir)

            file_name_to_metadata = {
                file.downloaded_file_path: box_file_to_llama_document_metadata(file)
                for file in box_files_with_path
            }

            def get_metadata(filename: str) -> Any:
                return file_name_to_metadata[filename]

            simple_loader = SimpleDirectoryReader(
                input_dir=temp_dir,
                file_metadata=get_metadata,
                file_extractor=self.file_extractor,
            )
            return simple_loader.load_data()

        Loads data from Box files into a list of Document objects.

        This method retrieves Box files based on the provided parameters and
        processes them into a structured format using a SimpleDirectoryReader.

        Args:
            self (BoxDataHandler): An instance of the BoxDataHandler class.
            folder_id (Optional[str], optional): The ID of the Box folder to load
                data from. If provided, along with is_recursive set to True, retrieves
                data from sub-folders as well. Defaults to None.
            file_ids (Optional[List[str]], optional): A list of Box file IDs to
                load data from. If provided, folder_id is ignored. Defaults to None.
            is_recursive (bool, optional): If True and folder_id is provided, retrieves
                data from sub-folders within the specified folder. Defaults to False.

        Returns:
            List[Document]: A list of Document objects containing the processed data
                extracted from the Box files.

        Raises:
            BoxAPIError: If an error occurs while interacting with the Box API.

        
llama-index-integrations/readers/llama-index-readers-box/llama_index/readers/box/BoxReader/base.py