A Level is a combination of an XML-file and a ClassTreeMask. They define a set of objects that can be loaded by the Loader?. If you don't specify a mask, every object gets loaded. If you exclude certain classes, objects of those classes aren't loaded. A loaded object knows in which Level it was defined. This way it's possible to selecitvely delete objects of a specific Level.
You can think of a Level as a static and well defined unit. It's not possible to change the XML-file or the mask of a Level. The same XML-file combined with a different mask defines another Level. However it's still possible to apply another mask to a (already masked) Level by using the functions of the Loader. But the other mask is intersected with the mask of the level, so it's only possible to exclude even more classes, but you can't include previously excluded classes.
Recapitulatory we can state: An XML-file defines the maximal set of objects in a Level and a Level defines the maximal set of objects that can be loaded by the Loader. But both, Level and Loader can use masks to reduce the amount of objects even more.
- Level(file): Creates a Level that includes all objects from file.
- Level(file, mask): Creates a Level that includes all objects from file whose classes are included in mask.
- getFile(): Returns the name of the file.
- getMask(): Returns a reference to the mask.