@sap/cds-dk
Version:
Command line client and development toolkit for the SAP Cloud Application Programming Model
48 lines (41 loc) • 1.48 kB
JavaScript
// Singleton class to hold the parser context
const MultiMap = require("./util/MultiMap");
module.exports = class ParserContext {
static #instance = null;
static getInstance(mockServerUc) {
if (!ParserContext.#instance) {
ParserContext.#instance = new ParserContext(mockServerUc);
}
return ParserContext.#instance;
}
static resetInstance() {
ParserContext.#instance = null;
}
constructor(mockServerUc) {
this.#initialize(mockServerUc);
}
#initialize(mockServerUc) {
this.unboundActions = {};
this.unboundFunctions = {};
this.entityTypes = [];
this.entityTypeOpenEntries = [];
this.complexTypeOpenEntries = [];
this.complexTypes = [];
this.enumTypes = [];
this.typeDefinitions = [];
this.entityContainerName = "";
this.entityToEntitySetMap = new MultiMap();
this.entityToSingletonMap = new MultiMap();
this.actionToActionImportMap = new MultiMap();
this.functionToFunctionImportMap = new MultiMap();
this.primarySchema = "";
this.schemaAliasToNamespace = {};
this.schemaToSchemaDataIndex = {};
this.schemaToPrimarySchema = {};
this.vocabNamespaceToAlias = {};
this.entityToBoundActions = {};
this.entityToBoundFunctions = {};
this.entityContainerAnnotations = {};
this.mockServerUc = mockServerUc;
}
}