hazelcast-client
Version:
Hazelcast - open source In-Memory Data Grid - client for NodeJS
107 lines • 5.78 kB
JavaScript
var ClassDefinition_1 = require("./ClassDefinition");
var Util = require("../../Util");
var ClassDefinitionWriter = (function () {
function ClassDefinitionWriter(portableContext, factoryId, classId, version) {
this.index = 0;
this.fieldDefinitions = {};
this.portableContext = portableContext;
this.buildingDefinition = new ClassDefinition_1.ClassDefinition(factoryId, classId, version);
}
ClassDefinitionWriter.prototype.addFieldByType = function (fieldName, fieldType, factoryId, classId) {
if (factoryId === void 0) { factoryId = 0; }
if (classId === void 0) { classId = 0; }
this.fieldDefinitions[fieldName] = new ClassDefinition_1.FieldDefinition(this.index, fieldName, fieldType, factoryId, classId);
this.index += 1;
};
ClassDefinitionWriter.prototype.writeInt = function (fieldName, value) {
this.addFieldByType(fieldName, ClassDefinition_1.FieldType.INT);
};
ClassDefinitionWriter.prototype.writeLong = function (fieldName, long) {
this.addFieldByType(fieldName, ClassDefinition_1.FieldType.LONG);
};
ClassDefinitionWriter.prototype.writeUTF = function (fieldName, str) {
this.addFieldByType(fieldName, ClassDefinition_1.FieldType.UTF);
};
ClassDefinitionWriter.prototype.writeBoolean = function (fieldName, value) {
this.addFieldByType(fieldName, ClassDefinition_1.FieldType.BOOLEAN);
};
ClassDefinitionWriter.prototype.writeByte = function (fieldName, value) {
this.addFieldByType(fieldName, ClassDefinition_1.FieldType.BYTE);
};
ClassDefinitionWriter.prototype.writeChar = function (fieldName, char) {
this.addFieldByType(fieldName, ClassDefinition_1.FieldType.CHAR);
};
ClassDefinitionWriter.prototype.writeDouble = function (fieldName, double) {
this.addFieldByType(fieldName, ClassDefinition_1.FieldType.DOUBLE);
};
ClassDefinitionWriter.prototype.writeFloat = function (fieldName, float) {
this.addFieldByType(fieldName, ClassDefinition_1.FieldType.FLOAT);
};
ClassDefinitionWriter.prototype.writeShort = function (fieldName, value) {
this.addFieldByType(fieldName, ClassDefinition_1.FieldType.SHORT);
};
ClassDefinitionWriter.prototype.writePortable = function (fieldName, portable) {
Util.assertNotNull(portable);
var nestedCD = this.portableContext.lookupOrRegisterClassDefinition(portable);
this.addFieldByType(fieldName, ClassDefinition_1.FieldType.PORTABLE, nestedCD.getFactoryId(), nestedCD.getClassId());
};
ClassDefinitionWriter.prototype.writeNullPortable = function (fieldName, factoryId, classId) {
var version = 0;
var nestedCD = this.portableContext.lookupClassDefinition(factoryId, classId, version);
if (nestedCD === null) {
throw new RangeError('Cannot write null portable without explicitly registering class definition!');
}
this.addFieldByType(fieldName, ClassDefinition_1.FieldType.PORTABLE, nestedCD.getFactoryId(), nestedCD.getClassId());
};
ClassDefinitionWriter.prototype.writeByteArray = function (fieldName, bytes) {
this.addFieldByType(fieldName, ClassDefinition_1.FieldType.BYTE_ARRAY);
};
ClassDefinitionWriter.prototype.writeBooleanArray = function (fieldName, booleans) {
this.addFieldByType(fieldName, ClassDefinition_1.FieldType.BOOLEAN_ARRAY);
};
ClassDefinitionWriter.prototype.writeCharArray = function (fieldName, chars) {
this.addFieldByType(fieldName, ClassDefinition_1.FieldType.CHAR_ARRAY);
};
ClassDefinitionWriter.prototype.writeIntArray = function (fieldName, ints) {
this.addFieldByType(fieldName, ClassDefinition_1.FieldType.INT_ARRAY);
};
ClassDefinitionWriter.prototype.writeLongArray = function (fieldName, longs) {
this.addFieldByType(fieldName, ClassDefinition_1.FieldType.LONG_ARRAY);
};
ClassDefinitionWriter.prototype.writeDoubleArray = function (fieldName, doubles) {
this.addFieldByType(fieldName, ClassDefinition_1.FieldType.DOUBLE_ARRAY);
};
ClassDefinitionWriter.prototype.writeFloatArray = function (fieldName, floats) {
this.addFieldByType(fieldName, ClassDefinition_1.FieldType.FLOAT_ARRAY);
};
ClassDefinitionWriter.prototype.writeShortArray = function (fieldName, shorts) {
this.addFieldByType(fieldName, ClassDefinition_1.FieldType.SHORT_ARRAY);
};
ClassDefinitionWriter.prototype.writeUTFArray = function (fieldName, val) {
this.addFieldByType(fieldName, ClassDefinition_1.FieldType.UTF_ARRAY);
};
ClassDefinitionWriter.prototype.writePortableArray = function (fieldName, portables) {
Util.assertNotNull(portables);
if (portables.length === 0) {
throw new RangeError('Cannot write empty array!');
}
var sample = portables[0];
var nestedCD = this.portableContext.lookupOrRegisterClassDefinition(sample);
this.addFieldByType(fieldName, ClassDefinition_1.FieldType.PORTABLE_ARRAY, nestedCD.getFactoryId(), nestedCD.getClassId());
};
ClassDefinitionWriter.prototype.end = function () {
for (var field in this.fieldDefinitions) {
this.buildingDefinition.addFieldDefinition(this.fieldDefinitions[field]);
}
};
ClassDefinitionWriter.prototype.getDefinition = function () {
return this.buildingDefinition;
};
ClassDefinitionWriter.prototype.registerAndGet = function () {
return this.portableContext.registerClassDefinition(this.buildingDefinition);
};
return ClassDefinitionWriter;
}());
exports.ClassDefinitionWriter = ClassDefinitionWriter;
//# sourceMappingURL=ClassDefinitionWriter.js.map
;