@p2olab/pimad-core
Version:
PiMAd (Process-industry-Modular-Automation-description) High level access to automation of modular plants.
79 lines (78 loc) • 2.34 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.SemanticVersionVendor = exports.BasicSemanticVersionFactory = exports.BasicSemanticVersion = void 0;
const Utils_1 = require("../Utils");
class ASemanticVersion {
constructor() {
this.major = -1;
this.minor = -1;
this.patch = -1;
this.initialized = false;
}
compatibility(semver) {
if (this.equals(semver)) {
return true;
}
if (this.major != semver.getMajor()) {
return false;
}
else {
if (this.minor < semver.getMinor()) {
return false;
}
else if (this.minor == semver.getMinor()) {
return this.patch > semver.getPatch() || this.patch == semver.getPatch();
}
else {
return true;
}
}
}
equals(semver) {
return this.major == semver.getMajor() && this.minor == semver.getMinor() && this.patch == semver.getPatch();
}
getMajor() {
return this.major;
}
getMinor() {
return this.minor;
}
getPatch() {
return this.patch;
}
initialize(major, minor, patch) {
if (major < 0 || minor < 0 || patch < 0 || this.initialized) {
return false;
}
else {
this.major = major;
this.minor = minor;
this.patch = patch;
this.initialized = true;
return true;
}
}
}
class ASemanticVersionFactory {
}
class BasicSemanticVersion extends ASemanticVersion {
}
exports.BasicSemanticVersion = BasicSemanticVersion;
class BasicSemanticVersionFactory extends ASemanticVersionFactory {
create() {
const semver = new BasicSemanticVersion();
Utils_1.logger.debug(this.constructor.name + ' creates a ' + semver.constructor.name);
return semver;
}
}
exports.BasicSemanticVersionFactory = BasicSemanticVersionFactory;
class SemanticVersionVendor {
constructor() {
this.basicSemanticVersionFactory = new BasicSemanticVersionFactory();
}
// TODO > Refactoring! buy() + Enum
buyBasicSemanticVersion() {
return this.basicSemanticVersionFactory.create();
}
}
exports.SemanticVersionVendor = SemanticVersionVendor;