UNPKG

@sap/cds-dk

Version:

Command line client and development toolkit for the SAP Cloud Application Programming Model

48 lines (41 loc) 1.48 kB
// 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; } }