Class User2ContentHibernateRelationDao

java.lang.Object
com.atlassian.confluence.internal.relations.dao.hibernate.HibernateRelationDao<ConfluenceUser,ContentEntityObject>
com.atlassian.confluence.internal.relations.dao.hibernate.User2ContentHibernateRelationDao
All Implemented Interfaces:
RelationDao<ConfluenceUser,ContentEntityObject>

public class User2ContentHibernateRelationDao extends HibernateRelationDao<ConfluenceUser,ContentEntityObject>
Since:
5.9
  • Constructor Details

    • User2ContentHibernateRelationDao

      public User2ContentHibernateRelationDao(org.hibernate.SessionFactory sessionFactory, SchemaInformationService schemaInformationService)
  • Method Details

    • getRelationsCount

      public int getRelationsCount(ConfluenceUser source, ContentEntityObject target, RelationDescriptor<?,?> relationDescriptor)
      Description copied from interface: RelationDao
      Get total number of relations for given content, type and name.
      relationDescriptor - specifies relation metadata, such as type and name
      Returns:
      total number of relations for given entities, relation type and name.
      See Also:
    • getRelationEntity

      public @Nullable User2ContentRelationEntity getRelationEntity(ConfluenceUser source, ContentEntityObject target, RelationDescriptor<?,?> relationDescriptor)
      Description copied from interface: RelationDao
      Get relation for given content, type and name.
      relationDescriptor - specifies relation metadata, such as type and name
      Returns:
      RelationEntity or null if no relations found
    • getSources

      public @NonNull List<ConfluenceUser> getSources(RelationQuery<ContentEntityObject> request, int start, int limit)
      Description copied from interface: RelationDao
      Fetch all related sources for the entity. Fetching parameters (relation name, filtering etc.) is provided by request argument
      Returns:
      list of RelatableEntity
      See Also:
    • getTargets

      public @NonNull List<ContentEntityObject> getTargets(RelationQuery<ConfluenceUser> request, int start, int limit)
      Description copied from interface: RelationDao
      Fetch all related targets for the entity. Fetching parameters (relation name, filtering etc.) is provided by request argument
      Returns:
      list of RelatableEntity
      See Also:
    • getSourcesCount

      public int getSourcesCount(RelationQuery<ContentEntityObject> request)
      Description copied from interface: RelationDao
      Count of all related sources for the entity. Fetching parameters (relation name, filtering etc.) is provided by request argument
      Returns:
      total number of all sources
    • getTargetsCount

      public int getTargetsCount(RelationQuery<ConfluenceUser> request)
      Description copied from interface: RelationDao
      Count of all related targets for the entity. Fetching parameters (relation name, filtering etc.) is provided by request argument
      Returns:
      total number of all targets
    • removeAllRelations

      public int removeAllRelations(RelatableEntity relatableEntity)
      Description copied from interface: RelationDao
      This method removes all relations (across all names and types), where given entity participates.
      Returns:
      number of relations which were removed.
    • updateDraftPageLastModTime

      public int updateDraftPageLastModTime(ContentEntityObject content, Date lastModificationDate, Date lastModificationDateForDraft)
      This method update the last modification time for the content given in the parameter If a "touched" relation is newer than the draft last modification date, it will be updated
      Parameters:
      content - content to be updated
      lastModificationDate - last modification date value to be updated
      lastModificationDateForDraft - last modification date value for draft
      Returns:
      updated row count
    • updateTargetTypeForContents

      public int updateTargetTypeForContents(List<ContentEntityObject> contents, RelatableEntityTypeEnum targetType)
      This method update the target type for contents
      Parameters:
      contents - List of content whose targettype needs to be updated
      targetType - Target type to be updated
      Returns:
      updated row count
    • removeAllRelations

      public int removeAllRelations(Iterable<? extends RelatableEntity> relatableEntities)
      Description copied from interface: RelationDao
      This method removes all relations (across all names and types), where given entity participates.
      Returns:
      number of relations which were removed.
    • removeAllRelationsFromEntityWithName

      public int removeAllRelationsFromEntityWithName(String relationName, RelatableEntity relatableEntity)
      Description copied from interface: RelationDao
      This method remove all relations with the given name, where the given entity participates
      Returns:
      number of relations which were removed
    • removeAllRelationsFromCurrentAndHistoricalEntities

      public int removeAllRelationsFromCurrentAndHistoricalEntities(RelatableEntity relatableEntity)
      Description copied from interface: RelationDao
      This method removes all relations (across all names and types), where given entity participates. It also removes all relations from the historical versions of the given entity if the entity is the most current version of content
      Returns:
      number of relations which were removed.
    • removeAllRelationsFromCurrentAndHistoricalEntities

      public int removeAllRelationsFromCurrentAndHistoricalEntities(Iterable<? extends RelatableEntity> relatableEntities)
      Description copied from interface: RelationDao
      This method removes all relations (across all names and types), where given entity participates. It also removes all relations from the historical versions of the given entity if the entity is the most current version of content
      Returns:
      number of relations which were removed
    • getAllRelationIdsForContentInSpace

      public List<Long> getAllRelationIdsForContentInSpace(@NonNull String spaceKey, @NonNull Collection<ConfluenceEntityObject> exclusions, int start, int limit)
      This method returns ids of all content relation entities in space. It is used in export operations
      Parameters:
      spaceKey - space
      exclusions - list of exclusions
      start - start
      limit - limit
      Returns:
      list of all content relation entities in space
    • newRelationEntity

      protected User2ContentRelationEntity newRelationEntity(ConfluenceUser source, ContentEntityObject target)
      Specified by:
      newRelationEntity in class HibernateRelationDao<ConfluenceUser,ContentEntityObject>
    • constructRelationEntity

      protected RelationEntity<ConfluenceUser,ContentEntityObject> constructRelationEntity(RelationEntity<ConfluenceUser,ContentEntityObject> relationEntity, ConfluenceUser source, ContentEntityObject target, RelationDescriptor<?,?> relationDescriptor)
      Overrides:
      constructRelationEntity in class HibernateRelationDao<ConfluenceUser,ContentEntityObject>