package org.realityforge.arez.annotations;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * Methods marked with this annotation are computed values within Arez.
 *
 * <p>The method should take zero parameters and return a single value. The value
 * should be derived from other Observables within the Arez system and the value
 * returned by the method should not change unless the state of the other Observables
 * changes. The method should NOT modify other state in the system.</p>
 *
 * <p>The computed method is automatically wrapped in a READ_ONLY transaction
 * by the annotation parser.</p>
 */
@Retention( RetentionPolicy.RUNTIME )
@Target( ElementType.METHOD )
public @interface Computed
{
}

@@ -322,20 +322,17 @@
 rameters
- and
+,
  return 
@@ -345,16 +345,42 @@
 le value
+ and throw no%0A * exception
 . The va
@@ -382,19 +382,16 @@
 he value
-%0A *
  should 
@@ -446,16 +446,19 @@
 z system
+%0A *
  and the
@@ -463,19 +463,16 @@
 he value
-%0A *
  returne
@@ -530,24 +530,27 @@
 of the other
+%0A *
  Observables
@@ -549,19 +549,16 @@
 ervables
-%0A *
  changes

Update documentation to notify that @Computed methods should not throw exceptions