UNPKG

fixparser-no-logging

Version:
54 lines (48 loc) 1.36 kB
/* * fixparser * https://gitlab.com/logotype/fixparser.git * * Copyright 2021 Victor Norgren * Released under the MIT license */ import { ENUMS } from '../../spec/SpecEnums'; import Field from '../fields/Field'; import { EnumType } from './EnumType'; export interface ISpecEnums { Tag: string; Value: string; SymbolicName: string; Group?: string; Sort: string; Description: string; Added?: string; AddedEP?: string; Updated?: string; UpdatedEP?: string; Issue?: string; Deprecated?: string; DeprecatedEP?: string; Elaboration?: string; } export class Enums { public enums: ISpecEnums[] = ENUMS; public cacheMap: Map<string, ISpecEnums> = new Map<string, ISpecEnums>(); constructor() { this.enums.forEach((enumType: ISpecEnums) => { this.cacheMap.set(`${enumType.Tag}|${enumType.Value}`, enumType); }); } public getEnum(tag: string, value: any) { return this.cacheMap.get(`${tag}|${value}`); } public processEnum(field: Field) { const enumTypes = new EnumType(); const foundEnum: ISpecEnums | undefined = this.cacheMap.get( `${field.tag}|${field.value}`, ); if (foundEnum) { enumTypes.setEnumeration(foundEnum); field.setEnumeration(enumTypes); } } }