    importPackage(Packages.de.elo.ix.jscript);
    importPackage(Packages.de.elo.ix.scripting);

    //@include lib_Class.js
    //@include lib_sol.common.Config.js
    //@include lib_sol.common.TranslateTerms.js
    //@include lib_sol.common.ix.DynKwlFindChildrenIterator.js

    /**
     *Dynamic keyword list that returns a list of the configured form of addresses.
     *
     * |Name|Description|Example data|
     * |:-----|:------|:------|
     * |Description|CONTACT_TITLE|The template for generating the title|
     *
     * @author PZ, ELO Digital Office GmbH
     * @version 1.01.001
     *
     * @requires sol.common.Config
     * @requires sol.common.ix.DynKwlFindChildrenIterator
     */
    sol.define("sol.contact.ix.dynkwl.FormOfAddressTemplate", {
      extend: "sol.common.ix.DynKwlFindChildrenIterator",

      initialize: function (config) {
        var me = this,
            terms = sol.common.TranslateTerms;

        me.$super("sol.common.ix.DynKwlFindChildrenIterator", "initialize", [config]);

        me.contactConfig = sol.create("sol.common.Config", { compose: "/contact/Configuration/contact.config" }).config;
        me.parentId = me.contactConfig.dynkwl.titles.templateFolderId;

        terms.require("sol.contact.dynkwl.formOfAddress");
        me.tableTitle = terms.translate("sol.contact.dynkwl.formOfAddress.tableTitle");
        me.tableHeaders = [
          terms.translate("sol.contact.dynkwl.formOfAddress.tableHeaders.formOfAddress")
        ];
      },

      /**
       * @cfg
       * @inheritdoc
       */
      tableKeyNames: ["CONTACT_FORM_OF_ADDRESS"],

      /**
       * @cfg
       * defined by initialize
       */
      parentId: null,

      /**
       * Mapping of search results.
       * This returns only the sord name.
       * @param {de.elo.ix.client.Sord} sord
       * @return {Object}
       */
      getRowData: function (sord) {
        return [sord.name];
      }
    });

    /**
     * Implements a DynamicKeywordDataProvider for this keyword list that can be used by checkoutKeywordsDynamic.
     * @static
     * @member sol.contact.ix.dynkwl.FormOfAddressTemplate
     * @returns {DynamicKeywordDataProvider}
     */
    function getDataIterator() {
      var log = sol.create("sol.Logger", { scope: "sol.contact.ix.dynkwl.FormOfAddressTemplate" }),
          iterator;
      try {
        log.info("DynamicKeywordList (");
        iterator = sol.create("sol.contact.ix.dynkwl.FormOfAddressTemplate", {});
        return new DynamicKeywordDataProvider(iterator);
      } finally {
        log.info(")getDataIterator");
      }
    }