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 1103481x 1103481x 1x 1x 1103480x 1103480x 1x 1x 7x 7x 7x 7x 7x     7x     7x 7x 1x 1x 417x 417x 1x 1x 132x 132x 1x 1x 4x 4x 1x 1x 593x 593x 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() + " )";
  }
}