Interface ContentHandler<T extends DomainObjectAdapter>

Type Parameters:
T - DomainObjectAdapter implementation class
All Superinterfaces:
ExtensionPoint
All Known Implementing Classes:
DataTypeArchiveContentHandler, DataTypeArchiveLinkContentHandler, DBContentHandler, DBWithUserDataContentHandler, FolderLinkContentHandler, LinkHandler, ProgramContentHandler, ProgramLinkContentHandler

public interface ContentHandler<T extends DomainObjectAdapter> extends ExtensionPoint
NOTE: ALL ContentHandler implementations 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.
  • Field Details

  • Method Details

    • createFile

      long createFile(FileSystem fs, FileSystem userfs, String path, String name, DomainObject domainObject, TaskMonitor monitor) throws 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:
      IOException - if an IO error occurs or an unsupported domainObject implementation is specified.
      InvalidNameException - if the specified name contains invalid characters
      CancelledException - if the user cancels
    • getImmutableObject

      T getImmutableObject(FolderItem item, Object consumer, int version, int minChangeVersion, TaskMonitor monitor) throws 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:
      IOException - if an IO or 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

      T getReadOnlyObject(FolderItem item, int version, boolean okToUpgrade, Object consumer, TaskMonitor monitor) throws 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:
      IOException - if an IO or 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

      T getDomainObject(FolderItem item, FileSystem userfs, long checkoutId, boolean okToUpgrade, boolean okToRecover, Object consumer, TaskMonitor monitor) throws 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:
      IOException - if an IO or 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, 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.
      IOException - if an IO or 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).
      Returns:
      true if private content type, else false
    • getContentType

      String getContentType()
      Returns a unique content-type identifier
      Returns:
      content type identifier for associated domain object(s).
    • getContentTypeDisplayString

      String getContentTypeDisplayString()
      A string that is meant to be presented to the user.
      Returns:
      user friendly content type for associated domain object(s).
    • getIcon

      Icon getIcon()
      Returns the Icon associated with this handlers content type.
      Returns:
      base icon to be used for a DomainFile with the associated content type.
    • getDefaultToolName

      String getDefaultToolName()
      Returns the name of the default tool/template that should be used to open this content type.
      Returns:
      associated default tool name for this content type
    • getDomainObjectClass

      Class<T> getDomainObjectClass()
      Returns domain object implementation class supported.
      Returns:
      implementation class for the associated DomainObjectAdapter implementation.
    • getLinkHandler

      default LinkHandler<?> getLinkHandler()
      If linking is supported return an instanceof the appropriate LinkHandler.
      Returns:
      corresponding link handler or null if not supported.