edu.wpi.first.wpilibj.command

## Class WaitForChildren

- java.lang.Object
- - edu.wpi.first.wpilibj.command.Command
  - - edu.wpi.first.wpilibj.command.WaitForChildren

- All Implemented Interfaces:
    NamedSendable, Sendable

      public class WaitForChildren
      extends Command

  This command will only finish if whatever `CommandGroup` it is in has no active children. If it is not a part of a `CommandGroup`, then it will finish immediately. If it is itself an active child, then the `CommandGroup` will never end.

  This class is useful for the situation where you want to allow anything running in parallel to finish, before continuing in the main `CommandGroup` sequence.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `WaitForChildren()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected boolean` | `isFinished()` Returns whether this command is finished.

    - ### Methods inherited from class edu.wpi.first.wpilibj.command.Command

      `cancel, clearRequirements, doesRequire, end, execute, getGroup, getName, getSmartDashboardType, initialize, initTable, interrupted, isCanceled, isInterruptible, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled`

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

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### WaitForChildren

          public WaitForChildren()

  - ### Method Detail

    - #### isFinished

          protected boolean isFinished()

      Description copied from class: `Command`
      Returns whether this command is finished. If it is, then the command will be removed and `end()` will be called.

      It may be useful for a team to reference the `isTimedOut()` method for time-sensitive commands.

      Returning false will result in the command never ending automatically. It may still be cancelled manually or interrupted by another command. Returning true will result in the command executing once and finishing immediately. We recommend using `InstantCommand` for this.

      Specified by:
        `isFinished` in class `Command`
      Returns:
        whether this command is finished.
      See Also:
        `isTimedOut()`