igniteui-webcomponents-datasources
Version:
Reference custom data providers for the Ignite UI Web Components data source.
69 lines (68 loc) • 2.35 kB
JavaScript
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 };