UNPKG

baqend

Version:

Baqend JavaScript SDK

153 lines 9.46 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Attribute = exports.PersistentAttributeType = void 0; var binding_1 = require("../binding"); var PersistentAttributeType; (function (PersistentAttributeType) { PersistentAttributeType[PersistentAttributeType["BASIC"] = 0] = "BASIC"; PersistentAttributeType[PersistentAttributeType["ELEMENT_COLLECTION"] = 1] = "ELEMENT_COLLECTION"; PersistentAttributeType[PersistentAttributeType["EMBEDDED"] = 2] = "EMBEDDED"; PersistentAttributeType[PersistentAttributeType["MANY_TO_MANY"] = 3] = "MANY_TO_MANY"; PersistentAttributeType[PersistentAttributeType["MANY_TO_ONE"] = 4] = "MANY_TO_ONE"; PersistentAttributeType[PersistentAttributeType["ONE_TO_MANY"] = 5] = "ONE_TO_MANY"; PersistentAttributeType[PersistentAttributeType["ONE_TO_ONE"] = 6] = "ONE_TO_ONE"; })(PersistentAttributeType = exports.PersistentAttributeType || (exports.PersistentAttributeType = {})); var ATTACHED_STATE = Symbol('AttachedState'); var ATTACHED_SIZE = Symbol('AttachedSize'); var Attribute = /** @class */ (function () { /** * @param name The attribute name * @param isMetadata <code>true</code> if the attribute is an metadata attribute */ function Attribute(name, isMetadata) { this.isId = false; this.isVersion = false; this.isAcl = false; this.order = null; this.accessor = null; this.declaringType = null; this.metadata = null; this.isMetadata = !!isMetadata; this.name = name; } Attribute.attachState = function (obj, state, overwriteExistingValue) { if (overwriteExistingValue === void 0) { overwriteExistingValue = false; } if (state !== undefined && (overwriteExistingValue || obj[ATTACHED_STATE] === undefined)) { // ensure that this property is not visible on browsers which do not support Symbols Object.defineProperty(obj, ATTACHED_STATE, { value: state, configurable: true }); } return obj[ATTACHED_STATE]; }; /** * Attach and returns the the given size on the collection, in a meaner that it isn't enumerable * @param {Set<*>|Map<*,*>} collection The collection where the size is attached on * @param {number} size The size which should be attached, the previously attached size will be * returned if omitted * @return {number} The actual or new attached size whenever a new size was provided or not */ Attribute.attachSize = function (collection, size) { if (size !== undefined) { // ensure that this property is not visible on browsers which do not support Symbols Object.defineProperty(collection, ATTACHED_SIZE, { value: size, configurable: true }); } return collection[ATTACHED_SIZE] || -1; }; Object.defineProperty(Attribute.prototype, "persistentAttributeType", { /** * Returns the persistent attribute type */ get: function () { return -1; }, enumerable: false, configurable: true }); Object.defineProperty(Attribute.prototype, "isAssociation", { /** * @type boolean * @readonly */ get: function () { return this.persistentAttributeType > PersistentAttributeType.EMBEDDED; }, enumerable: false, configurable: true }); Object.defineProperty(Attribute.prototype, "isCollection", { get: function () { return this.persistentAttributeType === PersistentAttributeType.ELEMENT_COLLECTION; }, enumerable: false, configurable: true }); /** * @param declaringType The type that owns this attribute * @param order Position of the attribute * @return */ Attribute.prototype.init = function (declaringType, order) { if (this.declaringType) { throw new Error('The attribute is already initialized.'); } this.order = order; this.accessor = new binding_1.Accessor(); this.declaringType = declaringType; }; /** * @param entity * @return */ Attribute.prototype.getValue = function (entity) { return this.accessor.getValue(entity, this); }; /** * @param entity * @param value */ Attribute.prototype.setValue = function (entity, value) { this.accessor.setValue(entity, this, value); }; /** * Retrieves whether this type has specific metadata * * @param key * @return */ Attribute.prototype.hasMetadata = function (key) { return !!this.metadata && key in this.metadata; }; /** * Gets some metadata of this type * * @param key * @return */ Attribute.prototype.getMetadata = function (key) { if (!this.hasMetadata(key)) { return null; } return this.metadata[key] || null; }; /** * Converts this attribute field to json * @return The attribute description as json */ Attribute.prototype.toJSON = function () { return __assign({ name: this.name, order: this.order }, (this.metadata && { metadata: this.metadata })); }; Attribute.PersistentAttributeType = PersistentAttributeType; return Attribute; }()); exports.Attribute = Attribute; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXR0cmlidXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL21ldGFtb2RlbC9BdHRyaWJ1dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBQSxzQ0FBK0M7QUFLL0MsSUFBWSx1QkFRWDtBQVJELFdBQVksdUJBQXVCO0lBQ2pDLHVFQUFTLENBQUE7SUFDVCxpR0FBc0IsQ0FBQTtJQUN0Qiw2RUFBWSxDQUFBO0lBQ1oscUZBQWdCLENBQUE7SUFDaEIsbUZBQWUsQ0FBQTtJQUNmLG1GQUFlLENBQUE7SUFDZixpRkFBYyxDQUFBO0FBQ2hCLENBQUMsRUFSVyx1QkFBdUIsR0FBdkIsK0JBQXVCLEtBQXZCLCtCQUF1QixRQVFsQztBQUVELElBQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUMvQyxJQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7QUFFN0M7SUFrRkU7OztPQUdHO0lBQ0gsbUJBQXNCLElBQVksRUFBRSxVQUFvQjtRQWpGakQsU0FBSSxHQUFHLEtBQUssQ0FBQztRQUViLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFFbEIsVUFBSyxHQUFHLEtBQUssQ0FBQztRQUlkLFVBQUssR0FBa0IsSUFBSSxDQUFDO1FBRTVCLGFBQVEsR0FBb0IsSUFBSSxDQUFDO1FBRWpDLGtCQUFhLEdBQTRCLElBQUksQ0FBQztRQUU5QyxhQUFRLEdBQXNDLElBQUksQ0FBQztRQW9FeEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDO1FBQy9CLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFsRE0scUJBQVcsR0FBbEIsVUFBc0IsR0FBb0QsRUFBRSxLQUFTLEVBQ25GLHNCQUF1QztRQUF2Qyx1Q0FBQSxFQUFBLDhCQUF1QztRQUN2QyxJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksQ0FBQyxzQkFBc0IsSUFBSyxH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