Class LocalDataFile

java.lang.Object
ghidra.framework.store.local.LocalFolderItem
ghidra.framework.store.local.LocalDataFile
All Implemented Interfaces:
DataFileItem, FolderItem

public class LocalDataFile extends LocalFolderItem implements DataFileItem
LocalDataFile provides a FolderItem implementation for a local serialized data file. This implementation supports a non-versioned file-system only.

This item utilizes a data directory for storing the serialized data file.

  • Constructor Details

    • LocalDataFile

      public LocalDataFile(LocalFileSystem fileSystem, PropertyFile propertyFile) throws IOException
      Throws:
      IOException
    • LocalDataFile

      public LocalDataFile(LocalFileSystem fileSystem, PropertyFile propertyFile, InputStream istream, String contentType, TaskMonitor monitor) throws IOException, CancelledException
      Create a new local data file item.
      Parameters:
      fileSystem - file system
      propertyFile - serialized data property file
      istream - data source input stream (should be a start of data and will be read to end of file). The invoker of this constructor is responsible for closing istream.
      contentType - user content type
      monitor - progress monitor (used for cancel support, progress not used since length of input stream is unknown)
      Throws:
      IOException - if an IO Error occurs
      CancelledException - if monitor cancels operation
  • Method Details

    • length

      public long length() throws IOException
      Description copied from interface: FolderItem
      Returns the length of this domain file. This size is the minimum disk space used for storing this file, but does not account for additional storage space used to tracks changes, etc.
      Specified by:
      length in interface FolderItem
      Returns:
      file length
      Throws:
      IOException - thrown if IO or access error occurs
    • getInputStream

      public InputStream getInputStream() throws FileNotFoundException
      Description copied from interface: DataFileItem
      Open the current version of this item for reading.
      Specified by:
      getInputStream in interface DataFileItem
      Returns:
      input stream
      Throws:
      FileNotFoundException
    • getInputStream

      public InputStream getInputStream(int version) throws FileNotFoundException
      Description copied from interface: DataFileItem
      Open a specific version of this item for reading.
      Specified by:
      getInputStream in interface DataFileItem
      Returns:
      input stream
      Throws:
      FileNotFoundException
    • getOutputStream

      public OutputStream getOutputStream() throws FileNotFoundException
      Description copied from interface: DataFileItem
      Open a new version of this item for writing.
      Specified by:
      getOutputStream in interface DataFileItem
      Returns:
      output stream.
      Throws:
      FileNotFoundException
    • updateCheckout

      public void updateCheckout(FolderItem versionedFolderItem, boolean updateItem, TaskMonitor monitor) throws IOException
      Description copied from class: LocalFolderItem
      Update this non-versioned item with the latest version of the specified versioned item.
      Specified by:
      updateCheckout in class LocalFolderItem
      Parameters:
      versionedFolderItem - versioned item which corresponds to this non-versioned item.
      updateItem - if true this items content is updated using the versionedFolderItem
      monitor - progress monitor for update
      Throws:
      IOException - if this file is not a checked-out non-versioned file or an IO error occurs.
    • updateCheckout

      public void updateCheckout(FolderItem item, int checkoutVersion) throws IOException
      Description copied from class: LocalFolderItem
      Update this non-versioned item with the contents of the specified item which must be within the same non-versioned fileSystem. If successful, the specified item will be removed after its content has been moved into this item.
      Specified by:
      updateCheckout in class LocalFolderItem
      Parameters:
      item -
      checkoutVersion -
      Throws:
      IOException - if this file is not a checked-out non-versioned file or an IO error occurs.
    • output

      public void output(File outputFile, int version, TaskMonitor monitor) throws IOException
      Description copied from interface: FolderItem
      Serialize (i.e., pack) this item into the specified outputFile.
      Specified by:
      output in interface FolderItem
      Parameters:
      outputFile - packed output file to be created
      version - if this item is versioned, specifies the version to be output, otherwise -1 should be specified.
      monitor - progress monitor
      Throws:
      IOException
    • getCurrentVersion

      public int getCurrentVersion()
      Description copied from interface: FolderItem
      Return the latest/current version.
      Specified by:
      getCurrentVersion in interface FolderItem
    • canRecover

      public boolean canRecover()
      Description copied from interface: FolderItem
      Returns true if unsaved file changes can be recovered.
      Specified by:
      canRecover in interface FolderItem