123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- import { Delta } from "./delta";
- import { NodeCreation, NodeDeletion, EdgeUpdate, ExistingEdge } from "./delta";
- import { DeltaRegistry } from "./delta_registry";
- import { PrimitiveValue } from "./types";
- export interface GraphStateListener {
- createNode(ns: NodeState): void;
- createValue(vs: ValueState): void;
- deleteNode(id: PrimitiveValue): void;
- deleteValue(value: PrimitiveValue): void;
- createLinkToNode(sourceId: PrimitiveValue, label: string, targetId: PrimitiveValue): void;
- createLinkToValue(sourceId: PrimitiveValue, label: string, targetValue: PrimitiveValue): void;
- deleteLink(sourceId: PrimitiveValue, label: string): void;
- }
- export declare class FanOutListener implements GraphStateListener {
- readonly listeners: GraphStateListener[];
- constructor(listeners: GraphStateListener[]);
- createNode(ns: NodeState): void;
- createValue(vs: ValueState): void;
- deleteNode(id: PrimitiveValue): void;
- deleteValue(value: PrimitiveValue): void;
- createLinkToNode(sourceId: PrimitiveValue, label: string, targetId: PrimitiveValue): void;
- createLinkToValue(sourceId: PrimitiveValue, label: string, targetValue: PrimitiveValue): void;
- deleteLink(sourceId: PrimitiveValue, label: string): void;
- }
- export declare class DummyListener implements GraphStateListener {
- createNode(ns: NodeState): void;
- createValue(vs: ValueState): void;
- deleteNode(id: PrimitiveValue): void;
- deleteValue(value: PrimitiveValue): void;
- createLinkToNode(sourceId: PrimitiveValue, label: string, targetId: PrimitiveValue): void;
- createLinkToValue(sourceId: PrimitiveValue, label: string, targetValue: PrimitiveValue): void;
- deleteLink(sourceId: PrimitiveValue, label: string): void;
- }
- declare abstract class Common {
- readonly currentlyIncoming: Array<[string, EdgeUpdate, NodeState]>;
- readonly previouslyIncoming: Set<EdgeUpdate>;
- addIncoming(label: string, delta: EdgeUpdate, srcState: NodeState, listener: GraphStateListener): void;
- noLongerIncoming(overwritten: EdgeUpdate, overwriter: EdgeUpdate, listener: GraphStateListener): void;
- unAddIncoming(delta: EdgeUpdate, listener: GraphStateListener): void;
- incomingAgain(label: string, unOverwritten: EdgeUpdate, srcState: NodeState, unOverwriter: EdgeUpdate, listener: GraphStateListener): void;
- getIncomingEdges(): [string, INodeState][];
- abstract isNode(uuid: PrimitiveValue): boolean;
- abstract isValue(value: PrimitiveValue): boolean;
- abstract asTarget(): NodeCreation | PrimitiveValue;
- abstract createLinkTo(sourceId: PrimitiveValue, label: string, listener: GraphStateListener): void;
- abstract getDeltaForSetEdge(registry: DeltaRegistry, label: string, target: NodeCreation | PrimitiveValue, reads?: ExistingEdge[]): EdgeUpdate;
- abstract getDeltasForDelete(registry: DeltaRegistry): (EdgeUpdate | NodeDeletion)[];
- getReads(label: string): EdgeUpdate[];
- getIncomingEdgeDependenciesForDelete(registry: DeltaRegistry): [EdgeUpdate[], EdgeUpdate[]];
- }
- interface ICommon {
- getIncomingEdges(): [string, INodeState][];
- getDeltaForSetEdge(registry: DeltaRegistry, label: string, target: NodeCreation | PrimitiveValue, reads?: ExistingEdge[]): EdgeUpdate;
- getDeltasForDelete(registry: DeltaRegistry): (EdgeUpdate | NodeDeletion)[];
- asTarget(): NodeCreation | PrimitiveValue;
- isNode(uuid: PrimitiveValue): boolean;
- isValue(value: PrimitiveValue): boolean;
- }
- export interface IValueState extends ICommon {
- readonly type: "value";
- readonly value: PrimitiveValue;
- }
- export interface INodeState extends ICommon {
- readonly type: "node";
- readonly outgoingDeltas: ReadonlyMap<string, EdgeUpdate>;
- readonly outgoing: ReadonlyMap<string, IValueState | INodeState>;
- readonly creation: NodeCreation;
- readonly isDeleted: boolean;
- }
- declare class NodeState extends Common implements INodeState {
- readonly type = "node";
- readonly creation: NodeCreation;
- readonly outgoingDeltas: Map<string, EdgeUpdate>;
- readonly outgoingReads: Map<string, EdgeUpdate[]>;
- readonly outgoing: Map<string, IValueState | INodeState>;
- isDeleted: boolean;
- constructor(creation: NodeCreation);
- isNode(uuid: PrimitiveValue): boolean;
- isValue(value: PrimitiveValue): boolean;
- asTarget(): NodeCreation;
- createLinkTo(sourceId: PrimitiveValue, label: string, listener: GraphStateListener): void;
- getReads(label: string): EdgeUpdate[];
- getDeltaForSetEdge(registry: DeltaRegistry, label: string, target: NodeCreation | PrimitiveValue, reads?: readonly ExistingEdge[]): EdgeUpdate;
- getDeltasForDelete(registry: DeltaRegistry): (EdgeUpdate | NodeDeletion)[];
- }
- declare class ValueState extends Common implements IValueState {
- readonly type = "value";
- shown: boolean;
- readonly value: PrimitiveValue;
- constructor(value: PrimitiveValue);
- isNode(uuid: PrimitiveValue): boolean;
- isValue(value: PrimitiveValue): boolean;
- asTarget(): PrimitiveValue;
- createLinkTo(sourceId: PrimitiveValue, label: string, listener: GraphStateListener): void;
- addIncoming(label: string, delta: EdgeUpdate, srcState: NodeState, listener: GraphStateListener): void;
- noLongerIncoming(overwritten: EdgeUpdate, overwriter: EdgeUpdate, listener: GraphStateListener): void;
- unAddIncoming(delta: EdgeUpdate, listener: GraphStateListener): void;
- incomingAgain(label: string, unOverwritten: EdgeUpdate, srcState: NodeState, unOverwriter: EdgeUpdate, listener: GraphStateListener): void;
- private _showOrHide;
- getDeltaForSetEdge(registry: DeltaRegistry, label: string, target: NodeCreation | PrimitiveValue, reads?: ExistingEdge[]): EdgeUpdate;
- getDeltasForDelete(registry: DeltaRegistry): (EdgeUpdate | NodeDeletion)[];
- }
- export declare class GraphState {
- readonly nodes: Map<PrimitiveValue, NodeState>;
- readonly values: Map<PrimitiveValue, ValueState>;
- private deltasSinceCheckpoint;
- readonly deltas: Set<Delta>;
- pushState(): void;
- popState(): Array<Delta>;
- exec(delta: Delta, listener?: GraphStateListener): void;
- unexec(delta: Delta, listener?: GraphStateListener): void;
- private _getEdgeTargetState;
- private getValueState;
- private execNodeCreation;
- private unexecNodeCreation;
- private execNodeDeletion;
- private unexecNodeDeletion;
- private execEdgeUpdate;
- private unexecEdgeUpdate;
- }
- export {};
|