Class HibernateAttachmentDataDao

java.lang.Object
org.springframework.dao.support.DaoSupport
com.atlassian.confluence.core.persistence.hibernate.HibernateObjectDao
com.atlassian.confluence.pages.persistence.dao.hibernate.HibernateAttachmentDataDao
All Implemented Interfaces:
AttachmentDataDao, TransactionalAttachmentDataDao, org.springframework.beans.factory.InitializingBean

@Deprecated(forRemoval=true, since="8.8") public class HibernateAttachmentDataDao extends HibernateObjectDao implements TransactionalAttachmentDataDao
Deprecated, for removal: This API element is subject to removal in a future version.
since 8.8, no replacement
This class defines an AttachmentDataDao that stores Attachment data in a Hibernate-managed database.

As a result, it is transactional (can be rolled back), so it implements the TransactionalAttachmentDataDao interface.

  • Constructor Details

    • HibernateAttachmentDataDao

      public HibernateAttachmentDataDao()
      Deprecated, for removal: This API element is subject to removal in a future version.
  • Method Details

    • findAll

      public @NonNull List findAll()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: HibernateObjectDao
      Find all objects of the class provided by getPersistentClass()
      Overrides:
      findAll in class HibernateObjectDao
      Returns:
      a list of all objects of the appropriate class, or the empty list if no objects are found
    • findAllSorted

      public @NonNull List findAllSorted(String s)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Overrides:
      findAllSorted in class HibernateObjectDao
    • save

      public void save(com.atlassian.core.bean.EntityObject objectToSave)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: HibernateObjectDao
      Save an object. The object's last-modified time will be updated, and if the object is searchable it will be indexed.
      Overrides:
      save in class HibernateObjectDao
      Parameters:
      objectToSave - the object to save
    • getPersistentClass

      public Class getPersistentClass()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Specified by:
      getPersistentClass in class HibernateObjectDao
    • getAttachmentDataForAttachment

      protected AttachmentData getAttachmentDataForAttachment(Attachment attachment) throws AttachmentDataNotFoundException
      Deprecated, for removal: This API element is subject to removal in a future version.
      Retrieves the attachment data object for a given attachment.
      Parameters:
      attachment - the attachment to retrieve data for
      Returns:
      attachment data for the provided attachment
      Throws:
      AttachmentDataNotFoundException - if the attachment data is not found
      org.springframework.dao.IncorrectResultSizeDataAccessException - if the database contains more than one data object associated with the given attachment
    • getDataForAttachment

      public InputStream getDataForAttachment(Attachment attachment) throws AttachmentDataNotFoundException
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: AttachmentDataDao
      Grabs the AttachmentData object for an Attachment
      Specified by:
      getDataForAttachment in interface AttachmentDataDao
      Parameters:
      attachment - the Attachment representing the data
      Returns:
      an AttachmentData object
      Throws:
      AttachmentDataNotFoundException - if no data was found
    • removeDataForAttachment

      public void removeDataForAttachment(Attachment attachment, ContentEntityObject originalContent)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: AttachmentDataDao
      Removes all attachment data for the given attachment. Since Confluence 4.2 the contract of this method has been clarified. It now removes all versions of the given attachment.
      Specified by:
      removeDataForAttachment in interface AttachmentDataDao
      Parameters:
      attachment - the latest version of the attachment for which the data should be removed
      originalContent - the content the attachment belongs to
    • removeDataForAttachmentVersion

      public void removeDataForAttachmentVersion(Attachment attachment, ContentEntityObject originalContent)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: AttachmentDataDao
      Removes the attachment data for the given attachment version.
      Specified by:
      removeDataForAttachmentVersion in interface AttachmentDataDao
      Parameters:
      attachment - the version of the attachment for which the data should be removed
      originalContent - the content the attachment belongs to
    • removeDataForAttachmentVersion

      public void removeDataForAttachmentVersion(Attachment attachmentVersion, ContentEntityObject originalContent, AttachmentDataStreamType dataStreamType)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: AttachmentDataDao
      Removes the attachment data of the specific stream type for the given attachment version.
      Specified by:
      removeDataForAttachmentVersion in interface AttachmentDataDao
      Parameters:
      attachmentVersion - the version of the attachment for which the data should be removed
      originalContent - the content the attachment belongs to
      dataStreamType - the data stream type
    • moveDataForAttachmentVersion

      public void moveDataForAttachmentVersion(Attachment sourceAttachmentVersion, Attachment targetAttachmentVersion)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: AttachmentDataDao
      Moves the attachment data from one AbstractVersionedEntityObject.getVersion() to the other.

      This method will overwrite any existing data for the target attachment version.

      Specified by:
      moveDataForAttachmentVersion in interface AttachmentDataDao
      Parameters:
      sourceAttachmentVersion - the attachment
      See Also:
    • saveDataForAttachment

      public void saveDataForAttachment(Attachment attachment, InputStream data)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: AttachmentDataDao
      Saves data to the attachment data store
      Specified by:
      saveDataForAttachment in interface AttachmentDataDao
      Parameters:
      attachment - the Attachment the data belongs to
      data - the InputStream to be written
    • saveDataForAttachmentVersion

      public void saveDataForAttachmentVersion(Attachment attachment, Attachment previousVersion, InputStream data)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: AttachmentDataDao
      Saves data to the attachment data store, for an attachment that has been updated.

      This method assumes that the attachment has already been saved.

      Specified by:
      saveDataForAttachmentVersion in interface AttachmentDataDao
      Parameters:
      attachment - the new version of the attachment
      previousVersion - the previous version of the attachment
      data - the InputStream representing the data
    • replaceDataForAttachment

      public void replaceDataForAttachment(Attachment attachment, InputStream data)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: AttachmentDataDao
      Sets the data for attachment

      This method will overwrite any existing data for the attachment.

      Specified by:
      replaceDataForAttachment in interface AttachmentDataDao
      Parameters:
      attachment - Attachment the data belongs to
      data - the data to be saved
    • isAttachmentPresent

      public boolean isAttachmentPresent(Attachment attachment)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: AttachmentDataDao
      Check that an attachment exists
      Specified by:
      isAttachmentPresent in interface AttachmentDataDao
      Parameters:
      attachment - the Attachment to be checked
    • moveAttachment

      public void moveAttachment(Attachment attachment, Attachment oldAttachment, ContentEntityObject newContent)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: AttachmentDataDao
      Moves an attachment to a new file name or content object
      Specified by:
      moveAttachment in interface AttachmentDataDao
      Parameters:
      attachment - the Attachment to be moved
      oldAttachment - the original version of the attachment
      newContent - the new content the Attachment belongs to
    • prepareForMigrationTo

      public void prepareForMigrationTo()
      Deprecated, for removal: This API element is subject to removal in a future version.
      This implementation clears out the Attachment data table, so we have a clean base for migration. It circumvents hibernate, so should only be called when nobody else can see the attachment data.
      Specified by:
      prepareForMigrationTo in interface AttachmentDataDao
    • afterMigrationFrom

      public void afterMigrationFrom()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Once a data migration has occurred, remove all records from the table, as they are no longer necessary, and we don't want foreign key violations to occur when removing Attachments. It circumvents hibernate, so should only be called when nobody else can see the data.
      Specified by:
      afterMigrationFrom in interface AttachmentDataDao
    • getStorageType

      public AttachmentDataStorageType getStorageType()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: AttachmentDataDao
      Returns the storage type.

      The client code should be storage agnostic in general. Thus this method should only be used in rare cases in order to hide operations which are known to be not implemented for the specific type.

      Specified by:
      getStorageType in interface AttachmentDataDao
      Returns:
      the storage type
    • getDataForAttachment

      public AttachmentDataStream getDataForAttachment(Attachment attachment, AttachmentDataStreamType dataStreamType) throws AttachmentDataNotFoundException
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: AttachmentDataDao
      Grabs the AttachmentData object for an Attachment
      Specified by:
      getDataForAttachment in interface AttachmentDataDao
      Parameters:
      attachment - the Attachment representing the data
      Returns:
      an AttachmentData object
      Throws:
      AttachmentDataNotFoundException - if no data was found
    • getDataForAttachment

      public AttachmentDataStream getDataForAttachment(Attachment attachment, AttachmentDataStreamType dataStreamType, Optional<RangeRequest> range) throws AttachmentDataNotFoundException
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: AttachmentDataDao
      Grabs the AttachmentData object for an Attachment
      Specified by:
      getDataForAttachment in interface AttachmentDataDao
      Parameters:
      attachment - the Attachment representing the data
      dataStreamType - the stream type of attachment
      range - the range of attachment data
      Returns:
      an AttachmentData object
      Throws:
      AttachmentDataNotFoundException - if no data was found
    • saveDataForAttachment

      public void saveDataForAttachment(Attachment attachment, AttachmentDataStream dataStream)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: AttachmentDataDao
      Saves data to the attachment data store
      Specified by:
      saveDataForAttachment in interface AttachmentDataDao
      Parameters:
      attachment - the Attachment the data belongs to
      dataStream - the data stream to be written
    • saveDataForAttachmentVersion

      public void saveDataForAttachmentVersion(Attachment attachment, Attachment previousVersion, AttachmentDataStream dataStream)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: AttachmentDataDao
      Saves data to the attachment data store, for an attachment that has been updated.

      This method assumes that the attachment has already been saved.

      Specified by:
      saveDataForAttachmentVersion in interface AttachmentDataDao
      Parameters:
      attachment - the new version of the attachment
      previousVersion - the previous version of the attachment
      dataStream - the InputStream representing the data
    • replaceDataForAttachment

      public void replaceDataForAttachment(Attachment attachment, AttachmentDataStream dataStream)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: AttachmentDataDao
      Sets the data for attachment

      This method will overwrite any existing data for the attachment.

      Specified by:
      replaceDataForAttachment in interface AttachmentDataDao
      Parameters:
      attachment - Attachment the data belongs to
      dataStream - the data to be saved