Each code generator should have at least one code model class that extends from this class.
The purpose of a code model is to represent user-supplied parameters and use them to
generate customized code.
Derived classes should implement the {@link prepare} method whose main task is to
fill up the {@link files} property based on the user parameters.
The {@link files} property should be filled with a set of {@link CCodeFile} instances,
each representing a single code file to be generated.
CCodeModel implements the feature of "sticky attributes". A sticky attribute is an attribute
that can remember its last valid value, even if the user closes his browser window
and reopen it. To declare an attribute is sticky, simply list it in a validation rule with
the validator name being "sticky".