org.apache.sysds.runtime.controlprogram

## Class WhileProgramBlock

- java.lang.Object
- - org.apache.sysds.runtime.controlprogram.ProgramBlock
  - - org.apache.sysds.runtime.controlprogram.WhileProgramBlock

- All Implemented Interfaces:
    ParseInfo

      public class WhileProgramBlock
      extends ProgramBlock

- - ### Field Summary

    - ### Fields inherited from class org.apache.sysds.runtime.controlprogram.ProgramBlock

      `_beginColumn, _beginLine, _endColumn, _endLine, _filename, _text, PRED_VAR`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `WhileProgramBlock(Program prog, ArrayList<Instruction> predicate)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addProgramBlock(ProgramBlock childBlock)`
    `void` | `execute(ExecutionContext ec)` Executes this program block (incl recompilation if required).
    `ArrayList<ProgramBlock>` | `getChildBlocks()` Get the list of child program blocks if nested; otherwise this method returns null.
    `ArrayList<Instruction>` | `getPredicate()`
    `boolean` | `isNested()` Indicates if the program block is nested, i.e., if it contains other program blocks (e.g., loops).
    `String` | `printBlockErrorLocation()`
    `void` | `setChildBlocks(ArrayList<ProgramBlock> childs)`
    `void` | `setPredicate(ArrayList<Instruction> predicate)`

    - ### Methods inherited from class org.apache.sysds.runtime.controlprogram.ProgramBlock

      `executePredicate, getBeginColumn, getBeginLine, getEndColumn, getEndLine, getExitInstruction, getFilename, getProgram, getStatementBlock, getText, getThreadID, hasThreadID, isThreadID, setBeginColumn, setBeginLine, setEndColumn, setEndLine, setExitInstruction, setFilename, setParseInfo, setProgram, setStatementBlock, setText, setThreadID`

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface org.apache.sysds.parser.ParseInfo

      `ctxAndFilenameToParseInfo`

- - ### Constructor Detail

    - #### WhileProgramBlock

          public WhileProgramBlock(Program prog,
                                   ArrayList<Instruction> predicate)

  - ### Method Detail

    - #### addProgramBlock

          public void addProgramBlock(ProgramBlock childBlock)

    - #### getPredicate

          public ArrayList<Instruction> getPredicate()

    - #### setPredicate

          public void setPredicate(ArrayList<Instruction> predicate)

    - #### getChildBlocks

          public ArrayList<ProgramBlock> getChildBlocks()

      Description copied from class: `ProgramBlock`
      Get the list of child program blocks if nested; otherwise this method returns null.
      Specified by:
        `getChildBlocks` in class `ProgramBlock`
      Returns:
        list of program blocks

    - #### isNested

          public boolean isNested()

      Description copied from class: `ProgramBlock`
      Indicates if the program block is nested, i.e., if it contains other program blocks (e.g., loops).
      Specified by:
        `isNested` in class `ProgramBlock`
      Returns:
        true if nested

    - #### execute

          public void execute(ExecutionContext ec)

      Description copied from class: `ProgramBlock`
      Executes this program block (incl recompilation if required).
      Specified by:
        `execute` in class `ProgramBlock`
      Parameters:
        `ec` - execution context

    - #### setChildBlocks

          public void setChildBlocks(ArrayList<ProgramBlock> childs)

    - #### printBlockErrorLocation

          public String printBlockErrorLocation()

      Overrides:
        `printBlockErrorLocation` in class `ProgramBlock`

Copyright © 2021 The Apache Software Foundation. All rights reserved.