@eclipse-emfcloud/model-manager
Version:
Command-based model editing with undo/redo.
39 lines • 1.87 kB
TypeScript
import { ChangeSubscription, CoreCommandStack, CoreModelManager } from '../core';
import { WorkingCopyManager } from './core-command-stack-impl';
export declare class CoreModelManagerImpl<K> implements CoreModelManager<K> {
/** Model storage. */
private readonly _modelStore;
/** A pointer to the commandStack for editing the models. */
private readonly _commandStack;
private _subscriptions;
private _allSubscriptions;
constructor(commandStackFactory?: (workingCopyManager: WorkingCopyManager<K>) => CoreCommandStack<K>);
/**
* The callback provided to the CoreCommandStackImpl to be able to notify
* subscribers of any command executed (execute, executeAndAppend, undo, redo )
*
* @param deltas the command result sent by 'execute, executeAndAppend, undo or redo' done in CoreCommandStackImpl
*/
private changeOnCommandStack;
getModelId(model: object): K | undefined;
getModel<M extends object = object>(modelId: K): M | undefined;
setModel(modelId: K, model: object): void;
getModelIds(): K[];
removeModel<M extends object = object>(modelId: K): M | undefined;
getCommandStack(): CoreCommandStack<K>;
private addSubscription;
private addAllSubscription;
private deleteSubscription;
private deleteAllSubscription;
subscribe<M extends object = object>(modelId?: K): ChangeSubscription<K, M>;
/**
* Obtain an iterable over all subscriptions pertaining to the given
* model ID.
*
* @param modelId a model ID for which to get subscriptions
* @returns an iterator over all subscriptions specific to the `modelId` (if any)
* followed by the general subscriptions
*/
protected subscriptions<M extends object = object>(modelId: K): Iterable<ChangeSubscription<K, M>>;
}
//# sourceMappingURL=core-model-manager-impl.d.ts.map