Package ghidra.framework.store.local

# Class LocalTextDataItem

java.lang.Object
ghidra.framework.store.local.LocalFolderItem
ghidra.framework.store.local.LocalTextDataItem

All Implemented Interfaces:
  `FolderItem`, `TextDataItem`

public class LocalTextDataItem extends LocalFolderItem implements TextDataItem
`LocalTextDataItem` provides a `LocalFolderItem` implementation which stores text data within the associated propertyFile and without any other data storage.

- ## Field Summary

  ### Fields inherited from interface ghidra.framework.store.FolderItem

  `DATABASE_FILE_TYPE, DATAFILE_FILE_TYPE, DEFAULT_CHECKOUT_ID, LATEST_VERSION, LINK_FILE_TYPE, UNKNOWN_FILE_TYPE`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `LocalTextDataItem(LocalFileSystem fileSystem, ItemPropertyFile propertyFile)`
  Constructor for an existing local link file item which corresponds to the specified property file.
  `LocalTextDataItem(LocalFileSystem fileSystem, ItemPropertyFile propertyFile, String fileID, String contentType, String textData)`
  Create a new local text data file item.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `canRecover()`
  Returns true if unsaved file changes can be recovered.
  `int`
  `getCurrentVersion()`
  Return the latest/current version.
  `String`
  `getTextData()`
  Get the text data that was stored with this item
  `Version[]`
  `getVersions()`
  Returns list of all available versions or null if item is not versioned.
  `long`
  `length()`
  Returns the length of this domain file.
  `void`
  `output(File outputFile, int version, TaskMonitor monitor)`
  Serialize (i.e., pack) this item into the specified outputFile.
  `void`
  `setVersionInfo(Version version)`
  Set the version info associated with this versioned file.
  `void`
  `updateCheckout(FolderItem versionedFolderItem, boolean updateItem, TaskMonitor monitor)`
  Update this non-versioned item with the latest version of the specified versioned item.
  `void`
  `updateCheckout(FolderItem item, int checkoutVersion)`
  Update this non-versioned item with the contents of the specified item which must be within the same non-versioned fileSystem.

  ### Methods inherited from class ghidra.framework.store.local.LocalFolderItem

  `checkout, clearCheckout, delete, equals, getCheckout, getCheckoutId, getCheckouts, getCheckoutVersion, getContentType, getContentTypeVersion, getFileID, getLocalCheckoutVersion, getName, getParentPath, getPathName, hasCheckouts, hashCode, isCheckedOut, isCheckedOutExclusive, isCheckinActive, isReadOnly, isVersioned, lastModified, refresh, resetFileID, setCheckout, setContentTypeVersion, setReadOnly, terminateCheckout, updateCheckoutVersion`

  ### Methods inherited from class java.lang.Object

  `clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

  ### Methods inherited from interface ghidra.framework.store.FolderItem

  `checkout, clearCheckout, delete, getCheckout, getCheckoutId, getCheckouts, getCheckoutVersion, getContentType, getContentTypeVersion, getFileID, getLocalCheckoutVersion, getName, getParentPath, getPathName, hasCheckouts, isCheckedOut, isCheckedOutExclusive, isCheckinActive, isReadOnly, isVersioned, lastModified, refresh, resetFileID, setCheckout, setContentTypeVersion, setReadOnly, terminateCheckout, updateCheckoutVersion`

- ## Constructor Details

  - ### LocalTextDataItem

    public LocalTextDataItem(LocalFileSystem fileSystem, ItemPropertyFile propertyFile) throws IOException
    Constructor for an existing local link file item which corresponds to the specified property file.
    Parameters:
      `fileSystem` - file system
      `propertyFile` - database property file
    Throws:
      `IOException` - if an IO Error occurs

  - ### LocalTextDataItem

    public LocalTextDataItem(LocalFileSystem fileSystem, ItemPropertyFile propertyFile, String fileID, String contentType, String textData) throws IOException
    Create a new local text data file item.
    Parameters:
      `fileSystem` - file system
      `propertyFile` - serialized data property file
      `fileID` - file ID to be associated with new file or null
      `contentType` - user content type
      `textData` - text to be stored within associated property file
    Throws:
      `IOException` - if an IO Error occurs

- ## Method Details

  - ### getTextData

    public String getTextData()
    Get the text data that was stored with this item
    Specified by:
      `getTextData` in interface `TextDataItem`
    Returns:
      text data

  - ### 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

  - ### 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`

  - ### setVersionInfo

    public void setVersionInfo(Version version) throws IOException
    Set the version info associated with this versioned file. Only a single version is supported.
    Parameters:
      `version` - version information (only user, create time and comment is retained)
    Throws:
      `IOException` - if an IO error occurs

  - ### getVersions

    public Version[] getVersions() throws IOException
    Description copied from interface: `FolderItem`
    Returns list of all available versions or null if item is not versioned.
    Specified by:
      `getVersions` in interface `FolderItem`
    Overrides:
      `getVersions` in class `LocalFolderItem`
    Throws:
      `IOException` - thrown if an IO error occurs.
    See Also:
      - `FolderItem.getVersions()`