facsimile-parser.service.ts 844 B

123456789101112131415161718192021222324252627
  1. import { Injectable } from '@angular/core';
  2. import { parse } from '.';
  3. import { Surface, XMLElement, Zone } from '../../models/evt-models';
  4. import { SurfaceParser, ZoneParser } from './facsimile-parser';
  5. import { createParser } from './parser-models';
  6. @Injectable({
  7. providedIn: 'root',
  8. })
  9. export class FacsimileParserService {
  10. private zoneParser = createParser(ZoneParser, parse);
  11. private surfaceParser = createParser(SurfaceParser, parse);
  12. parseSurfaces(xml: XMLElement): Surface[] {
  13. if (!xml) { return []; }
  14. return Array.from(xml.querySelectorAll<XMLElement>('surface')).map(s => this.surfaceParser.parse(s));
  15. }
  16. parseZones(xml: XMLElement): Zone[] {
  17. if (!xml) { return []; }
  18. return Array.from(xml.querySelectorAll<XMLElement>('zone')).map(z => this.zoneParser.parse(z));
  19. }
  20. }