Interface IContentManager

All Known Implementing Classes:
ContentManagerDelegate, DisposableContentManager, FileSystemContentManager, MemoryContentManager

public interface IContentManager
An interface that can be used to perform basic CRUD operations for content.
Since:
9.3
Author:
m.mahabiersing
  • Method Details

    • create

      GUID create(InputStream stream, String name, String contentType, Long processId, String caseId, CustomContentProperties properties, IUserData user, String... roles)
      Add new content to the repository.
      Parameters:
      stream - The stream containing the data, may not be null.
      name - A name for the content, may not be null.
      contentType - The content type of the data, may be null if unknown.
      processId - The id of the process where this content is part of, may be null.
      caseId - The id of the case where this content is part of, may be null.
      properties - Custom properties that should be stored with the content, may not be null.
      user - The user who is considered the creator of the content, may not be null.
      roles - The list of authorized roles associated to this content, may not be null.
      Returns:
      Returns a GUID that uniquely identifies the content, never null.
      Throws:
      CreateContentException - If creation failed for any reason.
    • readBytes

      @CheckReturnValue(explanation="Spotbugs thinks that this method doesn\'t have a side effect. However, it can throw an exception.") int readBytes(GUID id, long position, byte[] buffer, int offset, int length, IUserData user)
      Reads up to length bytes of data from content into a byte array. The method blocks until some input is available. Although publicly available, this method primarily facilitates the implementation of ContentInputStream. For reading content from an IContentManager, usage of ContentInputStream is recommended over direct usage of this method. If the user is not authorized it will throw an exception.
      Parameters:
      id - The id of the content that should be read, may not be null.
      position - the start offset in the source content.
      buffer - The buffer into which the data is read, (may not be null.
      offset - The start offset in the destination array buffer.
      length - The maximum number of bytes read.
      user - The user that is reading the content, may not be null.
      Returns:
      The total number of bytes read into the buffer, or -1 if there is no more data because the end of the content has been reached.
      Throws:
      ReadContentException - If the data cannot be read for any reason.
      ContentAuthorizationException - If user is not authorized to access the content.
      See Also:
    • readMetadata

      IContentMetadata readMetadata(GUID id, IUserData user, boolean checkRoles)
      Reads only the meta data for a given content id.
      Parameters:
      id - The id of the content for which meta data is requested, may not be null.
      user - The user that is reading the content, may not be null.
      checkRoles - Flag indicating if the roles check should be done or not.
      Returns:
      Returns an IContentMetadataIContentMetadata object containing the requested meta data, never null.
      Throws:
      ReadContentException - If the meta data cannot be read for any reason.
      ContentAuthorizationException - If user is not authorized to access the content.
    • readRoles

      String[] readRoles(GUID id, IUserData user)
      Reads the required roles for a given content id.
      Parameters:
      id - The id of the content for which roles are requested, may not be null.
      user - The user that is reading the content, may not be null.
      Returns:
      Returns a list of required roles. Can be null.
      Throws:
      ReadContentException - If the roles cannot be read for any reason.
      ContentAuthorizationException - If user is not authorized to access the content.
    • update

      void update(GUID id, String[] newRoles, IUserData user)
      Update the existing content with new roles, but keep the existing data and metadata.
      Parameters:
      id - The id of the content which should be updated, may not be null.
      newRoles - The list of new roles. May not be null, may be empty.
      user - The user that is updating the content, may not be null.
      Throws:
      UpdateContentException - If the roles can not be updated for any reason.
      ContentAuthorizationException - If user is not authorized to access the content.
    • update

      void update(GUID id, InputStream stream, String name, String contentType, Long processId, String caseId, CustomContentProperties properties, IUserData user)
      Update existing content with new data and metadata.
      Parameters:
      id - The id of the content which should be updated, may not be null.
      stream - The InputStream containing the new data, may not be null.
      contentType - The content type of the new data, may be null.
      processId - The id of the case where this content is part of, may be null.
      caseId - The id of the case where this content is part of, may be null.
      properties - The new set of properties, this will completely overwrite the existing properties, may not be null.
      user - The user that is updating the content, may not be null.
      Throws:
      UpdateContentException - If the content can not be updated for any reason.
      ContentAuthorizationException - If user is not authorized to access the content.
    • update

      void update(GUID id, InputStream stream, String name, String contentType, IUserData user)
      Update existing content with new data, but keep the existing metadata.
      Parameters:
      id - The id of the content which should be updated, may not be null.
      stream - The InputStream containing the new data, may not be null.
      contentType - The content type of the new data, may be null.
      user - The user that is updating the content, may not be null.
      Throws:
      UpdateContentException - If the content can not be updated for any reason.
      ContentAuthorizationException - If user is not authorized to access the content.
    • update

      void update(GUID id, Long processId, String caseId, CustomContentProperties properties, IUserData user)
      Update existing content with new metadata, but keep the existing data.
      Parameters:
      id - The id of the content which should be updated, may not be null.
      processId - The id of the process where this content is part of, may be null.
      caseId - The id of the case where this content is part of, may be null.
      properties - The new set of properties, this will completely overwrite the existing properties, may not be null.
      user - The user that is updating the content, may not be null.
      Throws:
      UpdateContentException - If the content can not be updated for any reason.
      ContentAuthorizationException - If user is not authorized to access the content.
    • delete

      void delete(GUID id, IUserData user, boolean checkRoles)
      Delete content from the repository
      Parameters:
      id - The id of the content which should be deleted, may not be null.
      user - The user that is deleting the content, may not be null.
      checkRoles - Flag indicating if the roles check should be done or not.
      Throws:
      DeleteContentException - If the content can not be deleted for any reason.
      ContentAuthorizationException - If user is not authorized to access the content.
    • isAuthorized

      boolean isAuthorized(GUID id, IUserData user)
      This method checks if the user has roles on this content with the given id.
      Parameters:
      id - The id of the content, never null.
      user - The details of the user that wants to access the content, never null.
      Returns:
      A flag indicating if the user has roles on the document or not.
    • hasDisposableContent

      boolean hasDisposableContent()
      This method checks if the current content manager has any IDisposableContent contents.
      Returns:
      A flag indicating whether the content manager has disposable content objects.
    • getDisposableContent

      IDisposableContent getDisposableContent()
      This method returns the content manager's disposable content.