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

90.47% Statements 38/42
88.88% Branches 8/9
85.71% Functions 6/7
90.47% Lines 38/42

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 421x 1x 1x 1x 1x 1x 1x 107x 107x 107x 1x 1x 3x 3x 1x 1x 52x 52x 1x 1x 3x 3x     3x 3x 1x 1x 102x 1x 1x 101x 101x 1x 1x 4x 4x 1x 1x     1x
import {AbstractType} from "./_abstract_type";
import {AnyType} from "./any_type";
 
export class DataReference extends AbstractType {
  private readonly type: AbstractType;
 
  public constructor(type: AbstractType, qualifiedName?: string) {
    super({qualifiedName: qualifiedName});
    this.type = type;
  }
 
  public toText(level: number) {
    return "Data REF TO " + this.type.toText(level + 1);
  }
 
  public getType(): AbstractType {
    return this.type;
  }
 
  public toABAP(): string {
    const type = this.type.toABAP();
    if (type.includes(" TABLE OF ")) {
      return ""; // hmm, should this return undefined?
    }
    return "REF TO " + this.type.toABAP();
  }
 
  public isGeneric() {
    if (this.type instanceof AnyType) {
      return true;
    }
    return false;
  }
 
  public containsVoid() {
    return this.type.containsVoid();
  }
 
  public toCDS() {
    return "abap.TODO_REFERENCE";
  }
}