From: Surridge, C. S <Chr...@ti...> - 2005-03-25 15:29:28
|
The data I'm using includes a timestamp along with the geometry and = other fields. I wanted to select features within a time range, so I = tried using the BetweenFilter with a couple LiteralExpressions, but = LiteralExpressionImpl only supports String, Double, and Integer. Is = there something other than LiteralExpression I should use for temporal = values, or are they not supported yet? Thanks, --chris |
From: Ian T. <ia...@ge...> - 2005-03-30 10:46:48
Attachments:
TimeFilter.java
|
At 16:29 25/03/2005, Surridge, Christopher S wrote: >The data I'm using includes a timestamp along with the geometry and other >fields. I wanted to select features within a time range, so I tried using >the BetweenFilter with a couple LiteralExpressions, but >LiteralExpressionImpl only supports String, Double, and Integer. Is there >something other than LiteralExpression I should use for temporal values, >or are they not supported yet? The easiest way to handle this is to write your own time filter. I've attached the one I use which only works with my database connection code. This contains the following visit method which adds the bits and pieces needed for the SQL query on the data column. public void visit(TimeFilter filter){ LOGGER.fine("visiting a TimeFilter"); try{ Expression left = filter.getLeft(); Expression right = filter.getRight(); if ((left != null) && (right != null)){ //out.write("duration_m.hrs_valid("); right.accept(this); out.write(".g_end_date.g_year ="); left.accept(this); //out.write(","); //out.write(")='TRUE'"); }else{ LOGGER.warning("Invalid filter. Cannot have a Time filter " + "with only one expression."); LOGGER.fine("left "+left+"\nright "+right+"\n"); } }catch (IOException ioe){ LOGGER.warning("error in visit TimeFilter:\n"+ioe); } } Hope this helps Ian |