package org.realityforge.arez.api2;

public enum ObserverState
{
  /**
   * Before the observer has been run or outside a batch (if it is a tracking function) or
   * not being observed (if it is observable). The observer is not holding any data about it's
   * dependencies.
   */
  NOT_TRACKING,
  /**
   * No shallow dependency has changed since last computation. The observer will not need to recalculate.
   */
  UP_TO_DATE,
  /**
   * A transitive dependency has changed but it has not been determined if a shallow
   * dependency has changed. The observer will need to check if shallow dependencies
   * have changed.
   *
   * Currently only ComputedValue instances will propagate POSSIBLY_STALE.
   */
  POSSIBLY_STALE,
  /**
   * A shallow dependency has changed so the observer will need to recompute when it is needed.
   */
  STALE
}

@@ -30,16 +30,93 @@
 .api2;%0A%0A
+/**%0A * The state of the observer relative to the observers dependencies.%0A */%0A
 public e
@@ -150,16 +150,9 @@
   * 
-Before t
+T
 he o
@@ -163,99 +163,137 @@
 ver 
-has been run or outside a batch (if it is a tracking function) or%0A   * not being observed (
+is not active and is not holding any data about it's dependencies.%0A   * Typically mean this tracker observer has not been run or 
 if i
@@ -301,84 +301,83 @@
  is 
-obs
+a d
 er
+i
 va
-ble). The observer is not holding any data about it's%0A   * dependenci
+tion that%0A   * there is no observer observing the derived observabl
 es.%0A
@@ -416,38 +416,14 @@
  No 
-shallow dependency has 
 change
-d
  sin
@@ -434,23 +434,11 @@
 ast 
-computation. Th
+tim
 e ob
@@ -449,35 +449,19 @@
 er w
-ill
+as
  not
- need to recalculate
+ified
 .%0A  
@@ -676,55 +676,31 @@
 ged.
-%0A   *%0A   * Currently only ComputedValue instanc
+ Only Derived observabl
 es w
@@ -727,16 +727,22 @@
 LY_STALE
+ state
 .%0A   */%0A
@@ -772,24 +772,16 @@
 %0A   * A 
-shallow 
 dependen
@@ -837,26 +837,8 @@
 pute
- when it is needed
 .%0A  

Add javadocs