The supportFeatures()method gets the feature list of the test model object, and if it determines that it supports these features, it returns the appropriate LTTestExtensionPreferences object. The returned object implements the com.ibm.rational.test.lt.codegen.core.config.IExtensionPreferences interface, which is the public part of the LTTestExtensionPreferences class.
The code generation is controlled by the com.ibm.rational.test.lt.codegen.core.CodeGenerator class. This class uses an EclipseCodegenConfiguration object that stores the hash maps for translators, the model element adapters and the templates that are determined by language element types. The container test elements, data pools, and some other independent protocol-specific elements have their own translators defined. Elements that cannot exist on their own are translated as children of their containing elements by calling the translateChildren() method of the translator.
The code generator determines the proper translator and calls its getTranslationFor() method for the given model element.
The ElementAdapter class with its getAdapterForType() method determines the proper code generation model element for the given Behavior Model element.
The translation of test elements involves the following steps: