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

95.91% Statements 47/49
100% Branches 13/13
87.5% Functions 7/8
95.91% Lines 47/49

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 48 491x 1x 1x 1x 1x 1x 1149x 1149x 1037x 1037x 112x 112x 112x 112x 112x 1x 1x 112x 112x 1x 1x 1x 117x 117x 49x 49x 68x 68x 1x 1x 17x 17x 1x 1x 802x 802x 1x 1x 16x 16x 1x 1x 25x 25x 1x 1x     1x
import {AbstractType, AbstractTypeData} from "./_abstract_type";
 
export class StringType extends AbstractType {
  private static readonly singletons = new Map<string, StringType>();
 
  public static get(input?: AbstractTypeData): StringType {
    const key = JSON.stringify(input);
    if (this.singletons.has(key)) {
      return this.singletons.get(key)!;
    }
 
    const ret = new StringType(input);
    this.singletons.set(key, ret);
    return ret;
  }
 
  private constructor(input?: AbstractTypeData) {
    super(input);
  }
 
  /** fully qualified symbolic name of the type */
  public getQualifiedName(): string | undefined {
    const qual = this.data?.qualifiedName;
    if (qual === undefined) {
      return "STRING";
    }
    return qual;
  }
 
  public toText() {
    return "```string```";
  }
 
  public isGeneric() {
    return false;
  }
 
  public toABAP(): string {
    return "string";
  }
 
  public containsVoid() {
    return false;
  }
 
  public toCDS() {
    return "abap.string";
  }
}