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 1667x 1667x 1428x 1428x 239x 239x 239x 239x 239x 1x 1x 1x 1x 1x 239x 239x 239x 1x 1x 62x 62x 1x 1x     1x 1x 5x 5x 1x 1x 318x 318x 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";
  }
}