All files / src/rules cds_parser_error.ts

100% Statements 50/50
100% Branches 10/10
100% Functions 6/6
100% Lines 50/50

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 501x 1x 1x 1x 1x 1x 1x 1x 1x 1x 8923x 8923x 8923x 8923x 77518x 77518x 77518x 77518x 77518x 77518x 77518x 77518x 8923x 8923x 8486x 8486x 8923x 8923x 202x 202x 8923x 8923x 204x 204x 8923x 8923x 259x 259x 259x 2x 2x 2x 1x 1x 2x 259x 259x 259x 8923x 8923x
import {Issue} from "../issue";
import {IRule, IRuleMetadata, RuleTag} from "./_irule";
import {IObject} from "../objects/_iobject";
import {IRegistry} from "../_iregistry";
import {BasicRuleConfig} from "./_basic_rule_config";
import {DataDefinition} from "../objects";
 
export class CDSParserErrorConf extends BasicRuleConfig {
}
 
export class CDSParserError implements IRule {
  private conf = new CDSParserErrorConf();
 
  public getMetadata(): IRuleMetadata {
    return {
      key: "cds_parser_error",
      title: "CDS Parser Error",
      shortDescription: `CDS parsing, experimental`,
      extendedInformation: ``,
      tags: [RuleTag.Syntax],
    };
  }
 
  public getConfig() {
    return this.conf;
  }
 
  public setConfig(conf: CDSParserErrorConf) {
    this.conf = conf;
  }
 
  public initialize(_reg: IRegistry): IRule {
    return this;
  }
 
  public run(o: IObject): Issue[] {
    const issues: Issue[] = [];
 
    if (o.getType() === "DDLS" && o instanceof DataDefinition) {
      const hasError = o.hasParserError();
      const file = o.findSourceFile();
      if (hasError === true && file) {
        issues.push(Issue.atRow(file, 1, "CDS Parser error", this.getMetadata().key, this.getConfig().severity));
      }
    }
 
    return issues;
  }
 
}