1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | /* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for * full list of contributors). Published under the Clear BSD license. * See http://svn.openlayers.org/trunk/openlayers/license.txt for the * full text of the license. */ /** * @requires OpenLayers/Protocol.js */ /** * Class: OpenLayers.Protocol.SQL * Abstract SQL protocol class. Not to be instantiated directly. Use * one of the SQL protocol subclasses instead. * * Inherits from: * - <OpenLayers.Protocol> */ OpenLayers.Protocol.SQL = OpenLayers.Class(OpenLayers.Protocol, { /** * APIProperty: databaseName * {String} */ databaseName: 'ol', /** * APIProperty: tableName * Name of the database table into which Features should be saved. */ tableName: "ol_vector_features", /** * Property: postReadFiltering * {Boolean} Whether the filter (if there's one) must be applied after * the features have been read from the database; for example the * BBOX strategy passes the read method a BBOX spatial filter, if * postReadFiltering is true every feature read from the database * will go through the BBOX spatial filter, which can be costly; * defaults to true. */ postReadFiltering: true, /** * Constructor: OpenLayers.Protocol.SQL */ initialize: function(options) { OpenLayers.Protocol.prototype.initialize.apply(this, [options]); }, /** * APIMethod: destroy * Clean up the protocol. */ destroy: function() { OpenLayers.Protocol.prototype.destroy.apply(this); }, /** * APIMethod: supported * This should be overridden by specific subclasses * * Returns: * {Boolean} Whether or not the browser supports the SQL backend */ supported: function() { return false; }, /** * Method: evaluateFilter * If postReadFiltering is true evaluate the filter against the feature * and return the result of the evaluation, otherwise return true. * * Parameters: * {<OpenLayers.Feature.Vector>} The feature. * {<OpenLayers.Filter>} The filter. * * Returns: * {Boolean} true if postReadFiltering if false, the result of the * filter evaluation otherwise. */ evaluateFilter: function(feature, filter) { return filter && this.postReadFiltering ? filter.evaluate(feature) : true; }, CLASS_NAME: "OpenLayers.Protocol.SQL" }); |