Interface ContentHandler

  • All Superinterfaces:
    ExtensionPoint
    All Known Implementing Classes:
    DataTypeArchiveContentHandler, DBContentHandler, ProgramContentHandler

    public interface ContentHandler
    extends ExtensionPoint
    NOTE: ALL ContentHandler CLASSES MUST END IN "ContentHandler". If not, the ClassSearcher will not find them. ContentHandler defines an application interface for converting between a specific domain object implementation and folder item storage. This interface also defines a method which provides an appropriate icon corresponding to the content.
    • Method Detail

      • createFile

        long createFile​(FileSystem fs,
                        FileSystem userfs,
                        java.lang.String path,
                        java.lang.String name,
                        DomainObject domainObject,
                        TaskMonitor monitor)
                 throws java.io.IOException,
                        InvalidNameException,
                        CancelledException
        Creates a new folder item within a specified file-system. If fs is versioned, the resulting item is marked as checked-out within the versioned file-system. The specified domainObj will become associated with the newly created database.
        Parameters:
        fs - the file system in which to create the folder item
        userfs - file system which contains associated user data
        path - the path of the folder item
        name - the name of the new folder item
        domainObject - the domain object to store in the newly created folder item
        monitor - the monitor that allows the user to cancel
        Returns:
        checkout ID for new item
        Throws:
        java.io.IOException - if an i/o error occurs
        InvalidNameException - if the specified name contains invalid characters
        CancelledException - if the user cancels
      • getImmutableObject

        DomainObjectAdapter getImmutableObject​(FolderItem item,
                                               java.lang.Object consumer,
                                               int version,
                                               int minChangeVersion,
                                               TaskMonitor monitor)
                                        throws java.io.IOException,
                                               CancelledException,
                                               VersionException
        Open a folder item for immutable use. If any changes are attempted on the returned object, an IllegalStateException state exception may be thrown.
        Parameters:
        item - stored folder item
        consumer - consumer of the returned object
        version - version of the stored folder item to be opened. DomainFile.DEFAULT_VERSION (-1) should be specified when not opening a specific file version.
        minChangeVersion - the minimum version which should be included in the change set for the returned object. A value of -1 indicates the default change set.
        monitor - the monitor that allows the user to cancel
        Returns:
        immutable domain object
        Throws:
        java.io.IOException - if a folder item access error occurs
        CancelledException - if operation is cancelled by user
        VersionException - if unable to handle file content due to version difference which could not be handled.
      • getReadOnlyObject

        DomainObjectAdapter getReadOnlyObject​(FolderItem item,
                                              int version,
                                              boolean okToUpgrade,
                                              java.lang.Object consumer,
                                              TaskMonitor monitor)
                                       throws java.io.IOException,
                                              VersionException,
                                              CancelledException
        Open a folder item for read-only use. While changes are permitted on the returned object, the original folder item may not be overwritten / updated.
        Parameters:
        item - stored folder item
        version - version of the stored folder item to be opened. DomainFile.DEFAULT_VERSION should be specified when not opening a specific file version.
        okToUpgrade - if true a version upgrade to the content will be done if necessary.
        consumer - consumer of the returned object
        monitor - the monitor that allows the user to cancel
        Returns:
        read-only domain object
        Throws:
        java.io.IOException - if a folder item access error occurs
        CancelledException - if operation is cancelled by user
        VersionException - if unable to handle file content due to version difference which could not be handled.
      • getDomainObject

        DomainObjectAdapter getDomainObject​(FolderItem item,
                                            FileSystem userfs,
                                            long checkoutId,
                                            boolean okToUpgrade,
                                            boolean okToRecover,
                                            java.lang.Object consumer,
                                            TaskMonitor monitor)
                                     throws java.io.IOException,
                                            CancelledException,
                                            VersionException
        Open a folder item for update. Changes made to the returned object may be saved to the original folder item.
        Parameters:
        item - stored folder item
        userfs - file system which contains associated user data
        checkoutId - an appropriate checout ID required to update the specified folder item.
        okToUpgrade - if true a version upgrade to the content will be done if necessary.
        okToRecover - if true an attempt to recover any unsaved changes resulting from a crash will be attempted.
        consumer - consumer of the returned object
        monitor - cancelable task monitor
        Returns:
        updateable domain object
        Throws:
        java.io.IOException - if a folder item access error occurs
        CancelledException - if operation is cancelled by user
        VersionException - if unable to handle file content due to version difference which could not be handled.
      • getChangeSet

        ChangeSet getChangeSet​(FolderItem versionedFolderItem,
                               int olderVersion,
                               int newerVersion)
                        throws VersionException,
                               java.io.IOException
        Returns the object change data which includes changes made to the specified olderVersion through to the specified newerVersion.
        Parameters:
        versionedFolderItem - versioned folder item
        olderVersion - the older version number
        newerVersion - the newer version number
        Returns:
        the set of changes that were made
        Throws:
        VersionException - if a database version change prevents reading of data.
        java.io.IOException - if a folder item access error occurs or change set was produced by newer version of software and can not be read
      • getMergeManager

        DomainObjectMergeManager getMergeManager​(DomainObject resultsObj,
                                                 DomainObject sourceObj,
                                                 DomainObject originalObj,
                                                 DomainObject latestObj)
        Get an instance of a suitable merge manager to be used during the merge of a Versioned object which has been modified by another user since it was last merged or checked-out.
        Parameters:
        resultsObj - object to which merge results should be written
        sourceObj - object which contains user's changes to be merged
        originalObj - object which corresponds to checked-out version state
        latestObj - object which corresponds to latest version with which the sourceObj must be merged.
        Returns:
        merge manager
      • isPrivateContentType

        boolean isPrivateContentType()
        Returns true if the content type is always private (i.e., can not be added to the versioned filesystem).
      • getContentType

        java.lang.String getContentType()
        Returns list of unique content-types supported. A minimum of one content-type will be returned. If more than one is returned, these are considered equivalent aliases.
      • getContentTypeDisplayString

        java.lang.String getContentTypeDisplayString()
        A string that is meant to be presented to the user.
      • getIcon

        javax.swing.Icon getIcon()
        Returns the Icon associated with this handlers content type.
      • getDefaultToolName

        java.lang.String getDefaultToolName()
        Returns the name of the default tool that should be used to open this content type
      • getDomainObjectClass

        java.lang.Class<? extends DomainObject> getDomainObjectClass()
        Returns domain object implementation class supported.
      • saveUserDataFile

        void saveUserDataFile​(DomainObject associatedDomainObj,
                              DBHandle userDbh,
                              FileSystem userfs,
                              TaskMonitor monitor)
                       throws CancelledException,
                              java.io.IOException
        Create user data file associated with existing content. This facilitates the lazy creation of the user data file.
        Parameters:
        associatedDomainObj - associated domain object corresponding to this content handler
        userDbh - user data handle
        userfs - private user data filesystem
        monitor - task monitor
        Throws:
        java.io.IOException - if an access error occurs
        CancelledException - if operation is cancelled by user
      • removeUserDataFile

        void removeUserDataFile​(FolderItem item,
                                FileSystem userFilesystem)
                         throws java.io.IOException
        Remove user data file associated with an existing folder item.
        Parameters:
        item - folder item
        userFilesystem -
        Throws:
        java.io.IOException - if an access error occurs