UNPKG

step-sequence-generator

Version:

A step sequence generator for figure skating programs

52 lines (51 loc) 2.67 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.FilterCompositeMapFactory = void 0; const DefaultMovementFilterStrategy_1 = require("./strategies/DefaultMovementFilterStrategy"); const DifficultTurnsFilterStrategy_1 = require("./strategies/DifficultTurnsFilterStrategy"); const IsChangeLegFilterStrategy_1 = require("./strategies/IsChangeLegFilterStrategy"); const CompositeMovementFiltersFactory_1 = require("./CompositeMovementFiltersFactory"); const filter_stategy_name_enum_1 = require("../../shared/enums/filter-stategy-name.enum"); class FilterCompositeMapFactory { static createMap(filtersNames) { const map = new Map(); filtersNames.forEach((filterName) => { const strategy = this.orderMap.get(filterName); if (!strategy) throw new Error(`Filter ${filterName} not found`); map.set(filterName, strategy); }); return map; } static createDefaultComposite() { const defaultStrategy = this.createDefaultStrategy(); return CompositeMovementFiltersFactory_1.CompositeMovementFiltersFactory.create([defaultStrategy]); } static createThreeDifficultTurnsComposite() { const defaultStrategy = this.createDefaultStrategy(); const threeDifficultTurnsStrategy = this.createThreeDifficultTurnsStrategy(); return CompositeMovementFiltersFactory_1.CompositeMovementFiltersFactory.create([defaultStrategy, threeDifficultTurnsStrategy]); } static createIsChangeLegComposite() { const defaultStrategy = this.createDefaultStrategy(); const isChangeLegStrategy = this.createIsChangeLegStrategy(); return CompositeMovementFiltersFactory_1.CompositeMovementFiltersFactory.create([defaultStrategy, isChangeLegStrategy]); } static createDefaultStrategy() { return new DefaultMovementFilterStrategy_1.DefaultMovementFilterStrategy(); } static createThreeDifficultTurnsStrategy() { return new DifficultTurnsFilterStrategy_1.DifficultTurnsFilterStrategy(); } static createIsChangeLegStrategy() { return new IsChangeLegFilterStrategy_1.IsChangeLegFilterStrategy(); } } exports.FilterCompositeMapFactory = FilterCompositeMapFactory; _a = FilterCompositeMapFactory; FilterCompositeMapFactory.orderMap = new Map([ [filter_stategy_name_enum_1.FilterStrategyName.DEFAULT, _a.createDefaultComposite()], [filter_stategy_name_enum_1.FilterStrategyName.THREE_DIFFICULT_TURNS, _a.createThreeDifficultTurnsComposite()], [filter_stategy_name_enum_1.FilterStrategyName.IS_CHANGE_LEG, _a.createIsChangeLegComposite()], ]);