editor › Globals › SerializationHistory
Class: SerializationHistory ‹T›
Takes care of creating and rolling back serialized snapshots.
Type parameters
▪ T
Hierarchy
- SerializationHistory
Index
Constructors
Properties
Methods
- _getTargetState
- clear
- deleteLast
- getCurrentMetadata
- getCurrentSnapshot
- getHistoryData
- getHistoryLength
- getSerializer
- initializeWithSerialized
- rollback
- rollbackCurrent
- rollbackNext
- rollbackPrevious
- serialize
- takeSnapshot
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