Classes are divided into 3 tiers:
- The generated tier is not subject to changes – being a direct result of the XML file it is recomposed with each new generation.
- The base tier is the base logic– the one, which is common for all the applications that use the object.
- Custom tier is a logic which is specific for the respective application.
The last couple of tiers are not mandatory, they remain in separate files, so whenever there are not any implementations associated with a given object, the generated tier will use the default ones of the two subclasses above it. Thus the Client class will always be constructed, instead of considering which class is there and which is not for the given object. When an inheriting object is present, it inherits the top tier class and applies its own structure.