Skip to content

editorGlobalsSerializationHistory

Class: SerializationHistory ‹T

Takes care of creating and rolling back serialized snapshots.

Type parameters

T

Hierarchy

  • SerializationHistory

Index

Constructors

Properties

Methods

Constructors

constructor

+ new SerializationHistory(rollbackCallback: RollbackCallback‹T›, maximumHistory: number, serializer: SerializationOrchestrator‹›): SerializationHistory

Defined in src/history/SerializationHistory.ts:19

Parameters:

Name Type Default
rollbackCallback RollbackCallback‹T› null
maximumHistory number Config.get("interaction.maximumUndoHistory")
serializer SerializationOrchestrator‹› new SerializationOrchestrator()

Returns: SerializationHistory

Properties

Private currentState

currentState: number = -1

Defined in src/history/SerializationHistory.ts:15

The currently selected state (index on history)


Private history

history: Array‹object› = []

Defined in src/history/SerializationHistory.ts:12

An array containing all serialized instances


Private Readonly maximumHistoryLength

maximumHistoryLength: number

Defined in src/history/SerializationHistory.ts:17


Private Readonly rollbackCallback

rollbackCallback: RollbackCallback‹T›

Defined in src/history/SerializationHistory.ts:18


Private Readonly serializer

serializer: SerializationOrchestrator

Defined in src/history/SerializationHistory.ts:19

Methods

Private _getTargetState

_getTargetState(state: number, numberOfSteps: number, skipSkippableSteps: boolean): number

Defined in src/history/SerializationHistory.ts:182

Parameters:

Name Type Default
state number -
numberOfSteps number -
skipSkippableSteps boolean false

Returns: number

Index of the desired state or -1


clear

clear(): void

Defined in src/history/SerializationHistory.ts:151

Returns: void


deleteLast

deleteLast(numberToDelete: number): number

Defined in src/history/SerializationHistory.ts:143

Parameters:

Name Type Default Description
numberToDelete number 1 How many entries should be deleted from the end. Defaults to 1.

Returns: number

How many entries were actually deleted


getCurrentMetadata

getCurrentMetadata(): any

Defined in src/history/SerializationHistory.ts:170

Returns: any


getCurrentSnapshot

getCurrentSnapshot(returnDeserialized?: true): T

Defined in src/history/SerializationHistory.ts:160

Parameters:

Name Type
returnDeserialized? true

Returns: T

getCurrentSnapshot(returnDeserialized?: false): ISerializedObjectContainer

Defined in src/history/SerializationHistory.ts:161

Parameters:

Name Type
returnDeserialized? false

Returns: ISerializedObjectContainer


getHistoryData

getHistoryData(): object[]

Defined in src/history/SerializationHistory.ts:156

Returns: object[]


getHistoryLength

getHistoryLength(): number

Defined in src/history/SerializationHistory.ts:135

Returns: number


getSerializer

getSerializer(): SerializationOrchestrator‹›

Defined in src/history/SerializationHistory.ts:131

Returns: SerializationOrchestrator‹›


initializeWithSerialized

initializeWithSerialized(serializedData: ISerializedObjectContainer): void

Defined in src/history/SerializationHistory.ts:40

Clears and initializes the serialization history with the given serialized object and calls the rollback callback.

Parameters:

Name Type Description
serializedData ISerializedObjectContainer Object data in serialized form

Returns: void


rollback

rollback(numberOfSteps: number, skipSkippableSteps: boolean): boolean

Defined in src/history/SerializationHistory.ts:115

Rolls back a certain number of serialized states

Parameters:

Name Type Default Description
numberOfSteps number - positive numbers to go forward in state (redo), negative numbers for going backwards (undo)
skipSkippableSteps boolean false If true, steps that are marked as 'skippable' will be skipped.

Returns: boolean

Whether the rollback was successful i.e. enough serialized states exist for rollback


rollbackCurrent

rollbackCurrent(): boolean

Defined in src/history/SerializationHistory.ts:103

Deserializes the current state

Returns: boolean

Whether a current state exists


rollbackNext

rollbackNext(skip?: boolean): boolean

Defined in src/history/SerializationHistory.ts:95

Deserializes the next state

Parameters:

Name Type
skip? boolean

Returns: boolean

Whether a next state exists


rollbackPrevious

rollbackPrevious(skip?: boolean): boolean

Defined in src/history/SerializationHistory.ts:87

Deserializes the previous state

Parameters:

Name Type
skip? boolean

Returns: boolean

Whether a previous state exists


serialize

serialize(object: T): ISerializedObjectContainer

Defined in src/history/SerializationHistory.ts:79

Serialized the specified object

Parameters:

Name Type
object T

Returns: ISerializedObjectContainer


takeSnapshot

takeSnapshot(object: T, skippable?: boolean, metadata?: any): ISerializedObjectContainer

Defined in src/history/SerializationHistory.ts:56

Serializes the current state of the object and stores it in the history. If the current state (e.g. when rolling back multiple times) is not the latest state, all newer states are discarded the snapshot is taken as the newest one.

Parameters:

Name Type Description
object T Object to save
skippable? boolean If true, this state can be skipped when rolling back. Note that it will count against the maximum history length regardless of this parameter.
metadata? any An object, that is attached to the history entry

Returns: ISerializedObjectContainer

Object's serialized representation