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

85.45% Statements 47/55
81.81% Branches 9/11
77.77% Functions 7/9
85.45% Lines 47/55

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 49 50 51 52 53 54 551x 1x 1x 1x 1x 1x 1051708x 1051708x 1x 1x 1051707x 1051707x 1x 1x 7x 7x 7x 7x 7x     7x     7x 7x 1x 1x 411x 411x 1x 1x 132x 132x 1x 1x 4x 4x 1x 1x 574x 574x 1x 1x 250x 250x 1x 1x     1x 1x     1x
import {AbstractType, AbstractTypeData} from "./_abstract_type";
 
export class CharacterType extends AbstractType {
  private readonly length: number;
 
  public constructor(length: number, extra?: AbstractTypeData) {
    super(extra);
    if (length <= 0) {
      throw new Error("Bad LENGTH, Character");
    }
    this.length = length;
  }
 
  public cloneType(input: {qualifiedName?: string, ddicName?: string, derivedFromConstant?: boolean}) {
    const clone = {...this.getAbstractTypeData()};
    if (input.qualifiedName) {
      clone.qualifiedName = input.qualifiedName;
    }
    if (input.ddicName) {
      clone.ddicName = input.ddicName;
    }
    if (input.derivedFromConstant) {
      clone.derivedFromConstant = input.derivedFromConstant;
    }
    return new CharacterType(this.length, clone);
  }
 
  public getLength() {
    return this.length;
  }
 
  public toText() {
    return "```c LENGTH " + this.getLength() + "```";
  }
 
  public toABAP() {
    return "c LENGTH " + this.getLength();
  }
 
  public isGeneric() {
    return false;
  }
 
  public containsVoid() {
    return false;
  }
 
  public getIdentifier() {
    return undefined;
  }
 
  public toCDS() {
    return "abap.char( " + this.getLength() + " )";
  }
}