+ that.visitTargets = function(callback) {
+ for (var i in m_list) {
+ var filter = m_list[i];
+ if (filter.type === 'target') {
+ callback(filter.id, filter.name);
+ }
+ }
+ };
+
+ that.visitFields = function(callback) {
+ for (var i in m_list) {
+ var filter = m_list[i];
+ if (filter.type === 'field') {
+ callback(filter.field, filter.value);
+ }
+ }
+ };
+
+ that.visitCategories = function(callback) {
+ for (var i in m_list) {
+ var filter = m_list[i];
+ if (filter.type === 'category') {
+ callback(filter.id);
+ }
+ }
+ };
+
+ that.removeMatching = function(matchFn) {
+ var newList = [];
+ for (var i in m_list) {
+ var filter = m_list[i];
+ if (matchFn(filter)) {
+ m_team.info("removeMatching: removing filter " + mkws.$.toJSON(filter));
+ } else {
+ m_team.info("removeMatching: keeping filter " + mkws.$.toJSON(filter));
+ newList.push(filter);
+ }