private processVertex()

in server/src/jsonStore.ts [190:230]


	private processVertex(vertex: Vertex): void {
		this.vertices.all.set(vertex.id, vertex);
		switch(vertex.label) {
			case VertexLabels.metaData:
				this.version = vertex.version;
				break;
			case VertexLabels.source:
				this.workspaceRoot = URI.parse(vertex.workspaceRoot);
				break;
			case VertexLabels.project:
				this.vertices.projects.set(vertex.id, vertex);
				break;
			case VertexLabels.event:
				if (vertex.kind === EventKind.begin) {
					switch (vertex.scope) {
						case EventScope.project:
							this.activeProject = (vertex as ProjectEvent).data;
							break;
					}
				}
				break;
			case VertexLabels.document:
				this.doProcessDocument(vertex);
				break;
			case VertexLabels.moniker:
				if (vertex.kind !== MonikerKind.local) {
					const key = crypto.createHash('md5').update(JSON.stringify({ s: vertex.scheme, i: vertex.identifier }, undefined, 0)).digest('base64');
					(vertex as Moniker).key = key;
					let values = this.indices.monikers.get(key);
					if (values === undefined) {
						values = [];
						this.indices.monikers.set(key, values);
					}
					values.push(vertex as Moniker);
				}
				break;
			case VertexLabels.range:
				this.vertices.ranges.set(vertex.id, vertex);
				break;
		}
	}