UNPKG

hazelcast-client

Version:

Hazelcast - open source In-Memory Data Grid - client for NodeJS

41 lines 1.93 kB
"use strict"; var ClassDefinition_1 = require("./ClassDefinition"); var ClassDefinitionContext = (function () { function ClassDefinitionContext(factoryId, portableVersion) { this.factoryId = factoryId; this.classDefs = {}; } ClassDefinitionContext.encodeVersionedClassId = function (classId, version) { return classId + 'v' + version; }; ClassDefinitionContext.decodeVersionedClassId = function (encoded) { var re = /(\d+)v(\d+)/; var extracted = re.exec(encoded); return [Number.parseInt(extracted[1]), Number.parseInt(extracted[2])]; }; ClassDefinitionContext.prototype.lookup = function (classId, version) { var encoded = ClassDefinitionContext.encodeVersionedClassId(classId, version); return this.classDefs[encoded]; }; ClassDefinitionContext.prototype.register = function (classDefinition) { if (classDefinition === null) { return null; } if (classDefinition.getFactoryId() !== this.factoryId) { throw new RangeError("This factory's number is " + this.factoryId + ". \n Intended factory id is " + classDefinition.getFactoryId()); } var cdKey = ClassDefinitionContext.encodeVersionedClassId(classDefinition.getClassId(), classDefinition.getVersion()); var current = this.classDefs[cdKey]; if (current == null) { this.classDefs[cdKey] = classDefinition; return classDefinition; } if (current instanceof ClassDefinition_1.ClassDefinition && !current.equals(classDefinition)) { throw new RangeError("Incompatible class definition with same class id: " + classDefinition.getClassId()); } return classDefinition; }; return ClassDefinitionContext; }()); exports.ClassDefinitionContext = ClassDefinitionContext; //# sourceMappingURL=ClassDefinitionContext.js.map