'use strict';

Object.defineProperty(exports, "__esModule", {
  value: true
});

var _index = require('../../index.js');

var _index2 = _interopRequireDefault(_index);

var _asserts = require('../../asserts.js');

var _asserts2 = _interopRequireDefault(_asserts);

var _filter = require('../filter/filter.js');

var _filter2 = _interopRequireDefault(_filter);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : { default: obj };
}

/**
 * @classdesc
 * Abstract class; normally only used for creating subclasses and not instantiated in apps.
 * Base class for WFS GetFeature n-ary logical filters.
 *
 * @constructor
 * @abstract
 * @param {!string} tagName The XML tag name for this filter.
 * @param {...ol.format.filter.Filter} conditions Conditions.
 * @extends {ol.format.filter.Filter}
 */
var _ol_format_filter_LogicalNary_ = function (tagName, conditions) {

  _filter2.default.call(this, tagName);

  /**
   * @public
   * @type {Array.<ol.format.filter.Filter>}
   */
  this.conditions = Array.prototype.slice.call(arguments, 1);
  _asserts2.default.assert(this.conditions.length >= 2, 57); // At least 2 conditions are required.
};

_index2.default.inherits(_ol_format_filter_LogicalNary_, _filter2.default);
exports.default = _ol_format_filter_LogicalNary_;
module.exports = exports['default'];