import { ParserError } from './errors'; import type { RegisterCode } from './RegisterCode'; import { createReadRegister, ReadRegister, RegisterModel } from './registers'; export class ParserResult { readRegisters: Array; constructor() { this.readRegisters = []; } findRegister(aRegisterCode: RegisterCode): ReadRegister | undefined { return this.readRegisters.find(register => register.record_code === aRegisterCode); } getValueOf(aRegisterCode: RegisterCode): string | null { return this.findRegister(aRegisterCode)?.value_read || null; } addRegister(aRegister: ReadRegister) { this.readRegisters.push(aRegister); } add(registerModel: RegisterModel, value: string | null) { if (this.findRegister(registerModel.code)) { throw new ParserError(`Cannot add duplicated register ${registerModel.code}`); } this.addRegister(createReadRegister(registerModel, value)); } serialize() { return this.readRegisters; } }