# HG changeset patch # User Sascha L. Teichmann # Date 1338392303 0 # Node ID 1b1af15974018c020f81faab30711bbb95c4672d # Parent 9aa1d770da4aba1263015c1b962cf86b39165f6f FixA: Added new km filter flys-artifacts/trunk@4562 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r 9aa1d770da4a -r 1b1af1597401 flys-artifacts/ChangeLog --- a/flys-artifacts/ChangeLog Wed May 30 15:00:18 2012 +0000 +++ b/flys-artifacts/ChangeLog Wed May 30 15:38:23 2012 +0000 @@ -1,3 +1,12 @@ +2012-05-30 Sascha L. Teichmann + + * src/main/java/de/intevation/flys/artifacts/model/FixingsOverview.java: + Added a km filter to find columns with touches a given km. + + * src/main/java/de/intevation/flys/artifacts/model/FixingsFilterBuilder.java: + Expose the new km filter to the fixing overview service. Syntax: + + 2012-05-30 Sascha L. Teichmann Better persistence model for delta w/t calculations. Supports diff -r 9aa1d770da4a -r 1b1af1597401 flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/FixingsFilterBuilder.java --- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/FixingsFilterBuilder.java Wed May 30 15:00:18 2012 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/FixingsFilterBuilder.java Wed May 30 15:38:23 2012 +0000 @@ -7,6 +7,7 @@ import de.intevation.flys.artifacts.model.FixingsOverview.Fixing.Filter; import de.intevation.flys.artifacts.model.FixingsOverview.IdFilter; +import de.intevation.flys.artifacts.model.FixingsOverview.KmFilter; import de.intevation.flys.artifacts.model.FixingsOverview.NotFilter; import de.intevation.flys.artifacts.model.FixingsOverview.OrFilter; import de.intevation.flys.artifacts.model.FixingsOverview.Range; @@ -197,6 +198,17 @@ } } } + else if ("position".equals(name)) { + String km = element.getAttribute("km").trim(); + if (km.length() > 0) { + try { + filters.add(new KmFilter(Double.parseDouble(km))); + } + catch (NumberFormatException nfe) { + log.warn(nfe); + } + } + } } return filters; diff -r 9aa1d770da4a -r 1b1af1597401 flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/FixingsOverview.java --- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/FixingsOverview.java Wed May 30 15:00:18 2012 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/FixingsOverview.java Wed May 30 15:38:23 2012 +0000 @@ -877,6 +877,25 @@ } } // class SectorRangeFilter + public static class KmFilter implements Fixing.Filter { + + protected double km; + + public KmFilter(double km) { + this.km = km; + } + + @Override + public boolean accept(Fixing.Column column) { + for (SectorRange s: column.getSectors()) { + if (s.inside(km)) { + return true; + } + } + return false; + } + } // class KmFilter + public void generateOverview(Document document) { generateOverview(document, FULL_EXTENT, ACCEPT); }