Source: media/filter/remote/RemoteFilter.js

import { AbstractFilter } from "./utils/AbstractFilter.js";

export { RemoteFilter }

/**
 * Class representing a remote filter. 
 */
class RemoteFilter {
    /**
     * Create a remote filter.
     * @param {Object} settings - The dictionary containing the remote filter settings.
     */
    constructor(settings = {}) {
        this.settings = settings;
        this.abstractFilterObject = new AbstractFilter();

        if (this.settings.cqlFilter)
            this.abstractFilterObject.fromCQL(this.settings.cqlFilter)
    }

    /**
     * Return the abstract filter object.
     */
    get abstractFilter() {
        if (this.abstractFilterObject.filter == null)
            throw new Error('Abstract filter object is not set')
        return this.abstractFilterObject.filter;
    }
}