Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Version 1 (modified by landauf, 16 years ago) (diff)

ClassTreeMask

Description

The ClassTreeMask defines a mask that includes or excludes branches and single classes in the class-tree. You can think of the 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 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 BaseObject (those statements are equivalent).

The class-tree starts with the 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 Identifiers instead. In the following we'll speak about "classes" but implicitly mean "the Identifiers of those classes".

Including 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.

After including/excluding a class, the ClassTreeMask is scanned for useless rules. If you include the BaseObject and include a subclass of 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 BaseObject in our example without overwrite, the subclass stays included. You'll find some examples for this in the corresponding section of this page.

It'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.

Including/excluding interfaces is a bit different, because interfaces aren't directly in the class-tree. Instead the 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.

Functions

Operators

Examples

Attachments (19)

Download all attachments as: .zip