comparison flys-backend/src/main/java/de/intevation/flys/backend/SpatialInfo.java @ 1230:e2deda3b77a7

Introduced support for FLYS spatial data. flys-backend/trunk@2507 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Thu, 18 Aug 2011 15:03:20 +0000
parents
children 22eea1c9e907
comparison
equal deleted inserted replaced
1229:8b12b338a3f6 1230:e2deda3b77a7
1 package de.intevation.flys.backend;
2
3 import java.util.List;
4
5 import org.apache.log4j.Logger;
6
7 import org.hibernate.Query;
8 import org.hibernate.Session;
9
10 import com.vividsolutions.jts.geom.LineString;
11
12 import de.intevation.flys.backend.SessionFactoryProvider;
13 import de.intevation.flys.model.Building;
14 import de.intevation.flys.model.CrossSectionTrack;
15 import de.intevation.flys.model.Fixpoint;
16 import de.intevation.flys.model.Line;
17 import de.intevation.flys.model.River;
18 import de.intevation.flys.model.RiverAxis;
19
20
21 public class SpatialInfo {
22
23 private static Logger logger = Logger.getLogger(SpatialInfo.class);
24
25 protected static String RIVERNAME = System.getProperty(
26 "flys.backend.spatial.river", "Saar");
27
28 protected Session session;
29
30
31 public static void main(String[] args) {
32 logger.info("Start SpatialInfo application.");
33
34 SpatialInfo spatial = null;
35
36 try {
37 spatial = new SpatialInfo();
38
39 River river = spatial.getRiver(RIVERNAME);
40 if (river == null) {
41 logger.warn("Could not find river '" + RIVERNAME + "'!");
42 return;
43 }
44
45 logger.info("Spatial information of River '" + RIVERNAME + "'");
46 spatial.doRiverAxisInfo(river);
47 spatial.doCrossSectionTracksInfo(river);
48 spatial.doLinesInfo(river);
49 spatial.doBuildingsInfo(river);
50 spatial.doFixpointsInfo(river);
51 }
52 finally {
53 if (spatial != null) {
54 spatial.close();
55 }
56 }
57
58 logger.info("Finish SpatialInfo application.");
59 }
60
61
62 public SpatialInfo() {
63 session = SessionFactoryProvider
64 .createSessionFactory()
65 .openSession();
66 }
67
68
69 public void close() {
70 session.close();
71 }
72
73
74 protected River getRiver(String rivername) {
75 Query query = session.createQuery(
76 "from River where name =:name");
77 query.setParameter("name", rivername);
78
79 List<River> list = query.list();
80
81 if (list == null || list.size() == 0) {
82 logger.warn("No river '" + rivername + "' found!");
83 return null;
84 }
85
86 return list.get(0);
87 }
88
89
90 protected void doRiverAxisInfo(River river) {
91 Query query = session.createQuery(
92 "from RiverAxis where river =:river");
93 query.setParameter("river", river);
94
95 List<RiverAxis> list = query.list();
96
97 if (list == null || list.size() == 0) {
98 logger.warn("No Riveraxis for '" + river.getName() + "' found!");
99 return;
100 }
101
102 RiverAxis axis = list.get(0);
103 if (axis != null) {
104 LineString ls = axis.getGeom();
105 logger.info("River axis is " + ls.getLength() + " long.");
106 }
107 else {
108 logger.warn("River has no RiverAxis.");
109 }
110 }
111
112
113 protected void doCrossSectionTracksInfo(River river) {
114 Query query = session.createQuery(
115 "from CrossSectionTrack where river =:river");
116 query.setParameter("river", river);
117
118 List<CrossSectionTrack> list = query.list();
119
120 if (list == null || list.size() == 0) {
121 logger.warn("No CrossSectionTracks for '" + river.getName() + "' found!");
122 return;
123 }
124 else {
125 logger.info("River contains " + list.size() + " CrossSectionTracks.");
126 }
127 }
128
129
130 protected void doLinesInfo(River river) {
131 Query query = session.createQuery(
132 "from Line where river =:river");
133 query.setParameter("river", river);
134
135 List<Line> list = query.list();
136
137 if (list == null || list.size() == 0) {
138 logger.warn("No Lines for '" + river.getName() + "' found!");
139 return;
140 }
141 else {
142 logger.info("River contains " + list.size() + " Lines.");
143 }
144 }
145
146
147 protected void doBuildingsInfo(River river) {
148 Query query = session.createQuery(
149 "from Building where river =:river");
150 query.setParameter("river", river);
151
152 List<Building> list = query.list();
153
154 if (list == null || list.size() == 0) {
155 logger.warn("No Buildings for '" + river.getName() + "' found!");
156 return;
157 }
158 else {
159 logger.info("River contains " + list.size() + " Buildings.");
160 }
161 }
162
163
164 protected void doFixpointsInfo(River river) {
165 Query query = session.createQuery(
166 "from Fixpoint where river =:river");
167 query.setParameter("river", river);
168
169 List<Fixpoint> list = query.list();
170
171 if (list == null || list.size() == 0) {
172 logger.warn("No Fixpoints for '" + river.getName() + "' found!");
173 return;
174 }
175 else {
176 logger.info("River contains " + list.size() + " Fixpoints.");
177 }
178 }
179 }
180 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org