export class BinaryClassUpgrader {

    /**
     *
     * @type {number}
     * @protected
     */
    __startVersion = 0;
    /**
     *
     * @type {number}
     * @protected
     */
    __targetVersion = 0;

    /**
     *
     * @returns {number}
     */
    getStartVersion() {
        return this.__startVersion;
    }

    /**
     *
     * @returns {number}
     */
    getTargetVersion() {
        return this.__targetVersion;
    }

    /**
     *
     * @param {BinaryBuffer} source
     * @param {BinaryBuffer} target
     * @returns {void}
     */
    upgrade(source, target) {
        throw new Error('Not Implemented');
    }
}

/**
 * @readonly
 * @type {boolean}
 */
BinaryClassUpgrader.prototype.isBinaryClassUpgrader = true;
