Template Language describes numerous kind specifications of module. The kind specification of module influences the number and type of modules that can or have to be made, which in turn decides the number of examples of reuse of the specific template. A lot of module specifications require machine specific parameters so that the compiler can enlarge them properly. A specification of module list permits zero or more modules of component the specified type. The accurate number of modules made is machine-specific. Every module has to be allocated a specific unique machine name to make certain uniqueness. For instance, a specification that “an Indexer includes multiple Stations” can be added to the template of Indexer.
The template library maintains birthright between the modules, permitting inheritance of type separately from implementation inheritance (e.g., when extended, the code for a MotorStarter contains all the code described for an Actuator). A specification of fixed module does not effect in the module creation. The specific template is easily extended in the context of parent that submits to it, and is typically used to come into the parent implementation.
There is a need to permit a module to comprise another module implementation without observe to any relationship of super type/subtype. It might be convenient, for instance, to put some common frequently used code in its own module, and basically contain it wherever it is required. An include module specification offers the solution. A named module specification effects in a single component module named of the type recognized in the specification. A name of module has to also be provided in the specification of module, for instance, “a MasterControlPanel includes a MasterStartPB of Pushbutton named”. The template can pass on to MasterStartPB on their RLL and recognize which the customer can not modify the button name using this specification.
A specification of renameable module also effects in a single module of named component of the particular type, but will also let a user-supplied name to supersede the default name offered. For instance, the specification “a TransferMachine includes a MasterControlPanel with the defaulting name MasterConsole” lets the user to modify the name from MasterConsole. A specification of optional module results in either no examples or accurately one example of the specified type. The choice is overdue by the template author and have to be created according to machine-specific information. For instance, the specification of “a Station may or may not include an OperatorPanel” permits the customer to choose for every Stations which it will comprise OperatorPanels. The user will offer a unique name for any panels that he does make.