import { TextHandler } from "./handlers/text.handler"; import { DateRangeHandler } from "./handlers/daterage.handler"; import { DropDownHandler } from "./handlers/dropdown.handler"; import { NumberRangeHandler } from "./handlers/numberrage.handler"; import { SmartHelpHandler } from "./handlers/smarthelp.handler"; import { SearchHandler } from './handlers/search.handler'; import { DateHandler } from './handlers/date.handler'; import { CheckboxGroupHandler } from './handlers/checkboxgroup.handler'; import { DateRangeTimeHandler } from './handlers/dateragetime.handler'; import { RadioHandler } from './handlers/radio.handler'; import { MonthHandler } from './handlers/month.handler'; import { YearHandler } from './handlers/year.handler'; import { YearRangeHandler } from './handlers/yearrage.handler'; import { MonthRangeHandler } from './handlers/monthrage.handler'; import { InputGroupHandler } from "./handlers/inputgroup.handler"; import { NumberHandler } from "./handlers/number.handler"; import { FlexibleNumberHandler } from "./handlers/flexiblenumber.handler"; import { FlexibleDateHandler } from "./handlers/flexibledate.handler"; export class QueryConditionHandlerFactory { private static _instance: QueryConditionHandlerFactory = null; private queryConditionHandlerMapping = new Map(); private constructor(){ this.queryConditionHandlerMapping.set('text', new TextHandler()); this.queryConditionHandlerMapping.set('date', new DateRangeHandler()); this.queryConditionHandlerMapping.set('datetime', new DateRangeTimeHandler()); this.queryConditionHandlerMapping.set('monthRange', new MonthRangeHandler()); this.queryConditionHandlerMapping.set('yearRange', new YearRangeHandler()); this.queryConditionHandlerMapping.set('dropdown', new DropDownHandler()); this.queryConditionHandlerMapping.set('number', new NumberRangeHandler()); this.queryConditionHandlerMapping.set('help', new SmartHelpHandler()); this.queryConditionHandlerMapping.set('search', new SearchHandler()); this.queryConditionHandlerMapping.set('singleDate', new DateHandler()); this.queryConditionHandlerMapping.set('month', new MonthHandler()); this.queryConditionHandlerMapping.set('year', new YearHandler()); this.queryConditionHandlerMapping.set('checkboxgroup', new CheckboxGroupHandler()); this.queryConditionHandlerMapping.set('radio', new RadioHandler()); this.queryConditionHandlerMapping.set('input-group', new InputGroupHandler()); this.queryConditionHandlerMapping.set('singlenumber', new NumberHandler()); this.queryConditionHandlerMapping.set('flexibleNumber', new FlexibleNumberHandler()); this.queryConditionHandlerMapping.set('flexibleDate', new FlexibleDateHandler()); this.queryConditionHandlerMapping.set('bool-check', new CheckboxGroupHandler()); } public static getInstance(){ if(!QueryConditionHandlerFactory._instance){ QueryConditionHandlerFactory._instance = new QueryConditionHandlerFactory(); } return QueryConditionHandlerFactory._instance; } getHandler(controlType){ return this.queryConditionHandlerMapping.get(controlType); } }