[Dive4elements-commits] [PATCH] Add missing classes for Floodmark, WMSFloodmarksArtifact and WMSJettiesArtifact
Wald Commits
scm-commit at wald.intevation.org
Thu Apr 4 11:00:59 CEST 2013
# HG changeset patch
# User Andre Heinecke <aheinecke at intevation.de>
# Date 1365066047 -7200
# Node ID 559a009b3d7282927ec860fbce5fce5428f3dd1f
# Parent 0e5c17c7cfc4ced2a5841b5355684e3a2dd42756
Add missing classes for Floodmark, WMSFloodmarksArtifact and WMSJettiesArtifact
diff -r 0e5c17c7cfc4 -r 559a009b3d72 flys-artifacts/src/main/java/de/intevation/flys/artifacts/WMSFloodmarksArtifact.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/WMSFloodmarksArtifact.java Thu Apr 04 11:00:47 2013 +0200
@@ -0,0 +1,159 @@
+package de.intevation.flys.artifacts;
+
+import java.util.List;
+
+import org.w3c.dom.Document;
+
+import org.apache.log4j.Logger;
+
+import com.vividsolutions.jts.geom.Envelope;
+
+import de.intevation.artifacts.ArtifactFactory;
+import de.intevation.artifacts.CallMeta;
+
+import de.intevation.artifactdatabase.state.DefaultOutput;
+import de.intevation.artifactdatabase.state.Facet;
+import de.intevation.artifactdatabase.state.State;
+
+import de.intevation.flys.model.River;
+import de.intevation.flys.model.Floodmark;
+
+import de.intevation.flys.artifacts.model.FacetTypes;
+import de.intevation.flys.artifacts.model.RiverFactory;
+import de.intevation.flys.utils.FLYSUtils;
+import de.intevation.flys.utils.GeometryUtils;
+
+
+public class WMSFloodmarksArtifact extends WMSDBArtifact {
+
+ public static final String NAME = "floodmarks";
+
+
+ private static final Logger logger =
+ Logger.getLogger(WMSFloodmarksArtifact.class);
+
+
+ @Override
+ public void setup(
+ String identifier,
+ ArtifactFactory factory,
+ Object context,
+ CallMeta callMeta,
+ Document data)
+ {
+ logger.debug("WMSFloodmarksArtifact.setup");
+
+ super.setup(identifier, factory, context, callMeta, data);
+ }
+
+
+ @Override
+ public String getName() {
+ return NAME;
+ }
+
+
+ @Override
+ public State getCurrentState(Object cc) {
+ State s = new FloodmarksState(this);
+
+ List<Facet> fs = getFacets(getCurrentStateId());
+
+ DefaultOutput o = new DefaultOutput(
+ "floodmap",
+ "floodmap",
+ "image/png",
+ fs,
+ "map");
+
+ s.getOutputs().add(o);
+
+ return s;
+ }
+
+
+ public static class FloodmarksState extends WMSDBState implements FacetTypes
+ {
+ private static final Logger logger =
+ Logger.getLogger(FloodmarksState.class);
+
+ protected int riverId;
+
+ public FloodmarksState(WMSDBArtifact artifact) {
+ super(artifact);
+ }
+
+ @Override
+ protected String getFacetType() {
+ return FLOODMAP_FLOODMARKS;
+ }
+
+ @Override
+ protected String getUrl() {
+ return FLYSUtils.getUserWMSUrl(artifact.identifier());
+ }
+
+ @Override
+ protected String getSrid() {
+ River river = RiverFactory.getRiver(getRiverId());
+ return FLYSUtils.getRiverSrid(river.getName());
+ }
+
+ @Override
+ protected Envelope getExtent(boolean reproject) {
+ String year = getIdPart(2);
+ List<Floodmark> floodmarks;
+ if (year != null) {
+ floodmarks = Floodmark.getFloodmarks(getRiverId(),
+ Integer.parseInt(year));
+ } else {
+ floodmarks = Floodmark.getFloodmarks(getRiverId());
+ }
+
+ Envelope max = null;
+
+ for (Floodmark f: floodmarks) {
+ Envelope env = f.getGeom().getEnvelopeInternal();
+
+ if (max == null) {
+ max = env;
+ continue;
+ }
+
+ max.expandToInclude(env);
+ }
+
+ return max != null && reproject
+ ? GeometryUtils.transform(max, getSrid())
+ : max;
+ }
+
+ @Override
+ protected String getFilter() {
+ String year = getIdPart(2);
+ if (year != null) {
+ return "river_id=" + String.valueOf(getRiverId()) +
+ " AND year=" + getIdPart(2);
+ }
+ return "river_id=" + String.valueOf(getRiverId());
+ }
+
+ @Override
+ protected String getDataString() {
+ String srid = getSrid();
+
+ if (FLYSUtils.isUsingOracle()) {
+ return "geom FROM flood_marks USING SRID " + srid;
+ }
+ else {
+ return "geom FROM flood_marks USING UNIQUE id USING SRID " + srid;
+ }
+ }
+
+ @Override
+ protected String getGeometryType() {
+ return "POINT";
+ }
+ } // end of WMSKmState
+}
+// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :
diff -r 0e5c17c7cfc4 -r 559a009b3d72 flys-artifacts/src/main/java/de/intevation/flys/artifacts/WMSJettiesArtifact.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/WMSJettiesArtifact.java Thu Apr 04 11:00:47 2013 +0200
@@ -0,0 +1,156 @@
+package de.intevation.flys.artifacts;
+
+import java.util.List;
+
+import org.w3c.dom.Document;
+
+import org.apache.log4j.Logger;
+
+import com.vividsolutions.jts.geom.Envelope;
+
+import de.intevation.artifacts.ArtifactFactory;
+import de.intevation.artifacts.CallMeta;
+
+import de.intevation.artifactdatabase.state.DefaultOutput;
+import de.intevation.artifactdatabase.state.Facet;
+import de.intevation.artifactdatabase.state.State;
+
+import de.intevation.flys.model.River;
+import de.intevation.flys.model.Jetty;
+
+import de.intevation.flys.artifacts.model.FacetTypes;
+import de.intevation.flys.artifacts.model.RiverFactory;
+import de.intevation.flys.utils.FLYSUtils;
+import de.intevation.flys.utils.GeometryUtils;
+
+
+public class WMSJettiesArtifact extends WMSDBArtifact {
+
+ public static final String NAME = "jetties";
+
+
+ private static final Logger logger =
+ Logger.getLogger(WMSJettiesArtifact.class);
+
+
+ @Override
+ public void setup(
+ String identifier,
+ ArtifactFactory factory,
+ Object context,
+ CallMeta callMeta,
+ Document data)
+ {
+ logger.debug("WMSJettiesArtifact.setup");
+
+ super.setup(identifier, factory, context, callMeta, data);
+ }
+
+
+ @Override
+ public String getName() {
+ return NAME;
+ }
+
+
+ @Override
+ public State getCurrentState(Object cc) {
+ State s = new JettiesState(this);
+
+ List<Facet> fs = getFacets(getCurrentStateId());
+
+ DefaultOutput o = new DefaultOutput(
+ "floodmap",
+ "floodmap",
+ "image/png",
+ fs,
+ "map");
+
+ s.getOutputs().add(o);
+
+ return s;
+ }
+
+
+ public static class JettiesState extends WMSDBState implements FacetTypes
+ {
+ private static final Logger logger =
+ Logger.getLogger(JettiesState.class);
+
+ protected int riverId;
+
+ public JettiesState(WMSDBArtifact artifact) {
+ super(artifact);
+ riverId = 0;
+ }
+
+ @Override
+ protected String getFacetType() {
+ return FLOODMAP_JETTIES;
+ }
+
+ @Override
+ protected String getUrl() {
+ return FLYSUtils.getUserWMSUrl(artifact.identifier());
+ }
+
+ @Override
+ protected String getSrid() {
+ River river = RiverFactory.getRiver(getRiverId());
+ return FLYSUtils.getRiverSrid(river.getName());
+ }
+
+ @Override
+ protected Envelope getExtent(boolean reproject) {
+ List<Jetty> jetties;
+ String kind = getIdPart(2);
+
+ jetties = Jetty.getJetties(getRiverId(), Integer.parseInt(kind));
+
+ Envelope max = null;
+
+ for (Jetty b: jetties) {
+ Envelope env = b.getGeom().getEnvelopeInternal();
+
+ if (max == null) {
+ max = env;
+ continue;
+ }
+
+ max.expandToInclude(env);
+ }
+
+ return max != null && reproject
+ ? GeometryUtils.transform(max, getSrid())
+ : max;
+ }
+
+ @Override
+ protected String getFilter() {
+ // The expected id string is:
+ // river_id;layer-name;kind
+
+ String kind = getIdPart(2);
+ return "river_id=" + String.valueOf(getRiverId()) +
+ " AND kind_id=" + kind;
+ }
+
+ @Override
+ protected String getDataString() {
+ String srid = getSrid();
+
+ if (FLYSUtils.isUsingOracle()) {
+ return "geom FROM jetties USING SRID " + srid;
+ }
+ else {
+ return "geom FROM jetties USING UNIQUE id USING SRID " + srid;
+ }
+ }
+
+ @Override
+ protected String getGeometryType() {
+ return "POINT";
+ }
+ } // end of WMSKmState
+}
+// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :
diff -r 0e5c17c7cfc4 -r 559a009b3d72 flys-backend/src/main/java/de/intevation/flys/model/Floodmark.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/flys-backend/src/main/java/de/intevation/flys/model/Floodmark.java Thu Apr 04 11:00:47 2013 +0200
@@ -0,0 +1,129 @@
+package de.intevation.flys.model;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.List;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.OneToOne;
+import javax.persistence.Table;
+
+import org.hibernate.Session;
+import org.hibernate.Query;
+import org.hibernate.annotations.Type;
+
+import com.vividsolutions.jts.geom.Point;
+
+import de.intevation.flys.backend.SessionHolder;
+
+
+ at Entity
+ at Table(name = "flood_marks")
+public class Floodmark
+implements Serializable
+{
+ private Integer id;
+ private River river;
+ private Integer z;
+ private Integer year;
+ private BigDecimal km;
+ private Point geom;
+
+ public Floodmark() {
+ }
+
+
+ @Id
+ @Column(name = "id")
+ public Integer getId() {
+ return id;
+ }
+
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+
+ @OneToOne
+ @JoinColumn(name = "river_id")
+ public River getRiver() {
+ return river;
+ }
+
+
+ public void setRiver(River river) {
+ this.river = river;
+ }
+
+
+ @Column(name = "z")
+ public Integer getZ() {
+ return z;
+ }
+
+
+ public void setZ(Integer z) {
+ this.z = z;
+ }
+
+
+ @Column(name = "year")
+ public Integer getYear() {
+ return year;
+ }
+
+
+ public void setYear(Integer year) {
+ this.year = year;
+ }
+
+
+ @Column(name = "km")
+ public BigDecimal getKm() {
+ return km;
+ }
+
+
+ public void setKm(BigDecimal km) {
+ this.km = km;
+ }
+
+
+ @Column(name = "geom")
+ @Type(type = "org.hibernatespatial.GeometryUserType")
+ public Point getGeom() {
+ return geom;
+ }
+
+
+ public void setGeom(Point geom) {
+ this.geom = geom;
+ }
+
+ public static List<Floodmark> getFloodmarks(int riverId) {
+ Session session = SessionHolder.HOLDER.get();
+
+ Query query = session.createQuery(
+ "from Floodmark where river.id =:river_id");
+ query.setParameter("river_id", riverId);
+
+ return query.list();
+ }
+
+ public static List<Floodmark> getFloodmarks(int riverId, int year) {
+ Session session = SessionHolder.HOLDER.get();
+
+ Query query = session.createQuery(
+ "from Floodmark where river.id =:river_id and year = :year");
+ query.setParameter("river_id", riverId);
+ query.setParameter("year", year);
+
+ return query.list();
+ }
+}
+// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :
+
More information about the Dive4elements-commits
mailing list