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 1560x 1560x 1x 1x 1559x 1559x 1x 1x 7x 7x 7x 7x 7x     7x     7x 7x 1x 1x 437x 437x 1x 1x 148x 148x 1x 1x 8x 8x 1x 1x 624x 624x 1x 1x 266x 266x 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() + " )";
  }
}