function processSimpleType(sType) {
			var bSkip = fnFilter && !fnFilter(sType);
			if (bSkip) {
				return {
					template: sType,
					simpleTypes: [] // do not add this type to the list of parsed types
				};
			}

			return {
				template: "${" + iIndexOfNextSimpleType++ + "}",
				simpleTypes: [sType] // add this type to the list of parsed types
			};
		}
Parses a string representing a complex type and returns an object with 2 fields:
(1) simpleTypes: an array of the identified simple types inside the complex type;
(2) template: a string indicating the position of the simple types in the original string.

Examples:

parseSimpleTypes("sap.ui.core.Control | null") returns
 {
    template: "${0} | ${1}",
    simpleTypes: ["sap.ui.core.Control", "null"]
 }

parseSimpleTypes("Array<string>|Array<number>") returns
 {
    template: "Array<${0}>|Array<${1}>"
    simpleTypes: ["string", "number"],
 }

parseSimpleTypes("Object<string, number>") returns
 {
	   template: "Object<${0},${1}>"
	   simpleTypes: ["string", "number"],
 }

parseSimpleTypes("function(sap.ui.base.Event, number): boolean") returns
 {
	   template: "function(${0},${1}): ${2}"
	   simpleTypes: ["sap.ui.base.Event", "number", "boolean"],
	}

parseSimpleTypes("Promise<string>") returns
 {
	   template: "Promise<${0}>"
	   simpleTypes: ["string"],
 }

@param {string} sComplexType
@param {function} [fnFilter] optional filter function to be called for each simple type found. If a type is filtered out, it will not be added to the list of simple types, but will be present in its original form in the template.
@returns {{simpleTypes: string[], template: string}} an object with the properties template and simpleTypes