Monitor.Guard
Date: 2016-05-24

com.google.common.util.concurrent

## Class Monitor.Guard

- java.lang.Object
- - com.google.common.util.concurrent.Monitor.Guard

- Enclosing class:
    Monitor

      @Beta
      public abstract static class Monitor.Guard
      extends java.lang.Object

  A boolean condition for which a thread may wait. A `Guard` is associated with a single `Monitor`. The monitor may check the guard at arbitrary times from any thread occupying the monitor, so code should not be written to rely on how often a guard might or might not be checked.

  If a `Guard` is passed into any method of a `Monitor` other than the one it is associated with, an `IllegalMonitorStateException` is thrown.

  Since:
    10.0

- - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `Monitor.Guard(Monitor monitor)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `abstract boolean` | `isSatisfied()` Evaluates this guard's boolean condition.

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

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

- - ### Constructor Detail

    - #### Monitor.Guard

          protected Monitor.Guard(Monitor monitor)

  - ### Method Detail

    - #### isSatisfied

          public abstract boolean isSatisfied()

      Evaluates this guard's boolean condition. This method is always called with the associated monitor already occupied. Implementations of this method must depend only on state protected by the associated monitor, and must not modify that state.