Skip to content

editor › Globals › SerializationHistory

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