UNPKG

arch-unit-ts

Version:
44 lines 1.63 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ClassesTransformer = void 0; const Assert_1 = require("../../error/domain/Assert"); class ClassesTransformer { description; predicateAggregator; constructor(description, predicateAggregator) { Assert_1.Assert.notNullOrUndefined('description', description); Assert_1.Assert.notNullOrUndefined('predicateAggregator', predicateAggregator); this.description = description; this.predicateAggregator = predicateAggregator; } addPredicate(predicate) { return new ClassesTransformer(this.description, this.predicateAggregator.add(predicate)); } switchModeAnd() { return new ClassesTransformer(this.description, this.predicateAggregator.thatANDs()); } switchModeOr() { return new ClassesTransformer(this.description, this.predicateAggregator.thatORs()); } transform(classes) { if (this.predicateAggregator.getPredicate().isEmpty()) { return classes; } return classes.filter(aClass => this.predicateAggregator .getPredicate() .map(predicate => predicate.test(aClass)) .orElseThrow()); } getDescription() { return this.description; } getFullDescription() { return (this.description + this.predicateAggregator .getPredicate() .map(predicate => ' ' + predicate.description) .orElse('')); } } exports.ClassesTransformer = ClassesTransformer; //# sourceMappingURL=ClassesTransformer.js.map