abstract class AbstractSync(val collectedSyncInfo: CollectedSyncInfo) : DataFetcher

Base class for sync

Parameters

collectedSyncInfo

Bean accessor

Constructors

Link copied to clipboard
constructor(collectedSyncInfo: CollectedSyncInfo)

Properties

Link copied to clipboard
Link copied to clipboard

Currently active dereplicator

Link copied to clipboard
private val logger: Logger?

Functions

Link copied to clipboard
abstract suspend fun createOutgoingIssue(imsProject: IMSProject, issue: Issue): IssueConversionInformation?

Create an issue on the IMS

Link copied to clipboard
private suspend fun doIncoming(imsProject: IMSProject)

Sync Incoming Part

Link copied to clipboard
open suspend fun doOutgoing(imsProject: IMSProject)

Sync Outgoing issues

Link copied to clipboard
abstract suspend fun fetchData(imsProjects: List<IMSProject>)

Execute the ata fetching for a given list of IMSProjects

Link copied to clipboard
private inline suspend fun <T, BT : TimelineItem> findFinalBlock(relevantTimeline: List<BT>, searchLambda: suspend (BT) -> T): List<BT>

Find the last consecutive list of blocks of the same searchLambda

Link copied to clipboard
private suspend fun findFinalTypeBlock(relevantTimeline: List<TimelineItem>): List<TimelineItem>

Find the last consecutive list of blocks of the same type

Link copied to clipboard
abstract suspend fun findTemplates(): Set<IMSTemplate>

Get the template used to create new issues

Link copied to clipboard
abstract suspend fun findUnsyncedIssues(imsProject: IMSProject): List<IncomingIssue>

Get the currently unsynced issue for an IMSProject

Link copied to clipboard
suspend fun gropiusUserList(users: List<User>): List<GropiusUser>

Map list of User to GropiusUser

Link copied to clipboard
private suspend fun integrateLabelToState(timelineItems: MutableList<TimelineItem>, rawTimelineItems: List<TimelineItem>, issue: Issue, imsProject: IMSProject)

Process an added label

Link copied to clipboard
private suspend fun integrateLabelToStateAddedLabel(timelineItems: MutableList<TimelineItem>, issue: Issue, imsProject: IMSProject, timelineItem: AddedLabelEvent, lastState: IssueState, mappedStates: List<IssueState>)

Process an added label

Link copied to clipboard
private suspend fun integrateLabelToStateFindCurrentState(issue: Issue, timelineItem: TimelineItem): Pair<Set<Label>, IssueState>

Find the state before the relevant titmeline item

Link copied to clipboard
private suspend fun integrateLabelToStateRemovedLabel(timelineItems: MutableList<TimelineItem>, issue: Issue, imsProject: IMSProject, timelineItem: RemovedLabelEvent, lastState: IssueState, mappedStates: List<IssueState>)

Process an removed label

Link copied to clipboard
abstract suspend fun isOutgoingAssignmentsEnabled(imsProject: IMSProject): Boolean

Check if Outgoing Sync of Assignments is Enabled

Link copied to clipboard
abstract suspend fun isOutgoingCommentsEnabled(imsProject: IMSProject): Boolean

Check if Outgoing Sync of Comments is Enabled

Link copied to clipboard
abstract suspend fun isOutgoingEnabled(imsProject: IMSProject): Boolean

Check if Outgoing Sync is Enabled

Link copied to clipboard
abstract suspend fun isOutgoingLabelsEnabled(imsProject: IMSProject): Boolean

Check if Outgoing Sync of Labels is Enabled

Link copied to clipboard
abstract suspend fun isOutgoingStatesEnabled(imsProject: IMSProject): Boolean

Check if Outgoing Sync of State Changes is Enabled

Link copied to clipboard
abstract suspend fun isOutgoingTemplatedFieldsEnabled(imsProject: IMSProject): Boolean

Check if Outgoing Sync of TemplatedFields is Enabled

Link copied to clipboard
abstract suspend fun isOutgoingTitleChangedEnabled(imsProject: IMSProject): Boolean

Check if Outgoing Sync of Title Changes is Enabled

Link copied to clipboard
open suspend fun labelStateMap(imsProject: IMSProject): Map<String, String>

Get the template used to create new issues

Link copied to clipboard
private suspend fun lookupState(id: String?): IssueState?

Lookup a state by its ID

Link copied to clipboard
private inline suspend fun <AddingItem : TimelineItem, RemovingItem : TimelineItem> shouldSyncType(imsProject: IMSProject, finalBlock: List<TimelineItem>, relevantTimeline: List<TimelineItem>, restoresDefaultState: Boolean, virtualIDs: Map<TimelineItem, String>): Boolean
private suspend fun shouldSyncType(imsProject: IMSProject, isAddingItem: suspend (TimelineItem) -> Boolean, isRemovingItem: suspend (TimelineItem) -> Boolean, finalBlock: List<TimelineItem>, relevantTimeline: List<TimelineItem>, restoresDefaultState: Boolean, virtualIDs: Map<TimelineItem, String> = mapOf()): Boolean

Check if TimelineItem should be synced or ignored

Link copied to clipboard
suspend fun sync()

Sync all data

Link copied to clipboard
open suspend fun syncAddedLabel(imsProject: IMSProject, issueId: String, label: Label, users: List<User>): TimelineItemConversionInformation?

Incorporate an added label

Link copied to clipboard
open suspend fun syncComment(imsProject: IMSProject, issueId: String, issueComment: IssueComment, users: List<User>): TimelineItemConversionInformation?

Incorporate a comment

Link copied to clipboard

Get the sync data which should be given to further methods

Link copied to clipboard
abstract suspend fun syncFallbackComment(imsProject: IMSProject, issueId: String, comment: String, original: TimelineItem?, users: List<User>): TimelineItemConversionInformation?

Incorporate a fallback comment

Link copied to clipboard
private suspend fun syncIncomingIssue(oldImsProject: IMSProject, incomingIssue: IncomingIssue, dereplicatorRequest: SimpleIssueDereplicatorRequest)

Sync one incoming issue

Link copied to clipboard
private suspend fun syncIncomingTimelineItem(imsProject: IMSProject, timelineItem: IncomingTimelineItem, issue: Issue, dereplicatorRequest: SimpleIssueDereplicatorRequest, nodesToSave: MutableList<Node>, savedNodeHandlers: MutableList<suspend (node: Node) -> Unit>)

Sync one incoming timeline item

Link copied to clipboard
private suspend fun syncOutgoingAssignments(timeline: List<TimelineItem>, imsProject: IMSProject, issueInfo: IssueConversionInformation)

Sync Outgoing Assignments

Link copied to clipboard
private suspend fun syncOutgoingComments(timeline: List<TimelineItem>, imsProject: IMSProject, issueInfo: IssueConversionInformation)

Sync Outgoing Comments

Link copied to clipboard
private suspend fun syncOutgoingLabels(timeline: List<TimelineItem>, imsProject: IMSProject, issueInfo: IssueConversionInformation)

Sync Outgoing Labels

Link copied to clipboard
private suspend fun syncOutgoingSingleAssignment(relevantTimeline: List<TimelineItem>, imsProject: IMSProject, issueInfo: IssueConversionInformation, assignment: Assignment, virtualIDs: Map<TimelineItem, String>)

Sync Outgoing Assignments

Link copied to clipboard
private suspend fun syncOutgoingSingleAssignmentBlock(relevantTimeline: List<TimelineItem>, imsProject: IMSProject, issueInfo: IssueConversionInformation, assignment: Assignment, virtualIDs: Map<TimelineItem, String>, finalBlock: List<TimelineItem>)

Sync Outgoing Assignments

Link copied to clipboard
private suspend fun syncOutgoingSingleLabel(relevantTimeline: List<TimelineItem>, imsProject: IMSProject, issueInfo: IssueConversionInformation, label: Label?, virtualIDs: Map<TimelineItem, String>)

Sync Outgoing Single Label

Link copied to clipboard
private suspend fun syncOutgoingStateChanges(timeline: List<TimelineItem>, imsProject: IMSProject, issueInfo: IssueConversionInformation)

Sync Outgoing State Changes

Link copied to clipboard
private suspend fun syncOutgoingTemplatedFields(timeline: List<TimelineItem>, imsProject: IMSProject, issueInfo: IssueConversionInformation)

Sync Outgoing TemplatedFields Changes

Link copied to clipboard
private suspend fun syncOutgoingTitleChanges(timeline: List<TimelineItem>, imsProject: IMSProject, issueInfo: IssueConversionInformation)

Sync Outgoing Title Changes

Link copied to clipboard
open suspend fun syncRemovedLabel(imsProject: IMSProject, issueId: String, label: Label, users: List<User>): TimelineItemConversionInformation?

Incorporate a removed label

Link copied to clipboard
abstract suspend fun syncSingleAssigned(imsProject: IMSProject, issueId: String, assignment: Assignment, users: List<User>): TimelineItemConversionInformation?

Incorporate an added assignment

Link copied to clipboard
abstract suspend fun syncSingleUnassigned(imsProject: IMSProject, issueId: String, assignment: Assignment, users: List<User>): TimelineItemConversionInformation?

Incorporate a removed assignment

Link copied to clipboard
abstract suspend fun syncStateChange(imsProject: IMSProject, issueId: String, newState: IssueState, users: List<User>): TimelineItemConversionInformation?

Incorporate a state change

Link copied to clipboard
open suspend fun syncTemplatedField(imsProject: IMSProject, issueId: String, fieldChangedEvent: TemplatedFieldChangedEvent, users: List<User>): TimelineItemConversionInformation?

Incorporate a templated field change

Link copied to clipboard
open suspend fun syncTitleChange(imsProject: IMSProject, issueId: String, newTitle: String, users: List<User>): TimelineItemConversionInformation?

Incorporate a title change