Package ghidra.plugins.importer.batch
Class BatchInfo
- java.lang.Object
-
- ghidra.plugins.importer.batch.BatchInfo
-
public class BatchInfo extends java.lang.ObjectThis 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
Fields Modifier and Type Field Description static intMAXDEPTH_DEFAULTstatic intMAXDEPTH_UNLIMITED
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanaddFile(FSRL fsrl, TaskMonitor taskMonitor)Adds a file to this batch as the direct result of a user action.intgetEnabledCount()Returns the count of applications in enabledBatchGroups...java.util.List<BatchGroup>getGroups()Returns a list of theBatchGroups that have been found when processing the added files.intgetMaxDepth()Maximum depth of containers (ie.intgetTotalCount()Returns the count of how many importable objects (ie.intgetTotalRawCount()Returns the count of how many files were found while processing the source files.java.util.List<UserAddedSourceInfo>getUserAddedSources()Returns theListof files added viaaddFile(FSRL, TaskMonitor).booleanisSingleApp()Checks the found applications and returns true if only a single binary was found, even if multiple loaders claim it.voidremove(FSRL fsrl)Removes a user-added source file (and all the embedded files inside it) from this batch.voidsetMaxDepth(int newMaxDepth)Sets a new max container recursive depth limit for this batch importjava.lang.StringtoString()booleanwasRecurseTerminatedEarly()Returns true if any of the user source files had containers that were not recursed into because of themaxDepthlimit.
-
-
-
Field Detail
-
MAXDEPTH_UNLIMITED
public static final int MAXDEPTH_UNLIMITED
- See Also:
- Constant Field Values
-
MAXDEPTH_DEFAULT
public static final int MAXDEPTH_DEFAULT
- See Also:
- Constant Field Values
-
-
Method Detail
-
getGroups
public java.util.List<BatchGroup> getGroups()
Returns a list of theBatchGroups that have been found when processing the added files.- Returns:
ListofBatchGroups.
-
getTotalCount
public int getTotalCount()
Returns the count of how many importable objects (ie.LoadSpecs) 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 enabledBatchGroups... in other words, the number of objects that would be imported during this batch.- Returns:
- count of enabled applications.
-
remove
public void remove(FSRL fsrl)
Removes a user-added source file (and all the embedded files inside it) from this batch.- Parameters:
fsrl-FSRLof the file to remove.
-
addFile
public boolean addFile(FSRL fsrl, TaskMonitor taskMonitor) throws java.io.IOException, CancelledException
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-FSRLof the file to add.taskMonitor-TaskMonitorto watch and update with progress.- Returns:
- boolean true if something in the the file produced something to import.
- Throws:
java.io.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 themaxDepthlimit.- Returns:
- true if any of the user source files had containers that were not
recursed into because of the
maxDepthlimit.
-
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
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
getUserAddedSources
public java.util.List<UserAddedSourceInfo> getUserAddedSources()
Returns theListof files added viaaddFile(FSRL, TaskMonitor).- Returns:
Listof 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
-
-