UNPKG

igniteui-webcomponents-datasources

Version:

Reference custom data providers for the Ignite UI Web Components data source.

69 lines (68 loc) 2.35 kB
import { Entity } from "./Entity"; import { EntitySet } from "./EntitySet"; import { XName } from "igniteui-webcomponents-core"; var Schema = /** @class */ /*@__PURE__*/ (function () { function Schema(namespace, entityTypeElements, entitySetElements) { this._entities = null; this._entitySets = null; this._namespace = null; this.namespace = namespace; this.loadEntities(entityTypeElements); this.loadEntitySets(entitySetElements); } Object.defineProperty(Schema.prototype, "entities", { get: function () { if (null == this._entities) { this._entities = new Map(); } return this._entities; }, enumerable: false, configurable: true }); Object.defineProperty(Schema.prototype, "entitySets", { get: function () { if (null == this._entitySets) { this._entitySets = new Map(); } return this._entitySets; }, enumerable: false, configurable: true }); Object.defineProperty(Schema.prototype, "namespace", { get: function () { return this._namespace; }, set: function (value) { this._namespace = value; }, enumerable: false, configurable: true }); Schema.prototype.loadEntities = function (entityTypeElements) { var list = entityTypeElements; var elementCount = list.length; var name = XName.get("Name", ""); for (var i = 0; i < elementCount; i++) { var node = list[i]; var entity = new Entity(node.attribute(name).value, node); this.entities.set(entity.name, entity); } ; }; Schema.prototype.loadEntitySets = function (entitySetElements) { var list = entitySetElements; var elementCount = list.length; var nameAttr = XName.get("Name", ""); var entityType = XName.get("EntityType", ""); for (var i = 0; i < elementCount; i++) { var node = list[i]; var entitySet = new EntitySet(node.attribute(nameAttr).value, node.attribute(entityType).value); this.entitySets.set(entitySet.name, entitySet); } ; }; return Schema; }()); export { Schema };