Class ImporterUtilities


  • public class ImporterUtilities
    extends java.lang.Object
    Utilities for importing files.

    Note: if a method takes a TaskMonitor, then that method should only be called from a background task.

    • Field Detail

      • LOADABLE_FILES_FILTER

        public static final GhidraFileFilter LOADABLE_FILES_FILTER
        File extension filter for well known 'loadable' files for GhidraFileChoosers. TODO: will be refactored to use file_extension_icon.xml file info.
      • CONTAINER_FILES_FILTER

        public static final GhidraFileFilter CONTAINER_FILES_FILTER
        File extension filter for well known 'container' files for GhidraFileChoosers. TODO: will be refactored to use file_extension_icon.xml file info.
    • Constructor Detail

      • ImporterUtilities

        public ImporterUtilities()
    • Method Detail

      • setProgramProperties

        public static void setProgramProperties​(Program program,
                                                FSRL fsrl,
                                                TaskMonitor monitor)
                                         throws CancelledException,
                                                java.io.IOException
        Ensure that a Program's metadata includes its import origin.
        Parameters:
        program - imported Program to modify
        fsrl - FSRL of the import source.
        monitor - TaskMonitor to use when accessing filesystem stuff.
        Throws:
        CancelledException - if user cancels
        java.io.IOException - if IO error
      • showImportDialog

        public static void showImportDialog​(PluginTool tool,
                                            ProgramManager programManager,
                                            FSRL fsrl,
                                            DomainFolder destinationFolder,
                                            java.lang.String suggestedPath)
        Displays the appropriate import dialog for the specified file.

        If the file is a container of other files, a batch import dialog will be used, otherwise the normal single file import dialog will be shown.

        Parameters:
        tool - PluginTool will be used as the parent tool for dialogs
        programManager - optional ProgramManager instance to use to open imported binaries with, or null
        fsrl - FSRL of the file to import
        destinationFolder - DomainFolder destination folder where the imported file will default to. (the user will be able to choose a different location)
        suggestedPath - optional string path that will automatically be pre-pended to the destination filename
      • showImportDialog

        public static void showImportDialog​(PluginTool tool,
                                            ProgramManager programManager,
                                            FSRL fsrl,
                                            DomainFolder destinationFolder,
                                            java.lang.String suggestedPath,
                                            TaskMonitor monitor)
        Displays the appropriate import dialog for the specified file.

        If the file is a container of other files, a batch import dialog will be used, otherwise the normal single file import dialog will be shown.]

        If you are not in a monitored task, then call showImportDialog(PluginTool, ProgramManager, FSRL, DomainFolder, String).

        Parameters:
        tool - PluginTool will be used as the parent tool for dialogs
        programManager - optional ProgramManager instance to use to open imported binaries with, or null
        fsrl - FSRL of the file to import
        destinationFolder - DomainFolder destination folder where the imported file will default to. (the user will be able to choose a different location)
        suggestedPath - optional string path that will automatically be pre-pended to the destination filename
        monitor - the task monitor to use for monitoring; cannot be null
      • importSingleFile

        public static void importSingleFile​(PluginTool tool,
                                            ProgramManager programManager,
                                            FSRL fsrl,
                                            DomainFolder destFolder,
                                            LoadSpec loadSpec,
                                            java.lang.String programName,
                                            java.util.List<Option> options,
                                            TaskMonitor monitor)
        Perform file import and open using optional programManager
        Parameters:
        tool - tool to which popup dialogs should be associated
        programManager - program manager to open imported file with or null
        fsrl - import file location
        destFolder - project destination folder
        loadSpec - import LoadSpec
        programName - program name
        options - import options
        monitor - task monitor