Package com.atlassian.jira.versioning
Interface EntityVersioningManager
- All Known Implementing Classes:
EntityVersioningManagerImpl,EntityVersioningManagerWithStats,NoOpEntityVersioningManager
public interface EntityVersioningManager
- Since:
- v8.9
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final EntityVersionUsed for implementations not using the real source of versioning data to distinguish from a situation where no version was actually found. -
Method Summary
Modifier and TypeMethodDescriptionlongRemoves all entity version records (issues, comments, & worklogs) for entites marked as deleted and older thanduration.findEntityVersionsUpdatedInTheLast(IndexDirectoryFactory.Name indexName, Duration duration) Looks up all the entities whose version changed during the lastdurationamount of time.getCommentEntityVersion(long commentId) Return the comment version for the comment identified byissueId,Optional.empty()if there is no version orNO_OP_ENTITY_VERSIONan implementation not using a real data source is used.getCommentVersion(long commentId) Deprecated.getIssueEntityVersion(long issueId) Return the issue version for the issue identified byissueId,Optional.empty()if there is no version orNO_OP_ENTITY_VERSIONan implementation not using a real data source is used.getIssueVersion(long issueId) Deprecated.getLatestEntityUpdate(IndexDirectoryFactory.Name indexName) Looks up the Version & related info for the most recently modified entity version.getLocalVersions(Set<Long> entityIds, IndexDirectoryFactory.Name indexName) Returns the corresponding entity version from the specified local lucene index for each of the ids passed in withentityIdsin the form of a map of ids to versions.getRelatedCommentVersions(long parentIssueId) Return the comment versions for for all comments associated with the specifiedparentIssueId.getRelatedWorklogVersions(long parentIssueId) Return the worklog versions for for all worklogs associated with the specifiedparentIssueId.getWorklogEntityVersion(long worklogId) Return the worklog version for the worklog identified byissueId,Optional.empty()if there is no version orNO_OP_ENTITY_VERSIONan implementation not using a real data source is used.getWorklogVersion(long worklogId) Deprecated.voidincrementCommentVersion(long commentId, long parentIssueId) Increments the version number for the specified comment.voidincrementIssueVersion(long issueId) Increments the version number for the specified issue.voidincrementRelatedCommentVersions(long parentIssueId) Bumps the versions for all comments associated with the specifiedparentIssueId.voidincrementRelatedWorklogVersions(long parentIssueId) Bumps the versions for all worklogs associated with the specifiedparentIssueId.voidincrementWorklogVersion(long worklogId, long parentIssueId) Increments the version number for the specified worklog.voidmarkCommentDeletedAndIncrementVersion(long commentId) Marks the specified comment as deleted and bumps its version by 1.voidmarkIssueDeletedAndIncrementVersion(long issueId) Marks the specified issue and all its related comments and worklogs as deleted bumps their versions by 1.voidmarkWorklogDeletedAndIncrementVersion(long worklogId) Marks the specified worklog as deleted and bumps its version by 1.
-
Field Details
-
NO_OP_ENTITY_VERSION
Used for implementations not using the real source of versioning data to distinguish from a situation where no version was actually found.
-
-
Method Details
-
incrementIssueVersion
Increments the version number for the specified issue. If a version number doesn't exist, one is created.- Parameters:
issueId- identifier for the issue whose version should be bumped- Throws:
IncrementDeletedEntityVersionException- ifissueIdis related to an issue version which is marked as deleted
-
incrementCommentVersion
void incrementCommentVersion(long commentId, long parentIssueId) throws IncrementDeletedEntityVersionException Increments the version number for the specified comment. If a version number doesn't exist, one is created.- Parameters:
commentId- identifier for the comment whose version should be bumpedparentIssueId- identifier for theIssuethat the comment belongs to- Throws:
IncrementDeletedEntityVersionException- ifcommentIdis related to a deleted comment version which is marked as deleted
-
incrementWorklogVersion
void incrementWorklogVersion(long worklogId, long parentIssueId) throws IncrementDeletedEntityVersionException Increments the version number for the specified worklog. If a version number doesn't exist, one is created.- Parameters:
worklogId- identifier for the worklog whose version should be bumpedparentIssueId- identifier for theIssuethat the worklog belongs to- Throws:
IncrementDeletedEntityVersionException- ifworklogIdis related to a deleted worklog version which is marked as deleted
-
incrementRelatedCommentVersions
void incrementRelatedCommentVersions(long parentIssueId) Bumps the versions for all comments associated with the specifiedparentIssueId. If there isn't a version record associated with a given comment, it will be added.- Parameters:
parentIssueId- identifier for the Issue whose comments will be bumped.
-
incrementRelatedWorklogVersions
void incrementRelatedWorklogVersions(long parentIssueId) Bumps the versions for all worklogs associated with the specifiedparentIssueId. If there isn't a version record associated with a given worklog, it will be added.- Parameters:
parentIssueId- identifier for the Issue whose worklogs will be bumped.
-
markIssueDeletedAndIncrementVersion
void markIssueDeletedAndIncrementVersion(long issueId) Marks the specified issue and all its related comments and worklogs as deleted bumps their versions by 1.- Parameters:
issueId- identifier for issue and all its related comments and worklogs to mark as deleted & whose version number to bump
-
markCommentDeletedAndIncrementVersion
void markCommentDeletedAndIncrementVersion(long commentId) Marks the specified comment as deleted and bumps its version by 1.- Parameters:
commentId- identifier for comment to mark as deleted & whose version number to bump
-
markWorklogDeletedAndIncrementVersion
void markWorklogDeletedAndIncrementVersion(long worklogId) Marks the specified worklog as deleted and bumps its version by 1.- Parameters:
worklogId- identifier for worklog to mark as deleted & whose version number to bump
-
getIssueVersion
Deprecated.Return the issue version for the issue identified byissueIdorOptional.empty()if there is no version.- Parameters:
issueId- identifies the issue whose current version will be retrieved- Returns:
- An optional containing the current version for the specified issue; an empty optional if no version is found.
-
getIssueEntityVersion
Return the issue version for the issue identified byissueId,Optional.empty()if there is no version orNO_OP_ENTITY_VERSIONan implementation not using a real data source is used.- Parameters:
issueId- identifies the issue whose current version will be retrieved- Returns:
- An optional containing the current version for the specified issue; an empty optional if no version is found;
NO_OP_ENTITY_VERSIONif an implementation not using a real data source is used.
-
getCommentVersion
Deprecated.Return the comment version for the comment identified bycommentIdorOptional.empty()if there is no version.- Parameters:
commentId- identifies the comment whose current version will be retrieved- Returns:
- An optional containing the current version for the specified comment; an empty optional if no version is found.
-
getCommentEntityVersion
Return the comment version for the comment identified byissueId,Optional.empty()if there is no version orNO_OP_ENTITY_VERSIONan implementation not using a real data source is used.- Parameters:
commentId- identifies the comment whose current version will be retrieved- Returns:
- An optional containing the current version for the specified comment; an empty optional if no version is found;
NO_OP_ENTITY_VERSIONif an implementation not using a real data source is used.
-
getWorklogVersion
Deprecated.Return the worklog version for the worklog identified byworklogIdorOptional.empty()if there is no version.- Parameters:
worklogId- identifies the worklog whose current version will be retrieved- Returns:
- An optional containing the current version for the specified worklog; an empty optional if no version is found.
-
getWorklogEntityVersion
Return the worklog version for the worklog identified byissueId,Optional.empty()if there is no version orNO_OP_ENTITY_VERSIONan implementation not using a real data source is used.- Parameters:
worklogId- identifies the worklog whose current version will be retrieved- Returns:
- An optional containing the current version for the specified worklog; an empty optional if no version is found;
NO_OP_ENTITY_VERSIONif an implementation not using a real data source is used.
-
getRelatedCommentVersions
Return the comment versions for for all comments associated with the specifiedparentIssueId.- Parameters:
parentIssueId- identifier for the Issue whose comments will be retrieved- Returns:
- A map from commentId to comment version; an empty map if no version is found (because no version exists/no comment exists/issue doesn't exist).
-
getRelatedWorklogVersions
Return the worklog versions for for all worklogs associated with the specifiedparentIssueId.- Parameters:
parentIssueId- identifier for the Issue whose worklogs will be retrieved- Returns:
- A map from worklogId to worklog version; an empty map if no version is found (because no version exists/no worklog exists/issue doesn't exist).
-
getLocalVersions
Map<Long,Optional<Long>> getLocalVersions(Set<Long> entityIds, IndexDirectoryFactory.Name indexName) throws IOException Returns the corresponding entity version from the specified local lucene index for each of the ids passed in withentityIdsin the form of a map of ids to versions. Which local index to retrieve the versions from is determined byindexName.- Parameters:
entityIds- Set of entity ids whose versions we want to look up in the local index referred to byindexNameindexName- Specifies which local Lucene index the versions should be retrieved from- Returns:
- A mapping of entity ids to their corresponding versions. The version-values are wrapped in
Optionals, with empty values for versions that were not found. - Throws:
IOException- if an I/O problem arises when searching the target lucene index
-
cleanAllDeletedEntityVersionsOlderThan
Removes all entity version records (issues, comments, & worklogs) for entites marked as deleted and older thanduration.- Parameters:
duration- threshold for deletion; entries marked as deleted and older than this will be removed.- Returns:
- the number of entity version entries that were removed
-
findEntityVersionsUpdatedInTheLast
List<EntityVersion> findEntityVersionsUpdatedInTheLast(IndexDirectoryFactory.Name indexName, Duration duration) Looks up all the entities whose version changed during the lastdurationamount of time. A data object containing the entity's id, version, whether or not it was deleted, etc. is returned for every entity-version modified since the duration.- Parameters:
indexName- which type of entity to get the updated versions forduration- how far back in time to look for entity versions that have been updated- Returns:
- data objects that bundle id, version, delete status, etc.
-
getLatestEntityUpdate
Looks up the Version & related info for the most recently modified entity version. Deleted entity versions are also considered as part of this calculation.- Parameters:
indexName- which type of entity to get the latest update for- Returns:
- An Optional wrapping the most recent update for any entity version or an empty Optional if no versions are present.
-