UNPKG

@qudtlib/core

Version:

Data model for QUDTLib

39 lines (38 loc) 1.38 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SystemOfUnits = void 0; const qudtNamespaces_js_1 = require("./qudtNamespaces.js"); class SystemOfUnits { constructor(iri, labels, abbreviation, baseUnitIris) { this.iri = iri; this.labels = labels; this.baseUnitIris = baseUnitIris || []; this.abbreviation = abbreviation; } equals(other) { return !!other && this.iri === other.iri; } hasBaseUnit(unit) { return this.baseUnitIris.includes(unit.iri); } allowsUnit(unit) { if (this.hasBaseUnit(unit)) { return true; } if (unit.unitOfSystemIris.includes(this.iri)) { return true; } if (unit.iri === SystemOfUnits.GM_iri) { // we use gram as the base unit, but SI uses KiloGM, so if we fail for GM, try KiloGM return this.baseUnitIris.includes(SystemOfUnits.KiloGM_iri); } if (unit.scalingOf && unit.prefix) { return this.allowsUnit(unit.scalingOf); } return false; } } exports.SystemOfUnits = SystemOfUnits; SystemOfUnits.GM_iri = qudtNamespaces_js_1.QudtNamespaces.unit.makeIriInNamespace("GM"); SystemOfUnits.KiloGM_iri = qudtNamespaces_js_1.QudtNamespaces.unit.makeIriInNamespace("KiloGM"); //# sourceMappingURL=systemOfUnits.js.map