]> dev.renevier.net Git - syp.git/blob - openlayers/lib/OpenLayers/Filter/FeatureId.js
fixes notices
[syp.git] / openlayers / lib / OpenLayers / Filter / FeatureId.js
1 /* Copyright (c) 2006-2008 MetaCarta, Inc., published under the Clear BSD
2  * license.  See http://svn.openlayers.org/trunk/openlayers/license.txt for the
3   * full text of the license. */
4
5
6 /**
7  * @requires OpenLayers/Filter.js
8  */
9
10 /**
11  * Class: OpenLayers.Filter.FeatureId
12  * This class represents a ogc:FeatureId Filter, as being used for rule-based SLD
13  * styling
14  * 
15  * Inherits from
16  * - <OpenLayers.Filter>
17  */
18 OpenLayers.Filter.FeatureId = OpenLayers.Class(OpenLayers.Filter, {
19
20     /** 
21      * APIProperty: fids
22      * {Array(String)} Feature Ids to evaluate this rule against. To be passed
23      * To be passed inside the params object.
24      */
25     fids: null,
26     
27     /** 
28      * Constructor: OpenLayers.Filter.FeatureId
29      * Creates an ogc:FeatureId rule.
30      *
31      * Parameters:
32      * options - {Object} An optional object with properties to set on the
33      *           rule
34      * 
35      * Returns:
36      * {<OpenLayers.Filter.FeatureId>}
37      */
38     initialize: function(options) {
39         this.fids = [];
40         OpenLayers.Filter.prototype.initialize.apply(this, [options]);
41     },
42
43     /**
44      * APIMethod: evaluate
45      * evaluates this rule for a specific feature
46      * 
47      * Parameters:
48      * feature - {<OpenLayers.Feature>} feature to apply the rule to.
49      *           For vector features, the check is run against the fid,
50      *           for plain features against the id.
51      * 
52      * Returns:
53      * {Boolean} true if the rule applies, false if it does not
54      */
55     evaluate: function(feature) {
56         for (var i=0, len=this.fids.length; i<len; i++) {
57             var fid = feature.fid || feature.id;
58             if (fid == this.fids[i]) {
59                 return true;
60             }
61         }
62         return false;
63     },
64     
65     /**
66      * APIMethod: clone
67      * Clones this filter.
68      * 
69      * Returns:
70      * {<OpenLayers.Filter.FeatureId>} Clone of this filter.
71      */
72     clone: function() {
73         var filter = new OpenLayers.Filter.FeatureId();
74         OpenLayers.Util.extend(filter, this);
75         filter.fids = this.fids.slice();
76         return filter;
77     },
78     
79     CLASS_NAME: "OpenLayers.Filter.FeatureId"
80 });