diff --git a/src/ol/filter/extentfilter.js b/src/ol/filter/extentfilter.js index d919b03954..b8738bfa73 100644 --- a/src/ol/filter/extentfilter.js +++ b/src/ol/filter/extentfilter.js @@ -7,10 +7,11 @@ goog.require('ol.filter.Filter'); /** * @constructor - * @implements {ol.filter.Filter} + * @extends {ol.filter.Filter} * @param {ol.Extent} extent The extent. */ ol.filter.Extent = function(extent) { + goog.base(this); /** * @type {ol.Extent} @@ -19,6 +20,7 @@ ol.filter.Extent = function(extent) { this.extent_ = extent; }; +goog.inherits(ol.filter.Extent, ol.filter.Filter); /** diff --git a/src/ol/filter/filter.js b/src/ol/filter/filter.js index d41a6bed23..701a942ae7 100644 --- a/src/ol/filter/filter.js +++ b/src/ol/filter/filter.js @@ -5,13 +5,20 @@ goog.require('ol.Feature'); /** - * @interface + * @constructor + * @param {function(this:ol.filter.Filter, ol.Feature)=} opt_filterFunction + * Filter function. Should return true if the passed feature passes the + * filter, false otherwise. */ -ol.filter.Filter = function() {}; +ol.filter.Filter = function(opt_filterFunction) { + if (goog.isDef(opt_filterFunction)) { + this.applies = opt_filterFunction; + } +}; /** - * @param {ol.Feature} feature Feature to evaluate. + * @param {ol.Feature} feature Feature to evaluate the filter against. * @return {boolean} The provided feature passes this filter. */ -ol.filter.Filter.prototype.applies = function(feature) {}; +ol.filter.Filter.prototype.applies = goog.abstractMethod; diff --git a/src/ol/filter/geometryfilter.js b/src/ol/filter/geometryfilter.js index 11deacedd6..f48a67b14b 100644 --- a/src/ol/filter/geometryfilter.js +++ b/src/ol/filter/geometryfilter.js @@ -8,10 +8,11 @@ goog.require('ol.geom.GeometryType'); /** * @constructor - * @implements {ol.filter.Filter} + * @extends {ol.filter.Filter} * @param {ol.geom.GeometryType} type The geometry type. */ ol.filter.Geometry = function(type) { + goog.base(this); /** * @type {ol.geom.GeometryType} @@ -20,6 +21,7 @@ ol.filter.Geometry = function(type) { this.type_ = type; }; +goog.inherits(ol.filter.Geometry, ol.filter.Filter); /** diff --git a/src/ol/filter/logicalfilter.js b/src/ol/filter/logicalfilter.js index ccc8a1bda7..89f438fc33 100644 --- a/src/ol/filter/logicalfilter.js +++ b/src/ol/filter/logicalfilter.js @@ -7,11 +7,12 @@ goog.require('ol.filter.Filter'); /** * @constructor - * @implements {ol.filter.Filter} + * @extends {ol.filter.Filter} * @param {Array.