|
21 | 21 | * perhaps most importantly, the last step will lead to the hierarchy's <b>inner observable</b>.
|
22 | 22 | * <p>
|
23 | 23 | * As nesting steps require a value to be accessible, all observables on which a step is used must provide a value.
|
24 |
| - * Hence they must all implement {@link ObservableValue} (of {@code T}, where {@code T} is no primitive type wrapper or |
25 |
| - * {@code String}). No step is used on the inner observable so it suffices that it implements {@link Observable}. |
| 24 | + * Hence they must all implement {@link ObservableValue ObservableValue}. No step is used on the inner observable so it |
| 25 | + * suffices that it implements {@link Observable}. |
26 | 26 | * <h3>Example</h3> Consider a class {@code Employee} which has an {@code Property<Address> address}, where
|
27 | 27 | * {@code Address} has a {@code StringProperty streetName}. There might be a {@code Property<Emplyee> currentEmployee},
|
28 | 28 | * which always holds the current employee.
|
|
31 | 31 | * the outer observable and {@code address} and {@code streetName} are nested observables. Additionally,
|
32 | 32 | * {@code streetName} is the inner observable.
|
33 | 33 | * <h2>Present or Missing Inner Observable</h2> If all steps return non-null observables and none of them contains null,
|
34 |
| - * the inner observable can be computed and will be contained in the {@link #innerObservableProperty() innerObservable} |
| 34 | + * the inner observable can be accessed and will be contained in the {@link #innerObservableProperty() innerObservable} |
35 | 35 | * property. In this case it is said to be <b>present</b>. The same is true if only the inner observable contains null.
|
36 | 36 | * <p>
|
37 | 37 | * If any nesting step returns null or any observable except the inner contains null as a value, the nesting hierarchy
|
38 |
| - * can not be completely computed. The inner observable is said to be <b>missing</b> and the {@code innerObservable} |
39 |
| - * property contains {@link Optional#empty()}. |
| 38 | + * can not be fully accessed. The inner observable is said to be <b>missing</b> and the {@code innerObservable} property |
| 39 | + * contains {@link Optional#empty()}. |
40 | 40 | * <h2>Evaluation</h2> Nestings will usually be implemented such that they eagerly evaluate the nested observables.
|
41 | 41 | * <h2>Build</h2> Instances of {@code Nesting} can be created with dedicated builders. These can be obtained by starting
|
42 | 42 | * with one of the methods in {@link Nestings}. More details can be found there.
|
| 43 | + * <p> |
| 44 | + * Nestings are also an important building block for creating other nested instances like |
| 45 | + * {@link org.codefx.libfx.nesting.property.NestedProperty NestedProperty}. A |
| 46 | + * {@link org.codefx.libfx.nesting.NestingObserver NestingObserver} provides a convenient way to work directly with a |
| 47 | + * {@code Nesting}. |
43 | 48 | *
|
44 | 49 | * @see Nestings
|
45 | 50 | * @param <O>
|
|
0 commit comments