@golemio/parkings
Version:
Golemio Parkings Module
23 lines • 1.13 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
const MaxChargeInteractionsRule_1 = require("./MaxChargeInteractionsRule");
const MaxPriceRule_1 = require("./MaxPriceRule");
const RuleEnum_1 = require("./RuleEnum");
const ZeroMaxParkingTime_1 = require("./ZeroMaxParkingTime");
class RuleFactory {
constructor() {
this.instances = new Map();
this.instances.set(RuleEnum_1.RuleEnum.MaxChargeIterationsRule, new MaxChargeInteractionsRule_1.MaxChargeIterationsRule());
this.instances.set(RuleEnum_1.RuleEnum.MaxPriceRule, new MaxPriceRule_1.MaxPriceRule());
this.instances.set(RuleEnum_1.RuleEnum.ZeroMaxParkingTime, new ZeroMaxParkingTime_1.ZeroMaxParkingTime());
}
get(ruleType) {
if (!this.instances.has(ruleType)) {
throw new golemio_errors_1.GeneralError(`Unable to find rule: '${ruleType.toString()}'.`, RuleFactory.name);
}
return this.instances.get(ruleType);
}
}
exports.default = RuleFactory;
//# sourceMappingURL=RuleFactory.js.map