Package ghidra.plugins.importer.batch
Class BatchInfo
java.lang.Object
ghidra.plugins.importer.batch.BatchInfo
This is the main state of a batch import task, containing the segregated groupings of
applications.
This class also handles populating the batch groups by recursively descending into files and the contents of those files.
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
static final int
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionboolean
addFile
(FSRL fsrl, TaskMonitor taskMonitor) Adds a file to this batch as the direct result of a user action.int
Returns the count of applications in enabledBatchGroup
s...Returns a list of theBatchGroup
s that have been found when processing the added files.int
Maximum depth of containers (ie.int
Returns the count of how many importable objects (ie.int
Returns the count of how many files were found while processing the source files.Returns theList
of files added viaaddFile(FSRL, TaskMonitor)
.boolean
Checks the found applications and returns true if only a single binary was found, even if multiple loaders claim it.void
Removes a user-added source file (and all the embedded files inside it) from this batch.void
setMaxDepth
(int newMaxDepth) Sets a new max container recursive depth limit for this batch importtoString()
boolean
Returns true if any of the user source files had containers that were not recursed into because of themaxDepth
limit.
-
Field Details
-
MAXDEPTH_UNLIMITED
public static final int MAXDEPTH_UNLIMITED- See Also:
-
MAXDEPTH_DEFAULT
public static final int MAXDEPTH_DEFAULT- See Also:
-
-
Constructor Details
-
BatchInfo
public BatchInfo()Creates a new BatchInfo object with a defaultmaxDepth
. -
BatchInfo
public BatchInfo(int maxDepth) Creates a new BatchInfo object using the specified maxDepth.- Parameters:
maxDepth
- seemaxDepth
.
-
-
Method Details
-
getGroups
Returns a list of theBatchGroup
s that have been found when processing the added files.- Returns:
List
ofBatchGroup
s.
-
getTotalCount
public int getTotalCount()Returns the count of how many importable objects (ie.LoadSpec
s) were found.- Returns:
- count of importable objects.
-
getTotalRawCount
public int getTotalRawCount()Returns the count of how many files were found while processing the source files.- Returns:
- count of files found while processing source files.
-
getEnabledCount
public int getEnabledCount()Returns the count of applications in enabledBatchGroup
s... in other words, the number of objects that would be imported during this batch.- Returns:
- count of enabled applications.
-
remove
Removes a user-added source file (and all the embedded files inside it) from this batch.- Parameters:
fsrl
-FSRL
of the file to remove.
-
addFile
Adds a file to this batch as the direct result of a user action.If the file is a container for other files, this method will iterate through those child files and recursively try to add them using this method.
- Parameters:
fsrl
-FSRL
of the file to add.taskMonitor
-TaskMonitor
to watch and update with progress.- Returns:
- boolean true if something in the the file produced something to import.
- Throws:
IOException
- if io error when reading files.CancelledException
- if user cancels.
-
wasRecurseTerminatedEarly
public boolean wasRecurseTerminatedEarly()Returns true if any of the user source files had containers that were not recursed into because of themaxDepth
limit.- Returns:
- true if any of the user source files had containers that were not
recursed into because of the
maxDepth
limit.
-
isSingleApp
public boolean isSingleApp()Checks the found applications and returns true if only a single binary was found, even if multiple loaders claim it.- Returns:
- true if single binary and batch is probably not correct importer.
-
toString
-
getUserAddedSources
Returns theList
of files added viaaddFile(FSRL, TaskMonitor)
.- Returns:
List
of files added viaaddFile(FSRL, TaskMonitor)
.
-
getMaxDepth
public int getMaxDepth()Maximum depth of containers (ie. filesystems) to recurse into when processing a file added by the user- Returns:
- the current maximum depth of containers (ie. filesystems) to recurse into when processing a file added by the user.
-
setMaxDepth
public void setMaxDepth(int newMaxDepth) Sets a new max container recursive depth limit for this batch importDoing this requires rescanning all original user-added source files and stopping at the new max depth.
- Parameters:
newMaxDepth
- new value for the max depth
-