In an ID space, ID of each component ( {@link Component#getId}) must be unique. And, you could retrieve any component in the same ID space by calling {@link #getFellow} upon any component of the same ID space.
For sake of description, components in the same ID space are called fellows. If the component has an ancestor which implements {@link IdSpace}, we say a component belongs to the ID space owned by the ancestor. If no such ancestor exists, the component belongs to the ID space owned by the page. The ancestor and the page is called the owner ( {@link Component#getSpaceOwner}).
For sake of description, we also call the ID space as space X, if the owner is component X (or page X). If component Y is a child of X and also implements {@link IdSpace}(aka., another owner), then space X includes component Y, but EXCLUDES descendants of Y. In other words, Y belongs to space X and space Y. Thus, to get a child Z in the Y space, you shall X.getFellow('Y').getFellow('Z').
Example: Assumes component A is a child of B, B a child of C and C a child of D. If only C implements {@link IdSpace}, A, B and C are all belonged to the C space. D doesn't belong any space.
If both C and D implements {@link IdSpace}, C and D belongs to the D space while A, B and C belongs to the C space.
Note: to make a component (deriving from {@link AbstractComponent}) an ID space owner, all it needs to do is to implement this interface. @author tomyeh
|
|
|
|
|
|
|
|
|
|
|
|