/**
* Represents an abstract builder for creating filter parameters.
* @memberof vef.map.filters.builders
*/
class AbstractBuilder {
static getFilterParams(harmonizedFilters) {
const filters_and = [];
for (let key in harmonizedFilters) {
const filters_or = [];
for (let i = 0; i < harmonizedFilters[key].length; ++i) {
const values = harmonizedFilters[key][i];
switch (values[0]) {
case "bt":
filters_or.push(this.bt(key, values[1], values[2]));
break;
case "eq":
filters_or.push(this.eq(key, values[1]));
break;
case "like":
filters_or.push(this.like(key, values[1]));
break;
case "gt":
filters_or.push(this.gt(key, values[1]));
break;
case "gteq":
filters_or.push(this.gteq(key, values[1]));
break;
case "lt":
filters_or.push(this.lt(key, values[1]));
break;
case "lteq":
filters_or.push(this.lteq(key, values[1]));
break;
case "bbox":
filters_or.push(this.bbox(key, values[1], values[2], values[3], values[4]));
break;
case "null":
filters_or.push(this.null(key));
break;
}
}
filters_and.push(this.or(filters_or));
}
return this.and(filters_and);
}
static bt(property, begin, end) { }
static eq(property, value) { }
static like(property, value) { }
static gt(property, value) { }
static gteq(property, value) { }
static lt(property, value) { }
static lteq(property, value) { }
static bbox(key, latMin, lngMin, latMax, lngMax) { }
static null(property) { }
static or(filters) { }
static and(filters) { }
}
export { AbstractBuilder };