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 1626x 1626x 1400x 1400x 226x 226x 226x 226x 226x 1x 1x 1x 1x 1x 226x 226x 226x 1x 1x 62x 62x 1x 1x     1x 1x 5x 5x 1x 1x 323x 323x 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";
  }
}