From c3fa0875dcc8aba955aaeaf821b818171aac870f Mon Sep 17 00:00:00 2001 From: ahocevar Date: Mon, 28 Nov 2011 12:25:28 +0100 Subject: [PATCH] toString implementation for Filter. If Format.CQL is not included in the build, toString from Object will be used. --- lib/OpenLayers/Filter.js | 20 +++++++++++++++++++- tests/Filter.html | 10 ++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/lib/OpenLayers/Filter.js b/lib/OpenLayers/Filter.js index f222248544..b43ccaaf44 100644 --- a/lib/OpenLayers/Filter.js +++ b/lib/OpenLayers/Filter.js @@ -56,7 +56,7 @@ OpenLayers.Filter = OpenLayers.Class({ /** * APIMethod: clone - * Clones this filter. Should be implementted by subclasses. + * Clones this filter. Should be implemented by subclasses. * * Returns: * {} Clone of this filter. @@ -65,5 +65,23 @@ OpenLayers.Filter = OpenLayers.Class({ return null; }, + /** + * APIMethod: toString + * + * Returns: + * {String} Include in your build to get a CQL + * representation of the filter returned. Otherwise "[Object object]" + * will be returned. + */ + toString: function() { + var string; + if (OpenLayers.Format && OpenLayers.Format.CQL) { + string = OpenLayers.Format.CQL.prototype.write(this); + } else { + string = Object.prototype.toString.call(this); + } + return string; + }, + CLASS_NAME: "OpenLayers.Filter" }); diff --git a/tests/Filter.html b/tests/Filter.html index 25b0e94377..01b8f47b44 100644 --- a/tests/Filter.html +++ b/tests/Filter.html @@ -13,6 +13,16 @@ t.eq(filter.foo, "bar", "constructor sets options correctly"); t.eq(typeof filter.evaluate, "function", "filter has an evaluate function"); } + + function test_toString(t) { + t.plan(1); + var filter = new OpenLayers.Filter.Comparison({ + property: "PERSONS", + value: 2000000, + type: OpenLayers.Filter.Comparison.LESS_THAN + }); + t.eq(filter.toString(), "PERSONS < 2000000", "toString returns CQL representation"); + }