Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changes between Initial Version and Version 1 of code/doc/ClassTreeMask


Ignore:
Timestamp:
Feb 27, 2008, 9:04:44 PM (16 years ago)
Author:
landauf
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • code/doc/ClassTreeMask

    v1 v1  
     1= !ClassTreeMask =
     2
     3== Description ==
     4
     5The [wiki:ClassTreeMask] defines a mask that includes or excludes branches and single classes in the [wiki:Identifier class-tree]. You can think of the [wiki:ClassTreeMask] like a mask in computer graphics: A mask is a black/white picture where black means invisible and white means fully visible. That way you can show some parts of an image and hide others. The [wiki:ClassTreeMask] does the same with the class-tree, but ''show'' means ''include'' and ''hide'' means ''exclude''. An unmodified mask shows everything / is white / includes the [wiki:BaseObject] (those statements are equivalent).
     6
     7The [wiki:Identifier class-tree] starts with the [wiki:BaseObject] but has some additional Interfaces that are parents of some subclasses (or "nodes" in the speak of tree-structure). Because we can't include or exclude classes directly, we use the corresponding [wiki:Identifier Identifiers] instead. In the following we'll speak about "classes" but implicitly mean "the [wiki:Identifier Identifiers] of those classes".
     8
     9Including a class means: "The whole branch starting with this class gets included", unless you didn't set the ''overwrite'' flag to false. Including a class without overwriting means: "Include the whole branch starting with this class but don't include previously excluded classes". The same aplies for excluding.
     10
     11After including/excluding a class, the [wiki:ClassTreeMask] is scanned for useless rules. If you include the [wiki:BaseObject] and include a subclass of [wiki:BaseObject] too, this brings no new information, so the inclusion-rule of the subclass can be discarded. Only rules that change the state are saved. You can turn of this cleanup by setting the ''clean'' flag to false. '''Warning''': This could change the meaning of your mask. If you exclude the [wiki:BaseObject] in our example without ''overwrite'', the subclass stays included. You'll find some examples for this in the corresponding section of this page.
     12
     13It's also possible to include/exclude only a single class wihtout changing the rule for following classes. This is achieved with the includeSingle/excludeSingle functions.
     14
     15Including/excluding interfaces is a bit different, because interfaces aren't directly in the class-tree. Instead the [wiki:ClassTreeMask] will apply the rule for all direct parents of the interfaces. If you set ''overwrite'' to false, only direct parents without an explicit rule apply the new rule.
     16
     17== Functions ==
     18
     19
     20
     21== Operators ==
     22
     23
     24
     25== Examples ==
     26
     27