MCPcopy Create free account
hub / github.com/SuperMap/iClient-JavaScript / add

Method add

src/common/style/CartoCSS.js:3788–3851  ·  view source on GitHub ↗
(filter, env)

Source from the content-addressed store, hash-verified

3786 }
3787
3788 add(filter, env) {
3789 var key = filter.key.toString(),
3790 op = filter.op,
3791 conflict = this.conflict(filter),
3792 numval;
3793 if (conflict) {return conflict;}
3794
3795 if (op === '=') {
3796 for (var i in this.filters) {
3797 if (this.filters[i].key === key) {delete this.filters[i];}
3798 }
3799 this.filters[key + '='] = filter;
3800 } else if (op === '!=') {
3801 this.filters[key + '!=' + filter.val] = filter;
3802 } else if (op === '=~') {
3803 this.filters[key + '=~' + filter.val] = filter;
3804 } else if (op === '>') {
3805 // If there are other filters that are also >
3806 // but are less than this one, they don't matter, so
3807 // remove them.
3808 for (var j in this.filters) {
3809 if (this.filters[j].key === key && this.filters[j].val <= filter.val) {
3810 delete this.filters[j];
3811 }
3812 }
3813 this.filters[key + '>'] = filter;
3814 } else if (op === '>=') {
3815 for (var k in this.filters) {
3816 numval = (+this.filters[k].val.toString());
3817 if (this.filters[k].key === key && numval < filter.val) {
3818 delete this.filters[k];
3819 }
3820 }
3821 if (this.filters[key + '!=' + filter.val] !== undefined) {
3822 delete this.filters[key + '!=' + filter.val];
3823 filter.op = '>';
3824 this.filters[key + '>'] = filter;
3825 } else {
3826 this.filters[key + '>='] = filter;
3827 }
3828 } else if (op === '<') {
3829 for (var l in this.filters) {
3830 numval = (+this.filters[l].val.toString());
3831 if (this.filters[l].key === key && numval >= filter.val) {
3832 delete this.filters[l];
3833 }
3834 }
3835 this.filters[key + '<'] = filter;
3836 } else if (op === '<=') {
3837 for (var m in this.filters) {
3838 numval = (+this.filters[m].val.toString());
3839 if (this.filters[m].key === key && numval > filter.val) {
3840 delete this.filters[m];
3841 }
3842 }
3843 if (this.filters[key + '!=' + filter.val] !== undefined) {
3844 delete this.filters[key + '!=' + filter.val];
3845 filter.op = '<';

Callers 2

getParserMethod · 0.95
cloneWithMethod · 0.95

Calls 2

conflictMethod · 0.95
toStringMethod · 0.45

Tested by

no test coverage detected