Package ghidra.framework.store.remote

# Class RemoteFolderItem

java.lang.Object
ghidra.framework.store.remote.RemoteFolderItem

All Implemented Interfaces:
  `FolderItem`

Direct Known Subclasses:
  `RemoteDatabaseItem`, `RemoteTextDataItem`, `RemoteUnknownFolderItem`

public abstract class RemoteFolderItem extends Object implements FolderItem
`RemoteFolderItem` provides an abstract FolderItem implementation for an item contained within a remote Repository.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected final String`
  `contentType`
  `protected final String`
  `fileID`
  `protected final String`
  `itemName`
  `protected final String`
  `parentPath`
  `protected RepositoryAdapter`
  `repository`
  `protected String`
  `textData`
  `protected int`
  `version`
  `protected long`
  `versionTime`

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

- ## Method Summary

  Modifier and Type
  Method
  Description
  `ItemCheckoutStatus`
  `checkout(CheckoutType checkoutType, String user, String projectPath)`
  Checkout this folder item.
  `void`
  `clearCheckout()`
  Clears the checkout data associated with this non-shared file.
  `void`
  `delete(int ver, String user)`
  Deletes the item or a specific version.
  `ItemCheckoutStatus`
  `getCheckout(long checkoutId)`
  Get the checkout status which corresponds to the specified checkout ID.
  `long`
  `getCheckoutId()`
  Returns the checkoutId for this file.
  `ItemCheckoutStatus[]`
  `getCheckouts()`
  Get all current checkouts for this item.
  `int`
  `getCheckoutVersion()`
  Returns the item version which was checked-out.
  `String`
  `getContentType()`
  Return The content type name for this item.
  `int`
  `getContentTypeVersion()`
  Returns the version of content type.
  `int`
  `getCurrentVersion()`
  Return the latest/current version.
  `String`
  `getFileID()`
  Return the file ID if one has been established or null
  `int`
  `getLocalCheckoutVersion()`
  Returns the local item version at the time the checkout was completed.
  `String`
  `getName()`
  Return The display name for this item.
  `String`
  `getParentPath()`
  Returns the path of the parent folder.
  `String`
  `getPathName()`
  Return The concatenation of the pathname and the basename which can be used to uniquely identify a folder item.
  `Version[]`
  `getVersions()`
  Returns list of all available versions or null if item is not versioned.
  `boolean`
  `isCheckedOut()`
  Returns true if this item is a checked-out copy from a versioned file system.
  `boolean`
  `isCheckedOutExclusive()`
  Returns true if this item is a checked-out copy with exclusive access from a versioned file system.
  `boolean`
  `isReadOnly()`
  Returns true if item can be overwritten/deleted.
  `boolean`
  `isVersioned()`
  Return true if this is a versioned item, else false
  `long`
  `lastModified()`
  Return The time that this item was last modified.
  `RemoteFolderItem`
  `refresh()`
  Returns this instance after refresh or null if item no longer exists
  `String`
  `resetFileID()`
  Assign a new file-ID to this local non-versioned file.
  `void`
  `setCheckout(long checkoutId, boolean exclusive, int checkoutVersion, int localVersion)`
  Set the checkout data associated with this non-shared file.
  `void`
  `setContentTypeVersion(int version)`
  Sets the version for the content type.
  `void`
  `setReadOnly(boolean state)`
  Set the state of the read-only indicator for this non-shared item.
  `void`
  `terminateCheckout(long checkoutId, boolean notify)`
  Terminates a checkout.

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

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

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

  `canRecover, hasCheckouts, isCheckinActive, length, output, updateCheckoutVersion`

- ## Field Details

  - ### parentPath

    protected final String parentPath

  - ### itemName

    protected final String itemName

  - ### contentType

    protected final String contentType

  - ### fileID

    protected final String fileID

  - ### version

    protected int version

  - ### versionTime

    protected long versionTime

  - ### textData

    protected String textData

  - ### repository

    protected RepositoryAdapter repository

- ## Method Details

  - ### getName

    public String getName()
    Description copied from interface: `FolderItem`
    Return The display name for this item.
    Specified by:
      `getName` in interface `FolderItem`

  - ### refresh

    public RemoteFolderItem refresh() throws IOException
    Description copied from interface: `FolderItem`
    Returns this instance after refresh or null if item no longer exists
    Specified by:
      `refresh` in interface `FolderItem`
    Throws:
      `IOException`

  - ### getFileID

    public String getFileID()
    Description copied from interface: `FolderItem`
    Return the file ID if one has been established or null
    Specified by:
      `getFileID` in interface `FolderItem`

  - ### resetFileID

    public String resetFileID()
    Description copied from interface: `FolderItem`
    Assign a new file-ID to this local non-versioned file. NOTE: This method is only valid for a local non-versioned file-system.
    Specified by:
      `resetFileID` in interface `FolderItem`
    Returns:
      new file-ID

  - ### getContentType

    public String getContentType()
    Description copied from interface: `FolderItem`
    Return The content type name for this item.
    Specified by:
      `getContentType` in interface `FolderItem`

  - ### getParentPath

    public String getParentPath()
    Description copied from interface: `FolderItem`
    Returns the path of the parent folder.
    Specified by:
      `getParentPath` in interface `FolderItem`

  - ### getPathName

    public String getPathName()
    Description copied from interface: `FolderItem`
    Return The concatenation of the pathname and the basename which can be used to uniquely identify a folder item.
    Specified by:
      `getPathName` in interface `FolderItem`

  - ### isReadOnly

    public boolean isReadOnly()
    Description copied from interface: `FolderItem`
    Returns true if item can be overwritten/deleted.
    Specified by:
      `isReadOnly` in interface `FolderItem`

  - ### setReadOnly

    public void setReadOnly(boolean state)
    Description copied from interface: `FolderItem`
    Set the state of the read-only indicator for this non-shared item.
    Specified by:
      `setReadOnly` in interface `FolderItem`
    Parameters:
      `state` - read-only state

  - ### getContentTypeVersion

    public int getContentTypeVersion()
    Description copied from interface: `FolderItem`
    Returns the version of content type. Note this is the version of the structure/storage for the content type, Not the users version of their data.
    Specified by:
      `getContentTypeVersion` in interface `FolderItem`

  - ### setContentTypeVersion

    public void setContentTypeVersion(int version) throws IOException
    Description copied from interface: `FolderItem`
    Sets the version for the content type. This will change whenever the domain objects are upgraded.
    Specified by:
      `setContentTypeVersion` in interface `FolderItem`
    Parameters:
      `version` - the new version for the content type.
    Throws:
      `IOException` - if an IO error occurs or item is stored on a shared file-system

  - ### lastModified

    public long lastModified()
    Description copied from interface: `FolderItem`
    Return The time that this item was last modified.
    Specified by:
      `lastModified` in interface `FolderItem`

  - ### getCurrentVersion

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

  - ### isVersioned

    public boolean isVersioned()
    Description copied from interface: `FolderItem`
    Return true if this is a versioned item, else false
    Specified by:
      `isVersioned` in interface `FolderItem`

  - ### 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`
    Throws:
      `IOException` - thrown if an IO error occurs.

  - ### delete

    public void delete(int ver, String user) throws IOException
    Description copied from interface: `FolderItem`
    Deletes the item or a specific version. If a specific version is specified, it must either be the oldest or latest (i.e., current).
    Specified by:
      `delete` in interface `FolderItem`
    Parameters:
      `ver` - specific version to be deleted, or -1 to remove all versions.
      `user` - user name
    Throws:
      `IOException` - if an IO error occurs, including the inability to delete a version because this item is checked-out, the user does not have permission, or the specified version is not the oldest or latest.

  - ### isCheckedOut

    public boolean isCheckedOut()
    Description copied from interface: `FolderItem`
    Returns true if this item is a checked-out copy from a versioned file system.
    Specified by:
      `isCheckedOut` in interface `FolderItem`

  - ### isCheckedOutExclusive

    public boolean isCheckedOutExclusive()
    Description copied from interface: `FolderItem`
    Returns true if this item is a checked-out copy with exclusive access from a versioned file system.
    Specified by:
      `isCheckedOutExclusive` in interface `FolderItem`

  - ### checkout

    public ItemCheckoutStatus checkout(CheckoutType checkoutType, String user, String projectPath) throws IOException
    Description copied from interface: `FolderItem`
    Checkout this folder item.
    Specified by:
      `checkout` in interface `FolderItem`
    Parameters:
      `checkoutType` - type of checkout
      `user` - user requesting checkout
      `projectPath` - path of project where checkout was made
    Returns:
      checkout status or null if exclusive checkout request failed
    Throws:
      `IOException` - if an IO error occurs or this item is not versioned

  - ### terminateCheckout

    public void terminateCheckout(long checkoutId, boolean notify) throws IOException
    Description copied from interface: `FolderItem`
    Terminates a checkout. The checkout ID becomes invalid, therefore the associated checkout copy should either be removed or converted to a private file.
    Specified by:
      `terminateCheckout` in interface `FolderItem`
    Parameters:
      `checkoutId` - checkout ID
      `notify` - if true item change notification will be sent
    Throws:
      `IOException` - if an IO error occurs or this item is not versioned

  - ### getCheckout

    public ItemCheckoutStatus getCheckout(long checkoutId) throws IOException
    Description copied from interface: `FolderItem`
    Get the checkout status which corresponds to the specified checkout ID.
    Specified by:
      `getCheckout` in interface `FolderItem`
    Parameters:
      `checkoutId` - checkout ID
    Returns:
      checkout status or null if checkout ID not found.
    Throws:
      `IOException` - if an IO error occurs or this item is not versioned

  - ### getCheckouts

    public ItemCheckoutStatus[] getCheckouts() throws IOException
    Description copied from interface: `FolderItem`
    Get all current checkouts for this item.
    Specified by:
      `getCheckouts` in interface `FolderItem`
    Returns:
      array of checkouts
    Throws:
      `IOException` - if an IO error occurs or this item is not versioned

  - ### clearCheckout

    public void clearCheckout() throws IOException
    Description copied from interface: `FolderItem`
    Clears the checkout data associated with this non-shared file. NOTE: This method is only valid for a local non-versioned file-system.
    Specified by:
      `clearCheckout` in interface `FolderItem`
    Throws:
      `IOException`

  - ### getCheckoutId

    public long getCheckoutId() throws IOException
    Description copied from interface: `FolderItem`
    Returns the checkoutId for this file. A value of -1 indicates a private item. NOTE: This method is only valid for a local non-versioned file-system.
    Specified by:
      `getCheckoutId` in interface `FolderItem`
    Throws:
      `IOException` - if an IO error occurs

  - ### getCheckoutVersion

    public int getCheckoutVersion() throws IOException
    Description copied from interface: `FolderItem`
    Returns the item version which was checked-out. A value of -1 indicates a private item. NOTE: This method is only valid for a local non-versioned file-system.
    Specified by:
      `getCheckoutVersion` in interface `FolderItem`
    Throws:
      `IOException`

  - ### getLocalCheckoutVersion

    public int getLocalCheckoutVersion()
    Description copied from interface: `FolderItem`
    Returns the local item version at the time the checkout was completed. A value of -1 indicates a private item. NOTE: This method is only valid for a local non-versioned file-system.
    Specified by:
      `getLocalCheckoutVersion` in interface `FolderItem`

  - ### setCheckout

    public void setCheckout(long checkoutId, boolean exclusive, int checkoutVersion, int localVersion) throws IOException
    Description copied from interface: `FolderItem`
    Set the checkout data associated with this non-shared file. NOTE: This method is only valid for a local non-versioned file-system.
    Specified by:
      `setCheckout` in interface `FolderItem`
    Parameters:
      `checkoutId` - checkout ID (provided by ItemCheckoutStatus).
      `exclusive` - true if checkout is exclusive
      `checkoutVersion` - the item version which was checked-out (provided by ItemCheckoutStatus).
      `localVersion` - the local item version at the time the checkout was completed.
    Throws:
      `IOException` - if an IO error occurs or item is stored on a shared file-system