Interface RepositoryHandle

All Known Subinterfaces:
RemoteRepositoryHandle

public interface RepositoryHandle
RepositoryHandle provides access to a repository.
  • Field Details

    • CLIENT_CHECK_PERIOD

      static final int CLIENT_CHECK_PERIOD
  • Method Details

    • getName

      String getName() throws IOException
      Returns the name of this repository.
      Throws:
      IOException - if an IO error occurs
    • getUser

      User getUser() throws IOException
      Returns user object associated with this handle.
      Throws:
      IOException - if an IO error occurs
    • getUserList

      User[] getUserList() throws IOException
      Returns a list of users authorized for this repository.
      Throws:
      UserAccessException
      IOException - if an IO error occurs
    • anonymousAccessAllowed

      boolean anonymousAccessAllowed() throws IOException
      Returns:
      true if anonymous access allowed by this repository
      Throws:
      IOException - if an IO error occurs
    • getServerUserList

      String[] getServerUserList() throws IOException
      Convenience method for obtaining a list of all users known to the server.
      Returns:
      list of user names.
      Throws:
      IOException - if an IO error occurs
      See Also:
    • setUserList

      void setUserList(User[] users, boolean anonymousAccessAllowed) throws IOException
      Set the list of authorized users for this repository.
      Parameters:
      users - list of user and access permissions.
      anonymousAccessAllowed - true if anonymous access should be permitted to this repository
      Throws:
      UserAccessException
      IOException - if an IO error occurs
    • getSubfolderList

      String[] getSubfolderList(String folderPath) throws IOException
      Get list of subfolders contained within the specified parent folder.
      Parameters:
      folderPath - parent folder path
      Returns:
      list of subfolder names
      Throws:
      UserAccessException - if user does not have adequate permission within the repository.
      FileNotFoundException - if specified parent folder path not found
      IOException - if an IO error occurs
    • getItemCount

      int getItemCount() throws IOException
      Returns the number of folder items contained within this file-system.
      Throws:
      IOException - if an IO error occurs
      UnsupportedOperationException - if file-system does not support this operation
    • getItemList

      RepositoryItem[] getItemList(String folderPath) throws IOException
      Get of all items found within the specified parent folder path.
      Parameters:
      folderPath - parent folder path
      Returns:
      list of items contained within specified parent folder
      Throws:
      UserAccessException
      FileNotFoundException - if parent folder not found
      IOException - if an IO error occurs
    • getItem

      RepositoryItem getItem(String parentPath, String name) throws IOException
      Returns the RepositoryItem in the given folder with the given name
      Parameters:
      parentPath - folder path
      name - item name
      Returns:
      item or null if not found
      Throws:
      IOException - if an IO error occurs
    • getItem

      RepositoryItem getItem(String fileID) throws IOException
      Returns the RepositoryItem with the given unique file ID
      Parameters:
      fileID - unique file ID
      Returns:
      item or null if not found
      Throws:
      IOException - if an IO error occurs
      UnsupportedOperationException - if file-system does not support this operation
    • createDatabase

      ManagedBufferFileHandle createDatabase(String parentPath, String itemName, String fileID, int bufferSize, String contentType, String projectPath) throws IOException, InvalidNameException
      Create a new empty database item within the repository.
      Parameters:
      parentPath - parent folder path
      itemName - new item name
      fileID - unique file ID
      bufferSize - buffer file buffer size
      contentType - application content type
      projectPath - path of user's project
      Returns:
      initial buffer file open for writing
      Throws:
      UserAccessException - if user does not have adequate permission within the repository.
      DuplicateFileException - item path already exists within repository
      IOException - if an IO error occurs
      InvalidNameException - if itemName or parentPath contains invalid characters
    • openDatabase

      ManagedBufferFileHandle openDatabase(String parentPath, String itemName, int version, int minChangeDataVer) throws IOException
      Open an existing version of a database buffer file for non-update read-only use.
      Parameters:
      parentPath - parent folder path
      itemName - name of existing data file
      version - existing version of data file (-1 = latest version)
      minChangeDataVer - indicates the oldest change data buffer file to be included. A -1 indicates only the last change data buffer file is applicable.
      Returns:
      remote buffer file for non-update read-only use
      Throws:
      UserAccessException - if user does not have adequate permission within the repository.
      FileNotFoundException - if database version not found
      IOException - if an IO error occurs
    • openDatabase

      ManagedBufferFileHandle openDatabase(String parentPath, String itemName, long checkoutId) throws IOException
      Open the current version for checkin of new version.
      Parameters:
      parentPath - parent folder path
      itemName - name of existing data file
      checkoutId - checkout ID
      Returns:
      remote buffer file for updateable read-only use
      Throws:
      UserAccessException - if user does not have adequate permission within the repository.
      FileNotFoundException - if database version not found
      IOException - if an IO error occurs
    • getVersions

      Version[] getVersions(String parentPath, String itemName) throws IOException
      Returns a list of all versions for the specified item.
      Parameters:
      parentPath - parent folder path
      itemName - name of item
      Returns:
      version list
      Throws:
      IOException - if an IO error occurs
    • deleteItem

      void deleteItem(String parentPath, String itemName, int version) throws IOException
      Delete the specified version of an item.
      Parameters:
      parentPath - parent folder path
      itemName - name of item
      version - oldest or latest version of item to be deleted, or -1 to delete the entire item. User must be Admin or owner of version to be deleted.
      Throws:
      IOException - if an IO error occurs
    • moveFolder

      void moveFolder(String oldParentPath, String newParentPath, String oldFolderName, String newFolderName) throws InvalidNameException, IOException
      Move an entire folder
      Parameters:
      oldParentPath - current parent folder path
      newParentPath - new parent folder path
      oldFolderName - current folder name
      newFolderName - new folder name
      Throws:
      InvalidNameException - if newFolderName is invalid
      DuplicateFileException - if target folder already exists
      IOException - if an IO error occurs
    • moveItem

      void moveItem(String oldParentPath, String newParentPath, String oldItemName, String newItemName) throws InvalidNameException, IOException
      Move an item to another folder
      Parameters:
      oldParentPath - current parent folder path
      newParentPath - new parent folder path
      oldItemName - current item name
      newItemName - new item name
      Throws:
      InvalidNameException - if newItemName is invalid
      DuplicateFileException - if target item already exists
      IOException - if an IO error occurs
    • checkout

      ItemCheckoutStatus checkout(String parentPath, String itemName, CheckoutType checkoutType, String projectPath) throws IOException
      Perform a checkout on the specified item.
      Parameters:
      parentPath - parent folder path
      itemName - name of item
      checkoutType - checkout type. If exclusive or transient, checkout is only successful if no other checkouts exist. No new checkouts of item will be permitted while an exclusive/transient checkout is active.
      projectPath - path of user's project
      Returns:
      checkout data
      Throws:
      IOException - if an IO error occurs
    • terminateCheckout

      void terminateCheckout(String parentPath, String itemName, long checkoutId, boolean notify) throws IOException
      Terminate an existing item checkout.
      Parameters:
      parentPath - parent folder path
      itemName - name of item
      checkoutId - checkout ID
      notify - notify listeners of item status change
      Throws:
      IOException - if an IO error occurs
    • getCheckout

      ItemCheckoutStatus getCheckout(String parentPath, String itemName, long checkoutId) throws IOException
      Returns specific checkout data for an item.
      Parameters:
      parentPath - parent folder path
      itemName - name of item
      checkoutId - checkout ID
      Returns:
      checkout data
      Throws:
      IOException - if an IO error occurs
    • getCheckouts

      ItemCheckoutStatus[] getCheckouts(String parentPath, String itemName) throws IOException
      Get a list of all checkouts for an item.
      Parameters:
      parentPath - parent folder path
      itemName - name of item
      Returns:
      checkout data list
      Throws:
      FileNotFoundException - if folder item not found
      IOException - if an IO error occurs
    • folderExists

      boolean folderExists(String folderPath) throws IOException
      Returns true if the specified folder path exists.
      Parameters:
      folderPath - folder path
      Throws:
      IOException - if an IO error occurs
    • fileExists

      boolean fileExists(String parentPath, String itemName) throws IOException
      Returns true if the specified item exists.
      Parameters:
      parentPath - parent folder path
      itemName - name of item
      Throws:
      IOException - if an IO error occurs
    • getLength

      long getLength(String parentPath, String itemName) throws IOException
      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.
      Parameters:
      parentPath - parent folder path
      itemName - name of item
      Returns:
      file length
      Throws:
      IOException - if an IO error occurs
    • hasCheckouts

      boolean hasCheckouts(String parentPath, String itemName) throws IOException
      Returns true if the specified item has one or more checkouts.
      Parameters:
      parentPath - parent folder path
      itemName - name of item
      Throws:
      IOException
    • isCheckinActive

      boolean isCheckinActive(String parentPath, String itemName) throws IOException
      Returns true if the specified item has an active checkin.
      Parameters:
      parentPath - parent folder path
      itemName - name of item
      Throws:
      IOException
    • updateCheckoutVersion

      void updateCheckoutVersion(String parentPath, String itemName, long checkoutId, int checkoutVersion) throws IOException
      Update checkout data for an item following an update of a local checkout file.
      Parameters:
      parentPath - parent folder path
      itemName - name of item
      checkoutId - checkout ID
      checkoutVersion - item version used for update
      Throws:
      IOException - if error occurs
    • getEvents

      RepositoryChangeEvent[] getEvents() throws IOException
      Get pending change events. Call will block until an event is available.
      Returns:
      array of events
      Throws:
      IOException - if error occurs.
    • close

      void close() throws IOException
      Notification to server that client is dropping handle.
      Throws:
      IOException - if error occurs