Class RemoteFolderItem

java.lang.Object
ghidra.framework.store.remote.RemoteFolderItem
All Implemented Interfaces:
FolderItem
Direct Known Subclasses:
RemoteDatabaseItem

public abstract class RemoteFolderItem extends Object implements FolderItem
RemoteFolderItem provides an abstract FolderItem implementation for an item contained within a remote Repository.
  • 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
    • 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