diff --git a/lib/OpenLayers/Format/Filter/v1.js b/lib/OpenLayers/Format/Filter/v1.js index 244e61d798..5556c1662b 100644 --- a/lib/OpenLayers/Format/Filter/v1.js +++ b/lib/OpenLayers/Format/Filter/v1.js @@ -156,17 +156,6 @@ OpenLayers.Format.Filter.v1 = OpenLayers.Class(OpenLayers.Format.XML, { this.readChildNodes(node, filter); obj.filters.push(filter); }, - "PropertyIsLike": function(node, obj) { - var filter = new OpenLayers.Filter.Comparison({ - type: OpenLayers.Filter.Comparison.LIKE - }); - this.readChildNodes(node, filter); - var wildCard = node.getAttribute("wildCard"); - var singleChar = node.getAttribute("singleChar"); - var esc = node.getAttribute("escape"); - filter.value2regex(wildCard, singleChar, esc); - obj.filters.push(filter); - }, "Literal": function(node, obj) { obj.value = OpenLayers.String.numericIf( this.getChildValue(node)); @@ -348,18 +337,6 @@ OpenLayers.Format.Filter.v1 = OpenLayers.Class(OpenLayers.Format.XML, { this.writeNode("UpperBoundary", filter, node); return node; }, - "PropertyIsLike": function(filter) { - var node = this.createElementNSPlus("ogc:PropertyIsLike", { - attributes: { - wildCard: "*", singleChar: ".", escape: "!" - } - }); - // no ogc:expression handling for now - this.writeNode("PropertyName", filter, node); - // convert regex string to ogc string - this.writeNode("Literal", filter.regex2value(), node); - return node; - }, "PropertyName": function(filter) { // no ogc:expression handling for now return this.createElementNSPlus("ogc:PropertyName", { diff --git a/lib/OpenLayers/Format/Filter/v1_0_0.js b/lib/OpenLayers/Format/Filter/v1_0_0.js index 6024836fe7..507dfbd326 100644 --- a/lib/OpenLayers/Format/Filter/v1_0_0.js +++ b/lib/OpenLayers/Format/Filter/v1_0_0.js @@ -68,6 +68,17 @@ OpenLayers.Format.Filter.v1_0_0 = OpenLayers.Class( }); this.readChildNodes(node, filter); obj.filters.push(filter); + }, + "PropertyIsLike": function(node, obj) { + var filter = new OpenLayers.Filter.Comparison({ + type: OpenLayers.Filter.Comparison.LIKE + }); + this.readChildNodes(node, filter); + var wildCard = node.getAttribute("wildCard"); + var singleChar = node.getAttribute("singleChar"); + var esc = node.getAttribute("escape"); + filter.value2regex(wildCard, singleChar, esc); + obj.filters.push(filter); } }, OpenLayers.Format.Filter.v1.prototype.readers["ogc"]), "gml": OpenLayers.Format.GML.v2.prototype.readers["gml"], @@ -96,6 +107,18 @@ OpenLayers.Format.Filter.v1_0_0 = OpenLayers.Class( this.writeNode("Literal", filter.value, node); return node; }, + "PropertyIsLike": function(filter) { + var node = this.createElementNSPlus("ogc:PropertyIsLike", { + attributes: { + wildCard: "*", singleChar: ".", escape: "!" + } + }); + // no ogc:expression handling for now + this.writeNode("PropertyName", filter, node); + // convert regex string to ogc string + this.writeNode("Literal", filter.regex2value(), node); + return node; + }, "BBOX": function(filter) { var node = this.createElementNSPlus("ogc:BBOX"); this.writeNode("PropertyName", filter, node); diff --git a/lib/OpenLayers/Format/Filter/v1_1_0.js b/lib/OpenLayers/Format/Filter/v1_1_0.js index 1d0bfca30a..6010e0941d 100644 --- a/lib/OpenLayers/Format/Filter/v1_1_0.js +++ b/lib/OpenLayers/Format/Filter/v1_1_0.js @@ -78,6 +78,17 @@ OpenLayers.Format.Filter.v1_1_0 = OpenLayers.Class( }); this.readChildNodes(node, filter); obj.filters.push(filter); + }, + "PropertyIsLike": function(node, obj) { + var filter = new OpenLayers.Filter.Comparison({ + type: OpenLayers.Filter.Comparison.LIKE + }); + this.readChildNodes(node, filter); + var wildCard = node.getAttribute("wildCard"); + var singleChar = node.getAttribute("singleChar"); + var esc = node.getAttribute("escapeChar"); + filter.value2regex(wildCard, singleChar, esc); + obj.filters.push(filter); } }, OpenLayers.Format.Filter.v1.prototype.readers["ogc"]), "gml": OpenLayers.Format.GML.v3.prototype.readers["gml"], @@ -110,6 +121,18 @@ OpenLayers.Format.Filter.v1_1_0 = OpenLayers.Class( this.writeNode("Literal", filter.value, node); return node; }, + "PropertyIsLike": function(filter) { + var node = this.createElementNSPlus("ogc:PropertyIsLike", { + attributes: { + wildCard: "*", singleChar: ".", escapeChar: "!" + } + }); + // no ogc:expression handling for now + this.writeNode("PropertyName", filter, node); + // convert regex string to ogc string + this.writeNode("Literal", filter.regex2value(), node); + return node; + }, "BBOX": function(filter) { var node = this.createElementNSPlus("ogc:BBOX"); this.writeNode("PropertyName", filter, node); diff --git a/tests/Format/Filter/v1_1_0.html b/tests/Format/Filter/v1_1_0.html index 0fc479940f..796a903dfd 100644 --- a/tests/Format/Filter/v1_1_0.html +++ b/tests/Format/Filter/v1_1_0.html @@ -15,7 +15,7 @@ '1065512599' + '' + '' + - '' + + '' + 'cat' + '*dog.food!*good' + '' +