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 1704x 1704x 1474x 1474x 230x 230x 230x 230x 230x 1x 1x 1x 1x 1x 230x 230x 230x 1x 1x 61x 61x 1x 1x     1x 1x 4x 4x 1x 1x 300x 300x 1x 1x 4x 4x 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";
  }
}