Interface RepositoryHandle

  • All Known Subinterfaces:
    RemoteRepositoryHandle

    public interface RepositoryHandle
    RepositoryHandle provides access to a repository.
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      boolean anonymousAccessAllowed()  
      ItemCheckoutStatus checkout​(java.lang.String parentPath, java.lang.String itemName, CheckoutType checkoutType, java.lang.String projectPath)
      Perform a checkout on the specified item.
      void close()
      Notification to server that client is dropping handle.
      ManagedBufferFileHandle createDatabase​(java.lang.String parentPath, java.lang.String itemName, java.lang.String fileID, int bufferSize, java.lang.String contentType, java.lang.String projectPath)
      Create a new empty database item within the repository.
      void deleteItem​(java.lang.String parentPath, java.lang.String itemName, int version)
      Delete the specified version of an item.
      boolean fileExists​(java.lang.String parentPath, java.lang.String itemName)
      Returns true if the specified item exists.
      boolean folderExists​(java.lang.String folderPath)
      Returns true if the specified folder path exists.
      ItemCheckoutStatus getCheckout​(java.lang.String parentPath, java.lang.String itemName, long checkoutId)
      Returns specific checkout data for an item.
      ItemCheckoutStatus[] getCheckouts​(java.lang.String parentPath, java.lang.String itemName)
      Get a list of all checkouts for an item.
      RepositoryChangeEvent[] getEvents()
      Get pending change events.
      RepositoryItem getItem​(java.lang.String fileID)
      Returns the RepositoryItem with the given unique file ID
      RepositoryItem getItem​(java.lang.String parentPath, java.lang.String name)
      Returns the RepositoryItem in the given folder with the given name
      int getItemCount()
      Returns the number of folder items contained within this file-system.
      RepositoryItem[] getItemList​(java.lang.String folderPath)
      Get of all items found within the specified parent folder path.
      long getLength​(java.lang.String parentPath, java.lang.String itemName)
      Returns the length of this domain file.
      java.lang.String getName()
      Returns the name of this repository.
      java.lang.String[] getServerUserList()
      Convenience method for obtaining a list of all users known to the server.
      java.lang.String[] getSubfolderList​(java.lang.String folderPath)
      Get list of subfolders contained within the specified parent folder.
      User getUser()
      Returns user object associated with this handle.
      User[] getUserList()
      Returns a list of users authorized for this repository.
      Version[] getVersions​(java.lang.String parentPath, java.lang.String itemName)
      Returns a list of all versions for the specified item.
      boolean hasCheckouts​(java.lang.String parentPath, java.lang.String itemName)
      Returns true if the specified item has one or more checkouts.
      boolean isCheckinActive​(java.lang.String parentPath, java.lang.String itemName)
      Returns true if the specified item has an active checkin.
      void moveFolder​(java.lang.String oldParentPath, java.lang.String newParentPath, java.lang.String oldFolderName, java.lang.String newFolderName)
      Move an entire folder
      void moveItem​(java.lang.String oldParentPath, java.lang.String newParentPath, java.lang.String oldItemName, java.lang.String newItemName)
      Move an item to another folder
      ManagedBufferFileHandle openDatabase​(java.lang.String parentPath, java.lang.String itemName, int version, int minChangeDataVer)
      Open an existing version of a database buffer file for non-update read-only use.
      ManagedBufferFileHandle openDatabase​(java.lang.String parentPath, java.lang.String itemName, long checkoutId)
      Open the current version for checkin of new version.
      void setUserList​(User[] users, boolean anonymousAccessAllowed)
      Set the list of authorized users for this repository.
      void terminateCheckout​(java.lang.String parentPath, java.lang.String itemName, long checkoutId, boolean notify)
      Terminate an existing item checkout.
      void updateCheckoutVersion​(java.lang.String parentPath, java.lang.String itemName, long checkoutId, int checkoutVersion)
      Update checkout data for an item following an update of a local checkout file.
    • Field Detail

      • CLIENT_CHECK_PERIOD

        static final int CLIENT_CHECK_PERIOD
    • Method Detail

      • getName

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

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

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

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

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

        void setUserList​(User[] users,
                         boolean anonymousAccessAllowed)
                  throws java.io.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
        java.io.IOException - if an IO error occurs
      • getSubfolderList

        java.lang.String[] getSubfolderList​(java.lang.String folderPath)
                                     throws java.io.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.
        java.io.FileNotFoundException - if specified parent folder path not found
        java.io.IOException - if an IO error occurs
      • getItemCount

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

        RepositoryItem[] getItemList​(java.lang.String folderPath)
                              throws java.io.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
        java.io.FileNotFoundException - if parent folder not found
        java.io.IOException - if an IO error occurs
      • getItem

        RepositoryItem getItem​(java.lang.String parentPath,
                               java.lang.String name)
                        throws java.io.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:
        java.io.IOException - if an IO error occurs
      • getItem

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

        ManagedBufferFileHandle createDatabase​(java.lang.String parentPath,
                                               java.lang.String itemName,
                                               java.lang.String fileID,
                                               int bufferSize,
                                               java.lang.String contentType,
                                               java.lang.String projectPath)
                                        throws java.io.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
        java.io.IOException - if an IO error occurs
        InvalidNameException - if itemName or parentPath contains invalid characters
      • openDatabase

        ManagedBufferFileHandle openDatabase​(java.lang.String parentPath,
                                             java.lang.String itemName,
                                             int version,
                                             int minChangeDataVer)
                                      throws java.io.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.
        java.io.FileNotFoundException - if database version not found
        java.io.IOException - if an IO error occurs
      • openDatabase

        ManagedBufferFileHandle openDatabase​(java.lang.String parentPath,
                                             java.lang.String itemName,
                                             long checkoutId)
                                      throws java.io.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.
        java.io.FileNotFoundException - if database version not found
        java.io.IOException - if an IO error occurs
      • getVersions

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

        void deleteItem​(java.lang.String parentPath,
                        java.lang.String itemName,
                        int version)
                 throws java.io.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:
        java.io.IOException - if an IO error occurs
      • moveFolder

        void moveFolder​(java.lang.String oldParentPath,
                        java.lang.String newParentPath,
                        java.lang.String oldFolderName,
                        java.lang.String newFolderName)
                 throws InvalidNameException,
                        java.io.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
        java.io.IOException - if an IO error occurs
      • moveItem

        void moveItem​(java.lang.String oldParentPath,
                      java.lang.String newParentPath,
                      java.lang.String oldItemName,
                      java.lang.String newItemName)
               throws InvalidNameException,
                      java.io.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
        java.io.IOException - if an IO error occurs
      • checkout

        ItemCheckoutStatus checkout​(java.lang.String parentPath,
                                    java.lang.String itemName,
                                    CheckoutType checkoutType,
                                    java.lang.String projectPath)
                             throws java.io.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:
        java.io.IOException - if an IO error occurs
      • terminateCheckout

        void terminateCheckout​(java.lang.String parentPath,
                               java.lang.String itemName,
                               long checkoutId,
                               boolean notify)
                        throws java.io.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:
        java.io.IOException - if an IO error occurs
      • getCheckout

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

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

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

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

        long getLength​(java.lang.String parentPath,
                       java.lang.String itemName)
                throws java.io.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:
        java.io.IOException - if an IO error occurs
      • hasCheckouts

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

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

        void updateCheckoutVersion​(java.lang.String parentPath,
                                   java.lang.String itemName,
                                   long checkoutId,
                                   int checkoutVersion)
                            throws java.io.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:
        java.io.IOException - if error occurs
      • getEvents

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

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