text: /*!
   * UI development toolkit for HTML5 (OpenUI5)
   * (c) Copyright 2009-2016 SAP SE or an SAP affiliate company.
   * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
   */
  sap.ui.define(['jquery.sap.global'],function($){"use strict";var _=function(o){this._errorPrefix=o.errorPrefix;};var v={validationInfo:{type:"object",mandatory:true},inputToValidate:{type:"object",mandatory:true},allowUnknownProperties:"bool"};function c(V){if(typeof V==="string"){return{type:V,mandatory:false};}return V;}_.prototype={validate:function(o){this._validate({inputToValidate:o,validationInfo:v});this._validate(o);},_validate:function(o){var e=this._getErrors(o);if(e.length===1){throw new Error(this._errorPrefix+" - "+e[0]);}if(e.length){e.unshift("Multiple errors where thrown "+this._errorPrefix);throw new Error(e.join("\n"));}},_getErrors:function(o,e,p){var V=o.validationInfo,i=o.inputToValidate,a=o.allowUnknownProperties;if(!e){e=[];}if(!p){p="";}Object.keys(i).forEach(function(k){var b=c(V[k]);if(!a&&!b){e.push("the property '"+p+k+"' is not defined in the API");}});Object.keys(V).forEach(function(k){var b=i[k],d=c(V[k]);if((!d.hasOwnProperty("type")||!d.hasOwnProperty("mandatory"))&&b){p+=k+".";e.concat(this._getErrors({validationInfo:d,inputToValidate:b,allowUnknownProperties:a},e,p));return;}var C=p+k;if(d.mandatory&&(b===undefined||b===null)){e.push("No '"+C+"' given but it is a mandatory parameter");}if(b===undefined||b===null){return;}var f=_.types[d.type];var E=f(b,C);if(E){e.push(E);}}.bind(this));return e;}};_.types={func:function(V,p){if($.isFunction(V)){return"";}return"the '"+p+"' parameter needs to be a function but '"+V+"' was passed";},array:function(V,p){if($.isArray(V)){return"";}return"the '"+p+"' parameter needs to be an array but '"+V+"' was passed";},object:function(V,p){if($.isPlainObject(V)){return"";}return"the '"+p+"' parameter needs to be an object but '"+V+"' was passed";},string:function(V,p){if($.type(V)==="string"){return"";}return"the '"+p+"' parameter needs to be a string but '"+V+"' was passed";},bool:function(V,p){if($.type(V)==="boolean"){return"";}return"the '"+p+"' parameter needs to be a boolean value but '"+V+"' was passed";},numeric:function(V,p){if($.isNumeric(V)){return"";}return"the '"+p+"' parameter needs to be numeric but '"+V+"' was passed";},any:$.noop};return _;},true);
  