All files / src/abap/5_syntax/statements insert_database.ts

93.93% Statements 31/33
66.66% Branches 2/3
100% Functions 1/1
93.93% Lines 31/33

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 331x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 9x 9x 9x     9x 9x 9x 9x 9x 2x 2x 9x 9x 9x 9x 9x 9x 9x 9x 1x
import * as Expressions from "../../2_statements/expressions";
import {ExpressionNode, StatementNode} from "../../nodes";
import {Source} from "../expressions/source";
import {Dynamic} from "../expressions/dynamic";
import {DatabaseTable} from "../expressions/database_table";
import {StatementSyntax} from "../_statement_syntax";
import {SyntaxInput} from "../_syntax_input";
import {AbstractType} from "../../types/basic/_abstract_type";
import {checkDatabaseWorkArea} from "../expressions/_check_database_work_area";
 
export class InsertDatabase implements StatementSyntax {
  public runSyntax(node: StatementNode, input: SyntaxInput): void {
 
    const sourceTypes = new Map<ExpressionNode, AbstractType | undefined>();
    for (const s of node.findAllExpressions(Expressions.Source)) {
      sourceTypes.set(s, Source.runSyntax(s, input));
    }
    for (const s of node.findAllExpressions(Expressions.SimpleSource3)) {
      sourceTypes.set(s, Source.runSyntax(s, input));
    }
 
    for (const d of node.findAllExpressions(Expressions.Dynamic)) {
      Dynamic.runSyntax(d, input);
    }
 
    const dbtab = node.findFirstExpression(Expressions.DatabaseTable);
    if (dbtab !== undefined) {
      const dbSource = DatabaseTable.runSyntax(dbtab, input);
      checkDatabaseWorkArea(node, dbSource, sourceTypes, input);
    }
 
  }
}