Hello Mauricio,
I checked the patch in FilterToCQL class, and I noticed an issue in the
code.
In the method
public Object visit(PropertyIsGreaterThanOrEqualTo filter, Object extraData)
{
LOGGER.finer("exporting PropertyIsLessThanOrEqualTo");
StringBuffer output = asStringBuffer(extraData);
Object expr1 = filter.getExpression1();
if( expr1 instanceof PropertyName){
PropertyName propertyName = (PropertyName) filter.getExpression1();
propertyName.accept(this, output);
output.append(" >= ");
filter.getExpression2().accept(this, output);
}
else {
PropertyName propertyName = (PropertyName) filter.getExpression2();
propertyName.accept(this, output);
output.append(" >= ");
filter.getExpression1().accept(this, output);
}
return output;
}
In the else statement the comparison operator is not ">=" but "<=".
The " output.append(" >= ");" has to be repalced with
"output.append(" <= ");"
I can demonstrate this with an example: let say the method is called with
this filter : [ Tue Oct 10 01:30:00 CEST 2006 <= dateAttr ]
With your code, the output variable will contain
dateAttr <= 2006-10-10T01:30:00Z which is wrong.
There is the same issue in the method:
public Object visit(PropertyIsLessThanOrEqualTo filter, Object extraData)
{
LOGGER.finer("exporting PropertyIsLessThanOrEqualTo");
StringBuffer output = asStringBuffer(extraData);
Object expr1 = filter.getExpression1();
if( expr1 instanceof PropertyName){
PropertyName propertyName = (PropertyName) filter.getExpression1();
propertyName.accept(this, output);
output.append(" <= ");
filter.getExpression2().accept(this, output);
}
else {
PropertyName propertyName = (PropertyName) filter.getExpression2();
propertyName.accept(this, output);
output.append(" <= ");
filter.getExpression1().accept(this, output);
}
return output;
}
In this method, in the else statement,
the "output.append(" <= ");" has to be replaced with
"output.append(" >= ");"
Best regards
Nicolas
________________________________________
De : LECARTNicolas - MSY
Envoyé : lundi 20 décembre 2010 13:18
À : 'Mauricio Pazos'; [email protected]
Objet : RE: [Geotools-gt2-users] DURING predicate and BEFORE predicate
parsing
Thank you Mauricio,
I will check the method ang get back to you.
Best regards
Nicolas
________________________________________
De : Mauricio Pazos [mailto:[email protected]]
Envoyé : lundi 20 décembre 2010 12:56
À : [email protected]
Objet : Re: [Geotools-gt2-users] DURING predicate and BEFORE predicate
parsing
On Friday 17 December 2010 09:43:20 pm Mauricio Pazos wrote:
> Good!, I am going to add this patch in trunk. Your collaboration is
> welcome.
>
>
> all the best
I have added the unit test for FilterToCQL. FilterToCQL was fixed for
"after" and "before" sentences.
The "during" sentence require more work. I have added a FIXME where I think
is required to extend the code
Have look in the method
public Object visit(And filter, Object extraData)
in the class
http://svn.osgeo.org/geotools/trunk/modules/library/cql/src/main/java/org/ge
otools/filter/text/cql2/FilterToCQL.java
cheers
--
Mauricio Pazos
www.axios.es
------------------------------------------------------------------------------
Lotusphere 2011
Register now for Lotusphere 2011 and learn how
to connect the dots, take your collaborative environment
to the next level, and enter the era of Social Business.
http://p.sf.net/sfu/lotusphere-d2d
_______________________________________________
Geotools-gt2-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users