diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/WMSBuildingsArtifact.java @ 5404:08262e0ce57a

Add buildings with kinds to datacage
author Andre Heinecke <aheinecke@intevation.de>
date Mon, 25 Mar 2013 15:02:04 +0100
parents a2735a4bf75e
children
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/WMSBuildingsArtifact.java	Mon Mar 25 15:01:16 2013 +0100
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/WMSBuildingsArtifact.java	Mon Mar 25 15:02:04 2013 +0100
@@ -102,8 +102,14 @@
 
         @Override
         protected Envelope getExtent(boolean reproject) {
-            List<Building> buildings =
-                Building.getBuildings(getRiverId(), getName());
+            List<Building> buildings;
+            String kind = getIdPart(2);
+
+            if (kind != null) {
+                buildings = Building.getBuildings(getRiverId(), Integer.parseInt(kind));
+            } else {
+                buildings = Building.getBuildings(getRiverId(), name);
+            }
 
             Envelope max = null;
 
@@ -125,6 +131,15 @@
 
         @Override
         protected String getFilter() {
+            // The expected id string is:
+            // river_id;layer-name;kind
+
+            String kind = getIdPart(2);
+            if (kind != null) {
+                // If kind is provided we filter by kind
+                return "river_id=" + String.valueOf(getRiverId()) +
+                    " AND kind_id=" + kind;
+            }
             return "river_id=" + String.valueOf(getRiverId()) +
                 " AND name='" + getName() + "'";
         }

http://dive4elements.wald.intevation.org