All files / src/abap/2_statements/statements modify_entities.ts

100% Statements 30/30
100% Branches 1/1
100% Functions 1/1
100% Lines 30/30

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 301x 1x 1x 1x 1x 1x 1x 1x 1x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 1x 1x
import {IStatement} from "./_statement";
import {alt, opt, optPrio, per, plus, seq, ver} from "../combi";
import {NamespaceSimpleName, SimpleName, Source, Target} from "../expressions";
import {IStatementRunnable} from "../statement_runnable";
import {Version} from "../../../version";
 
export class ModifyEntities implements IStatement {
 
  public getMatcher(): IStatementRunnable {
    const fieldsWith = seq("FIELDS (", plus(SimpleName), ") WITH", Source);
    const operation = alt(
      seq("UPDATE SET FIELDS WITH", Source),
      seq("CREATE SET FIELDS WITH", Source),
      seq("UPDATE", fieldsWith),
      seq("DELETE FROM", Source),
      seq("EXECUTE", SimpleName, "FROM", Source),
      seq("CREATE", optPrio("AUTO FILL CID"), fieldsWith));
 
    const s = seq("MODIFY ENTITIES OF", NamespaceSimpleName,
                  opt("IN LOCAL MODE"),
                  "ENTITY", SimpleName,
                  operation,
                  optPrio(per(seq("FAILED", Target),
                              seq("RESULT", Target),
                              seq("MAPPED", Target),
                              seq("REPORTED", Target))));
    return ver(Version.v754, s);
  }
 
}