All files / src/abap/types/basic void_type.ts

91.66% Statements 44/48
100% Branches 8/8
75% Functions 6/8
91.66% Lines 44/48

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 481x 1x 1x 1x 1x 1x 1631x 1631x 1403x 1403x 228x 228x 228x 228x 228x 1x 1x 1x 1x 1x 228x 228x 228x 1x 1x 62x 62x 1x 1x     1x 1x 5x 5x 1x 1x 432x 432x 1x 1x 5x 5x 1x 1x     1x
import {AbstractType} from "./_abstract_type";
 
export class VoidType extends AbstractType {
  private static readonly singletons = new Map<string, VoidType>();
 
  public static get(voided: string | undefined, qualifiedName?: string): VoidType {
    const key = JSON.stringify({voided, qualifiedName});
    if (this.singletons.has(key)) {
      return this.singletons.get(key)!;
    }
 
    const ret = new VoidType(voided, qualifiedName);
    this.singletons.set(key, ret);
    return ret;
  }
 
  // this contains the name of the type that was the original reason for the void
  private readonly voided: string | undefined;
 
  private constructor(voided: string | undefined, qualifiedName?: string) {
    super({qualifiedName: qualifiedName});
    this.voided = voided;
  }
 
  public getVoided(): string | undefined {
    return this.voided;
  }
 
  public toABAP(): string {
    return this.voided || "VOIDEDtoABAP";
  }
 
  public toText() {
    return "Void(" + this.voided + ")";
  }
 
  public isGeneric() {
    return false;
  }
 
  public containsVoid() {
    return true;
  }
 
  public toCDS() {
    return "abap.TODO_VOID";
  }
}