///<reference path="./IMacroFilter.ts" />
///<reference path="../../helper/RegExpValue.ts" />
var econda;
(function (econda) {
var tagmanager;
(function (tagmanager) {
var macro;
(function (macro) {
var filter;
(function (filter) {
var RegExpValue = econda.tagmanager.helper.RegExpValue;
/**
* StringFilter class applies filter rules to macros of type "string"
* @class econda.tagmanager.macro.filter.StringFilter
*/
var StringFilter = (function () {
function StringFilter() {
}
StringFilter.prototype.getFilteredValue = function (macroDefinition, valueToFilter) {
var regExpConfig = new RegExpValue(macroDefinition.regexp || null);
if (regExpConfig.isMatchAlways()) {
return valueToFilter;
}
else {
var regex = regExpConfig.toRegExp();
var ret;
var matches = regex.exec(valueToFilter);
if (matches === null) {
// regex did not match
return null;
}
switch (matches.length) {
case 1:
// regex did match, return match
ret = matches[0];
break;
default:
// regex generated submatches, return first one
ret = matches[1];
break;
}
return ret;
}
};
return StringFilter;
}());
filter.StringFilter = StringFilter;
})(filter = macro.filter || (macro.filter = {}));
})(macro = tagmanager.macro || (tagmanager.macro = {}));
})(tagmanager = econda.tagmanager || (econda.tagmanager = {}));
})(econda || (econda = {}));