Interface ProjectIndexer


  • @API(type=NOT_EXTENDABLE,
         src=PUBLIC)
    public interface ProjectIndexer
    Provides access to the project resources, through search methods. An index may or may not be already built.
    Since:
    24.1
    • Method Detail

      • addProgressMonitor

        void addProgressMonitor​(ProjectIndexerProgressMonitor progressMonitor)
        Adds a progress monitor.
        Parameters:
        progressMonitor - The monitor to be notified of index events.
      • removeProgressMonitor

        void removeProgressMonitor​(ProjectIndexerProgressMonitor progressMonitor)
        Remove the monitor.
        Parameters:
        progressMonitor - The monitor to be removed.
      • updateIndex

        void updateIndex​(boolean forceReindex)
        Use this to trigger a reindex. The indexer can decide to build the index structure if there is none.
        Parameters:
        forceReindex - true drops the entire index structure and reindex all the resources from the project. If false, it performs a shallow update, reindexing only the modified resources from the project or the new ones.
      • cancelUpdateIndex

        void cancelUpdateIndex()
        Cancel the indexing process.
      • clearIndex

        void clearIndex()
                 throws java.io.IOException
        Clears the index. Stops any indexing tasks.

        Warning: This methods will acquire a write lock on the indexing engine so it might block if a write-lock (indexing) is already in progress. This can be an issue if the calling thread is AWT. Use runAsync(Runnable) to avoid this situation.

        Throws:
        java.io.IOException - When the index could not be cleared.
      • isIndexingInProgress

        boolean isIndexingInProgress()
        Check if the project resource collection is in progress.
        Returns:
        true if the collection task is in progress.
      • getCompletionProposals

        java.util.List<CompletionProposal> getCompletionProposals​(java.lang.String prefix,
                                                                  CompletionProposalsOptions options)
                                                           throws ProjectIndexerException
        Gets a list of proposals for a prefix in a document.
        Parameters:
        prefix - A prefix is a usually a text, a part of a phrase, from the beginning of the paragraph to the caret position.
        options - Set of options.
        Returns:
        A list of proposals, never null.
        Throws:
        ProjectIndexerException - When the index does not contain the content of the files, or if the index is not accessible.
      • hasData

        boolean hasData()
        Checks if the index contains data. I.e it was at least once indexed.
        Returns:
        true if the index contains data. This is true after a indexing operation resulting in the creation of the index on disk.
      • runAsync

        void runAsync​(java.lang.Runnable runnable)
        Calling indexer methods might block for a read-lock.
        Parameters:
        runnable - Code that will run asynchronous, on another thread.
      • getIndexedTextContent

        java.util.Map<java.lang.String,​java.lang.String> getIndexedTextContent()
                                                                              throws java.io.IOException
        Gets all the indexed files text content, as a mapping between the resource URI and the content.

        Warning: This is EXPERIMENTAL API. The resulted text depends on the order in which the indexing was done.

        Limitation: Entities, DITA conrefs, keys are not expanded.

        Returns:
        The text content of the indexed files. The key is the URI.
        Throws:
        java.io.IOException - When the index cannot be read.