StringLiteralNode.ts 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import { injectable, inject } from 'inversify';
  2. import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
  3. import { TStatement } from '../../types/node/TStatement';
  4. import { IOptions } from '../../interfaces/options/IOptions';
  5. import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
  6. import { initializable } from '../../decorators/Initializable';
  7. import { AbstractCustomNode } from '../AbstractCustomNode';
  8. import { Nodes } from '../../node/Nodes';
  9. @injectable()
  10. export class StringLiteralNode extends AbstractCustomNode {
  11. /**
  12. * @type {string}
  13. */
  14. @initializable()
  15. private literalValue: string;
  16. /**
  17. * @param {IRandomGenerator} randomGenerator
  18. * @param {IOptions} options
  19. */
  20. constructor (
  21. @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
  22. @inject(ServiceIdentifiers.IOptions) options: IOptions
  23. ) {
  24. super(randomGenerator, options);
  25. }
  26. /**
  27. * @param {string} literalValue
  28. */
  29. public initialize (literalValue: string): void {
  30. this.literalValue = literalValue;
  31. }
  32. /**
  33. * @returns {TStatement[]}
  34. */
  35. protected getNodeStructure (): TStatement[] {
  36. const structure: TStatement = <any>Nodes.getLiteralNode(this.literalValue);
  37. return [structure];
  38. }
  39. }