All files / src/bdef/expressions bdef_hierarchy.ts

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

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 151x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x  
import {BDEFAssociationBody, BDEFField, BDEFName} from ".";
import {altPrio, Expression, optPrio, seq, starPrio} from "../../abap/2_statements/combi";
import {IStatementRunnable} from "../../abap/2_statements/statement_runnable";
 
/** eg. "instance hierarchy /DMO/I_EmployeeHN { managed reorder action changeNextSibling; ascending association _Manager; }" */
export class BDEFHierarchy extends Expression {
  public getRunnable(): IStatementRunnable {
    const action = seq(optPrio("MANAGED"), altPrio("REORDER", "COPY"), "ACTION", BDEFName, ";");
    const association = seq(altPrio("ASCENDING", "DESCENDING"), "ASSOCIATION", BDEFName, altPrio(";", BDEFAssociationBody));
    const item = altPrio(action, association, BDEFField, ";");
 
    return seq("INSTANCE HIERARCHY", BDEFName, "{", starPrio(item), "}");
  }
}