Mercurial > dive4elements > river
comparison artifacts/src/main/java/org/dive4elements/river/artifacts/model/FixingsFilterBuilder.java @ 8397:da67b2bca1c0
Fixing overview filter: Accept date range as UNIX time stamps, too.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Thu, 09 Oct 2014 11:57:17 +0200 |
parents | af13ceeba52a |
children | ae750e3fa9ea |
comparison
equal
deleted
inserted
replaced
8396:a201d475e50d | 8397:da67b2bca1c0 |
---|---|
9 package org.dive4elements.river.artifacts.model; | 9 package org.dive4elements.river.artifacts.model; |
10 | 10 |
11 import org.dive4elements.river.artifacts.model.FixingsOverview.AndFilter; | 11 import org.dive4elements.river.artifacts.model.FixingsOverview.AndFilter; |
12 import org.dive4elements.river.artifacts.model.FixingsOverview.DateFilter; | 12 import org.dive4elements.river.artifacts.model.FixingsOverview.DateFilter; |
13 import org.dive4elements.river.artifacts.model.FixingsOverview.DateRangeFilter; | 13 import org.dive4elements.river.artifacts.model.FixingsOverview.DateRangeFilter; |
14 | |
15 import org.dive4elements.river.artifacts.model.FixingsOverview.Fixing.Filter; | 14 import org.dive4elements.river.artifacts.model.FixingsOverview.Fixing.Filter; |
16 | |
17 import org.dive4elements.river.artifacts.model.FixingsOverview.IdFilter; | 15 import org.dive4elements.river.artifacts.model.FixingsOverview.IdFilter; |
18 import org.dive4elements.river.artifacts.model.FixingsOverview.IdsFilter; | 16 import org.dive4elements.river.artifacts.model.FixingsOverview.IdsFilter; |
19 import org.dive4elements.river.artifacts.model.FixingsOverview.KmFilter; | 17 import org.dive4elements.river.artifacts.model.FixingsOverview.KmFilter; |
20 import org.dive4elements.river.artifacts.model.FixingsOverview.NotFilter; | 18 import org.dive4elements.river.artifacts.model.FixingsOverview.NotFilter; |
21 import org.dive4elements.river.artifacts.model.FixingsOverview.OrFilter; | 19 import org.dive4elements.river.artifacts.model.FixingsOverview.OrFilter; |
22 import org.dive4elements.river.artifacts.model.FixingsOverview.SectorFilter; | 20 import org.dive4elements.river.artifacts.model.FixingsOverview.SectorFilter; |
23 import org.dive4elements.river.artifacts.model.FixingsOverview.SectorRangeFilter; | 21 import org.dive4elements.river.artifacts.model.FixingsOverview.SectorRangeFilter; |
24 | 22 |
25 import java.text.ParsePosition; | 23 import java.text.ParsePosition; |
26 import java.text.SimpleDateFormat; | 24 import java.text.SimpleDateFormat; |
27 | |
28 import java.util.ArrayList; | 25 import java.util.ArrayList; |
29 import java.util.Date; | 26 import java.util.Date; |
30 import java.util.List; | 27 import java.util.List; |
28 import java.util.regex.Matcher; | |
29 import java.util.regex.Pattern; | |
31 | 30 |
32 import org.apache.log4j.Logger; | 31 import org.apache.log4j.Logger; |
33 | |
34 import org.w3c.dom.Document; | 32 import org.w3c.dom.Document; |
35 import org.w3c.dom.Element; | 33 import org.w3c.dom.Element; |
36 import org.w3c.dom.Node; | 34 import org.w3c.dom.Node; |
37 import org.w3c.dom.NodeList; | 35 import org.w3c.dom.NodeList; |
38 | 36 |
39 public class FixingsFilterBuilder | 37 public class FixingsFilterBuilder |
40 { | 38 { |
41 private static Logger log = Logger.getLogger(FixingsFilterBuilder.class); | 39 private static Logger log = Logger.getLogger(FixingsFilterBuilder.class); |
40 | |
41 private static final Pattern IS_LONG = Pattern.compile("^\\s*(-?\\d+)\\s*$"); | |
42 | 42 |
43 protected Filter filter; | 43 protected Filter filter; |
44 protected Range range; | 44 protected Range range; |
45 | 45 |
46 protected Document document; | 46 protected Document document; |
129 default: return new AndFilter(filters); | 129 default: return new AndFilter(filters); |
130 } | 130 } |
131 } | 131 } |
132 | 132 |
133 protected static final Date parseDate(String text) { | 133 protected static final Date parseDate(String text) { |
134 Matcher m = IS_LONG.matcher(text); | |
135 if (m.matches()) { | |
136 return new Date(Long.valueOf(m.group(1))); | |
137 } | |
134 SimpleDateFormat format = | 138 SimpleDateFormat format = |
135 new SimpleDateFormat(FixingsOverview.DATE_FORMAT); | 139 new SimpleDateFormat(FixingsOverview.DATE_FORMAT); |
136 return format.parse(text, new ParsePosition(0)); | 140 return format.parse(text, new ParsePosition(0)); |
137 } | 141 } |
138 | 142 |