Class GFileSystemBaseFactory
- java.lang.Object
-
- ghidra.formats.gfilesystem.factory.GFileSystemBaseFactory
-
- All Implemented Interfaces:
GFileSystemFactory<GFileSystemBase>,GFileSystemFactoryFull<GFileSystemBase>,GFileSystemProbe,GFileSystemProbeFull
public class GFileSystemBaseFactory extends java.lang.Object implements GFileSystemFactoryFull<GFileSystemBase>, GFileSystemProbeFull
AGFileSystemFactoryimplementation that probes and creates instances ofGFileSystemBasewhich use the legacy filesystem lifecycle pattern.For each operation, this factory will mint a new instance of a GFileSystemBase-derived fs, using its 3 param constructor, and call its isValid() or open().
After an isValid() call, the newly minted filesystem instance is thrown away.
This class requires special support in the
FileSystemFactoryMgrto push the fsClass into each factory instance after it is constructed.
-
-
Constructor Summary
Constructors Constructor Description GFileSystemBaseFactory()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description GFileSystemBasecreate(FSRL containerFSRL, FSRLRoot targetFSRL, ByteProvider byteProvider, java.io.File containerFile, FileSystemService fsService, TaskMonitor monitor)Constructs a newGFileSysteminstance that handles the specified file.booleanprobe(FSRL containerFSRL, ByteProvider byteProvider, java.io.File containerFile, FileSystemService fsService, TaskMonitor monitor)Probes the specifiedcontainerFileto determine if this filesystem implementation can handle the file.voidsetFileSystemClass(java.lang.Class<? extends GFileSystemBase> fsClass)
-
-
-
Method Detail
-
setFileSystemClass
public void setFileSystemClass(java.lang.Class<? extends GFileSystemBase> fsClass)
-
probe
public boolean probe(FSRL containerFSRL, ByteProvider byteProvider, java.io.File containerFile, FileSystemService fsService, TaskMonitor monitor) throws java.io.IOException, CancelledException
Description copied from interface:GFileSystemProbeFullProbes the specifiedcontainerFileto determine if this filesystem implementation can handle the file.- Specified by:
probein interfaceGFileSystemProbeFull- Parameters:
containerFSRL- theFSRLof the file being probedbyteProvider- aByteProvidercontaining the contents of the file being probed. Implementors of this method should NOTclose()this object.containerFile- theFile(probably in the filecache with non-useful filename) being probed.fsService- a reference to theFileSystemServiceobjectmonitor- aTaskMonitorthat should be polled to see if the user has requested to cancel the operation, and updated with progress information.- Returns:
trueif the specified file is handled by this filesystem implementation,falseif not.- Throws:
java.io.IOException- if there is an error reading files.CancelledException- if the user cancels
-
create
public GFileSystemBase create(FSRL containerFSRL, FSRLRoot targetFSRL, ByteProvider byteProvider, java.io.File containerFile, FileSystemService fsService, TaskMonitor monitor) throws java.io.IOException, CancelledException
Description copied from interface:GFileSystemFactoryFullConstructs a newGFileSysteminstance that handles the specified file.- Specified by:
createin interfaceGFileSystemFactoryFull<GFileSystemBase>- Parameters:
containerFSRL- theFSRLof the file being opened.targetFSRL- theFSRLRootof the filesystem being created.byteProvider- aByteProvidercontaining the contents of the file being probed. This method is responsible for closing this byte provider instance.containerFile- theFile(probably in the filecache with non-useful filename) being opened.fsService- a reference to theFileSystemServiceobjectmonitor- aTaskMonitorthat should be polled to see if the user has requested to cancel the operation, and updated with progress information.- Returns:
- a new
GFileSystemderived instance. - Throws:
java.io.IOException- if there is an error reading files.CancelledException- if the user cancels
-
-