Mercurial > dive4elements > river
view flys-backend/ChangeLog @ 2346:f834b411ca57
Added db table, model class and importer stuff for units.
flys-backend/trunk@2877 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Tue, 04 Oct 2011 06:47:00 +0000 |
parents | c3ea91aee989 |
children | 0acf28a3d28a |
line wrap: on
line source
2011-10-04 Ingo Weinzierl <ingo@intevation.de> * doc/schema/postgresql.sql: Added a "units" table. * src/main/java/de/intevation/flys/model/Unit.java: New. Model class that represents a unit. * src/main/java/de/intevation/flys/importer/ImportUnit.java: New. Model class that is used to import units. * src/main/java/de/intevation/flys/model/Wst.java: A Wst stores a Unit which references "units" table now. * src/main/java/de/intevation/flys/importer/parsers/WstParser.java: Set units which have already been parsed on Wsts. * src/main/java/de/intevation/flys/importer/ImportWst.java: Added setter method for Units and call storeDependencies() for ImportUnits. * src/main/java/de/intevation/flys/backend/SessionFactoryProvider.java: Registered new model class Unit. 2011-10-04 Ingo Weinzierl <ingo@intevation.de> flys/issue333 (W-INFO / Berechnung Wasserspiegellage, Zuordnung Bezugspegel) * src/main/java/de/intevation/flys/model/River.java: Modified determination of gauge based on a km range. River.determineGauge(double, double) will now return the gauge which matches the start km. 2011-09-28 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/utils/StringUtil.java: (wWrap): New method (extracted from WaterlevelSelectState). 2011-09-28 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/utils/StringUtil.java: (unbracket): New method (extracted from WaterlevelSelectState). 2011-09-27 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/model/CrossSectionLine.java: Moved some logic from cross section demo app to this model. 2011-09-26 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/model/CrossSectionTrack.java: Added new function that the nearest CrossSectionTrack of a river to a given kilometer. 2011-09-23 Bjoern Schilberg <bjoern@intevation.de> * doc/schema/postgresql-spatial.sql: Added missing river_axes_km schema. * doc/schema/oracle-spatial.sql: Added missing dem and lines schema. 2011-09-22 Bjoern Schilberg <bjoern@intevation.de> * doc/schema/postgresql-spatial.sql, doc/schema/oracle-spatial.sql: Harmonized oracle and postgresql spatial schema. 2011-09-22 Bjoern Schilberg <bjoern@intevation.de> * doc/schema/oracle-spatial.sql: Harmonized Extent for Saar and Mosel. Some cleanups. 2011-09-22 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/backend/SessionFactoryProvider.java: Added the possibility to enable JMX (/MBean) support for hibernate. By default, this support is NOT enabled. To enable JMX support for hibernate, set the system property "flys.backend.enablejmx=true". 2011-09-20 Bjoern Schilberg <bjoern@intevation.de> * doc/schema/oracle_create_user.sql: Added right to create views. 2011-09-20 Bjoern Schilberg <bjoern@intevation.de> * doc/schema/oracle-spatial.sql: Generalized oracle spatial schema. 2011-09-19 Ingo Weinzierl <ingo@intevation.de> Tagged RELEASE 2.5 * Changes: Prepared changes for release. 2011-09-16 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/model/DGM.java: Added function to query a DGM by Id. 2011-09-15 Bjoern Schilberg <bjoern@intevation.de> * pom.xml: Removed oracle dependency. 2011-09-15 Bjoern Schilberg <bjoern@intevation.de> * doc/schema/oracle.sql: Added inital oracle schema. 2011-09-14 Bjoern Schilberg <bjoern@intevation.de> * doc/schema/oracle-spatial_idx.sql: Added inital oracle-spatial_idx.sql script. 2011-09-14 Bjoern Schilberg <bjoern@intevation.de> * doc/schema/oracle-spatial.sql: Deactivated spatial indexes. 2011-09-14 Bjoern Schilberg <bjoern@intevation.de> * doc/schema/oracle_create_user.sql: Added inital oracle_create_user.sql script. 2011-09-14 Bjoern Schilberg <bjoern@intevation.de> * doc/schema/oracle-spatial.sql: Added schema floodplain. 2011-09-14 Bjoern Schilberg <bjoern@intevation.de> * doc/schema/oracle-spatial.sql: Added schema hws. 2011-09-14 Bjoern Schilberg <bjoern@intevation.de> * doc/schema/oracle-spatial.sql: Added schema cross_section_tracks. 2011-09-14 Bjoern Schilberg <bjoern@intevation.de> * doc/schema/oracle-spatial.sql: Added schema river_axes. 2011-09-14 Bjoern Schilberg <bjoern@intevation.de> * doc/schema/oracle-spatial.sql: Added schema fixpoints. 2011-09-14 Bjoern Schilberg <bjoern@intevation.de> * doc/schema/oracle-spatial.sql: Added schema buildings. 2011-09-14 Bjoern Schilberg <bjoern@intevation.de> * doc/schema/oracle-spatial.sql: Fixed table river_axes_km. 2011-09-13 Bjoern Schilberg <bjoern@intevation.de> * doc/schema/oracle-spatial.sql: Added initial oracle schemas. 2011-09-12 Bjoern Schilberg <bjoern@intevation.de> * doc/schema/postgresql-spatial.sql: Added initial schemas for Hydrologie/Einzugsgebiete, Hydrologie/HW-Schutzanlagen, Hydrologie/Hydr. Grenzen/Linien, BfG/hauptoeff_*.shp, BfG/MNQ-*.shp, BfG/modellgrenze*.shp, BfG/uferlinie.shp, BfG/vorland_*.shp, Hydrologie/Streckendaten, Hydrologie/UeSG/Berechnung, Hydrologie/UeSG/Messung 2011-09-02 Ingo Weinzierl <ingo@intevation.de> * doc/schema/postgresql-spatial.sql: Removed SERIALs from schema. Auto-Increment is realized through SERIALs now. * src/main/java/de/intevation/flys/model/DGM.java: The table for dem has been renamed to 'dem' (before 'dgm'). 2011-09-01 Hans Plum <hans@intevation.de> * doc/schema/postgresql-spatial.sql: Hint for unifying table names: dgm -> dem 2011-09-01 Hans Plum <hans@intevation.de> * doc/schema/postgresql-spatial.sql: Added mappings to existing data in file system (based on river Saar); added TODOs for missing tables/mappings 2011-08-31 Ingo Weinzierl <ingo@intevation.de> * doc/schema/postgresql-spatial.sql: New relation for floodplains (german "Talaue"). * src/main/java/de/intevation/flys/model/Floodplain.java: New. Model class that represents a floodplain. * src/main/java/de/intevation/flys/backend/SessionFactoryProvider.java: Registered the Floodplain mapping. 2011-08-31 Ingo Weinzierl <ingo@intevation.de> * doc/schema/postgresql-spatial.sql: Added a relation for DGMs. Note, that no data of the DGM is stored in this relation, but only the file path to the DGM file. * src/main/java/de/intevation/flys/model/DGM.java: New. This class provides information for a DGM (km range and file path). * src/main/java/de/intevation/flys/backend/SessionFactoryProvider.java: Registered the DGM. 2011-08-30 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/model/CrossSectionTrack.java: New static function to retrieve all CrossSectionTracks of a specific river. 2011-08-25 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/utils/FileTools.java: Moved to artifacts-common module. * src/main/java/de/intevation/flys/importer/parsers/PegelGltParser.java, src/main/java/de/intevation/flys/importer/parsers/PRFParser.java, src/main/java/de/intevation/flys/importer/parsers/HYKParser.java, src/main/java/de/intevation/flys/importer/parsers/AnnotationsParser.java, src/main/java/de/intevation/flys/importer/parsers/InfoGewParser.java, src/main/java/de/intevation/flys/importer/ImportRiver.java, src/main/java/de/intevation/flys/importer/ImportGauge.java: Adjusted imports of FileTools. 2011-08-25 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/model/Gauge.java (getMainValues) (setMainValues): New method and mapping to get/set MainValues of a Gauge. Essentially developed by Sascha L. Teichmann. 2011-08-22 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/backend/SessionFactoryProvider.java: Reverted the default db dialect to PostgreSQL - this has been changed to PostGIS by accident. Configure the dialect "org.hibernatespatial.postgis.PostgisDialect" to use the PostGIS stuff. 2011-08-22 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/model/RiverAxis.java: Added a function that returns the RiverAxis for a given River. * src/main/java/de/intevation/flys/backend/SpatialInfo.java: Use the new function of RiverAxis to retrieve the RiverAxis. 2011-08-18 Ingo Weinzierl <ingo@intevation.de> * doc/schema/postgresql-spatial.sql: The PostGIS database schema for FLYS spatial data. * src/main/java/de/intevation/flys/model/CrossSectionTrack.java, src/main/java/de/intevation/flys/model/RiverAxis.java, src/main/java/de/intevation/flys/model/Line.java, src/main/java/de/intevation/flys/model/Building.java, src/main/java/de/intevation/flys/model/Fixpoint.java: Model classes that represent FLYS spatial data. * src/main/java/de/intevation/flys/backend/SessionFactoryProvider.java: Registered model classes. * pom.xml: Added dependencies to HibernateSpatial and PostGIS. * src/main/java/de/intevation/flys/backend/SpatialInfo.java, contrib/spatial-info.sh: A small demo application that prints out some information about spatial data of specific rivers. Modify the system property -Dflys.backend.spatial.river to get information of a river of your choice. 2011-07-31 Sascha L. Teichmann <sascha.teichmann@intevation.de> Re-enabled Hibernate schema dumps. * src/main/java/de/intevation/flys/App.java: Removed old code and use new SessionFactoryProvider infrastructure. * src/main/java/de/intevation/flys/backend/SessionFactoryProvider.java: Added methods to create db configurations without opening them. Useful for introspection only purposes. 2011-07-31 Sascha L. Teichmann <sascha.teichmann@intevation.de> * pom.xml: Bumped Apache DBCP up to 1.4 to use the same version as artifact database. 2011-07-28 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/ImporterSession.java: Make use of the LRU cache from artifacts common. 2011-07-18 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/schema/postgresql.sql: Added missing foreign key contraint on hyks table. To update existing databases: ALTER TABLE hyks ADD CONSTRAINT hyks_river_id_fkey FOREIGN KEY (river_id) REFERENCES rivers(id); 2011-07-18 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/parsers/HYKParser.java: Check if zone coordinates in HYKs are swapped and warn the user. 2011-07-18 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/model/HYK.java src/main/java/de/intevation/flys/importer/parsers/HYKParser.java, src/main/java/de/intevation/flys/importer/ImportHYKFormation.java, src/main/java/de/intevation/flys/importer/ImportHYKEntry.java, src/main/java/de/intevation/flys/importer/ImportHYK.java: Various small fixes and some extra logging. 2011-07-18 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/Config.java: New. Central singleton to configure the Importer. Uses system properties by now: flys.backend.importer.dry.run: boolean default false. true: don't write to database. flys.backend.importer.annotation.types: String default unset. Filename of annotation type classifications. flys.backend.importer.skip.gauges: boolean default: false. true: don't parse/store *.glt, *.sta files flys.backend.importer.skip.annotations: boolean default: false. true: don't parse/store *.km files flys.backend.importer.skip.prfs: boolean default: false. true: don't parse/store *.prf files flys.backend.importer.skip.hyks: boolean default: false. true: don't parse/store *.hyk files flys.backend.importer.skip.wst: boolean default: false. true: don't parse/store river wst files flys.backend.importer.skip.extra.wsts: boolean default: false. true: don't parse/store extra *.zus, *.wst files flys.backend.importer.skip.fixations: boolean default: false. true: don't parse/store fixation *.wst files flys.backend.importer.skip.official.lines: boolean default: false. true: don't parse/store 'amtliche Linien' *.wst files flys.backend.importer.skip.flood.water: boolean default: false. true: don't parse/store 'HW-Marken' *.wst files flys.backend.importer.skip.flood.protection: boolean default: false. true: don't parse/store 'HW-Schutzanlagen' *.wst files 2011-07-18 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/model/HYKEntry.java: Fixed OrderBy clause. 2011-07-18 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/ImportHYKFormation.java, src/main/java/de/intevation/flys/importer/ImportHYKFlowZone.java, src/main/java/de/intevation/flys/importer/ImportHYKEntry.java, src/main/java/de/intevation/flys/importer/ImportRiver.java, src/main/java/de/intevation/flys/importer/ImportHYK.java: Store HYK data structures to database. Needs testing. 2011-07-18 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/ImportRiver.java: Parse the HYKs from the importer. TODO: Store them in database. 2011-07-18 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/parsers/HYKParser.java: Create data structures while parsing. * src/main/java/de/intevation/flys/importer/ImportHYKFormation.java, src/main/java/de/intevation/flys/importer/ImportHYK.java: Added getters/setters to ease model wiring. 2011-07-17 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/ImportHYKFormation.java, src/main/java/de/intevation/flys/importer/ImportHYKFlowZone.java, src/main/java/de/intevation/flys/importer/ImportHYKEntry.java, src/main/java/de/intevation/flys/importer/ImportHYK.java: New. Importer models for HYKs. 2011-07-17 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/schema/postgresql.sql: Each entry in a HYK can have an optional 'Peilungsjahr' (measure) not only the whole HYK. To update existing databases: BEGIN; ALTER TABLE hyks DROP COLUMN measure; ALTER TABLE hyk_entries ADD COLUMN measure TIMESTAMP; COMMIT; * src/main/java/de/intevation/flys/model/HYKEntry.java, src/main/java/de/intevation/flys/model/HYK.java: Adjusted Hibernate models. 2011-07-17 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/parsers/HYKParser.java: Added callback mechanism and recursive file search like in the PRF parser. All BfG-HYK files seem to parse correctly now. TODO: Build the data structures. * src/main/java/de/intevation/flys/importer/parsers/PRFParser.java: Added x.canRead() before accepting files for parsing. 2011-07-15 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/parsers/HYKParser.java: Initial version of the HYK parser. Not ready, yet. * src/main/java/de/intevation/flys/importer/ImportHYKFlowZoneType.java: Importer model for HYK flow zone types. 2011-07-15 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/schema/postgresql.sql: Argh! Added distance_{vl|hf|vr} to wrong table. To update existing databases: BEGIN; ALTER TABLE hyk_entries DROP COLUMN distance_vl; ALTER TABLE hyk_entries DROP COLUMN distance_hf; ALTER TABLE hyk_entries DROP COLUMN distance_vr; ALTER TABLE hyk_formations ADD COLUMN distance_vl NUMERIC NOT NULL; ALTER TABLE hyk_formations ADD COLUMN distance_hf NUMERIC NOT NULL; ALTER TABLE hyk_formations ADD COLUMN distance_vr NUMERIC NOT NULL; COMMIT; * src/main/java/de/intevation/flys/model/HYKFormation.java, src/main/java/de/intevation/flys/model/HYKEntry.java: Adjusted Hibernate models. 2011-07-15 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/utils/FileTools.java: Added method walkTree() to traverse a directory tree. To be reused in HYK parser. * src/main/java/de/intevation/flys/importer/parsers/PRFParser.java: Uses the FileTools.walkTree() method now to find all PRF file. 2011-07-15 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/schema/postgresql.sql: Added missing columns. To update existing databases: BEGIN; ALTER TABLE hyks ADD COLUMN measure TIMESTAMP; ALTER TABLE hyk_entries ADD COLUMN distance_vl NUMERIC NOT NULL; ALTER TABLE hyk_entries ADD COLUMN distance_hf NUMERIC NOT NULL; ALTER TABLE hyk_entries ADD COLUMN distance_vr NUMERIC NOT NULL; COMMIT; * src/main/java/de/intevation/flys/model/HYKEntry.java, src/main/java/de/intevation/flys/model/HYK.java: Adjusted Hibernate models. 2011-07-15 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/parsers/*.java: New package. Moved the file parsers (*.gew, *.sta, *.at, *.glt, *.prf, *.km, *.wst) into this package. * src/main/java/de/intevation/flys/importer/*.java: Adjusted the imports. 2011-07-15 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/model/HYKFormation.java, src/main/java/de/intevation/flys/model/HYKEntry.java, src/main/java/de/intevation/flys/model/HYKFlowZone.java, src/main/java/de/intevation/flys/model/HYKFlowZoneType.java, src/main/java/de/intevation/flys/model/HYK.java: New. The hibernate models for the HYK structures. * src/main/java/de/intevation/flys/backend/SessionFactoryProvider.java: Registered new models. * src/main/java/de/intevation/flys/model/CrossSection.java: Added 'order by' annotation for fetching the cross section lines. 2011-07-15 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/schema/postgresql.sql: Added structures for HYKs "Hydraulische Kenngroessen" To update existing databases: BEGIN; CREATE SEQUENCE HYKS_ID_SEQ; CREATE TABLE hyks ( id int PRIMARY KEY NOT NULL, river_id int NOT NULL, description VARCHAR(256) NOT NULL ); CREATE SEQUENCE HYK_ENTRIES_ID_SEQ; CREATE TABLE hyk_entries ( id int PRIMARY KEY NOT NULL, hyk_id int NOT NULL REFERENCES hyks(id), km NUMERIC NOT NULL, UNIQUE (hyk_id, km) ); CREATE SEQUENCE HYK_FORMATIONS_ID_SEQ; CREATE TABLE hyk_formations ( id int PRIMARY KEY NOT NULL, formation_num int NOT NULL DEFAULT 0, hyk_entry_id int NOT NULL REFERENCES hyk_entries(id), top NUMERIC NOT NULL, bottom NUMERIC NOT NULL, UNIQUE (hyk_entry_id, formation_num) ); CREATE SEQUENCE HYK_FLOW_ZONE_TYPES_ID_SEQ; CREATE TABLE hyk_flow_zone_types ( id int PRIMARY KEY NOT NULL, name VARCHAR(50) NOT NULL UNIQUE, description VARCHAR(256) ); CREATE SEQUENCE HYK_FLOW_ZONES_ID_SEQ; CREATE TABLE hyk_flow_zones ( id int PRIMARY KEY NOT NULL, formation_id int NOT NULL REFERENCES hyk_formations(id), type_id int NOT NULL REFERENCES hyk_flow_zone_types(id), a NUMERIC NOT NULL, b NUMERIC NOT NULL, CHECK (a <= b) ); COMMIT; 2011-07-13 Sascha L. Teichmann <sascha.teichmann@intevation.de> * pom.xml: Bumped Hibernate up to 3.6.5. 2011-07-11 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/utils/FileTools.java: Argh! Forget to call the file hashing so only the file lengths were compared. 2011-07-11 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/utils/FileTools.java: Added a class HashedFile to compare files by there length and a message digest. Digest can be set with system property "flys.backend.file.cmp.digest" and defaults to MD5. Useful to detect file duplicates. * src/main/java/de/intevation/flys/importer/PRFParser.java: Added method prfAccept(File) to callback to check if a found PRF file should be parsed. Useful to prevent parsing file duplicates. * src/main/java/de/intevation/flys/importer/ImportRiver.java: Use the HashedFile and the PRFParser.Callback to prevent parsing of PRF duplicates. 2011-07-08 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/schema/postgresql.sql: Misspelled sequence. To update existing databases: DROP SEQUENCE CROSS_SECTION_LINES_SEQ; CREATE SEQUENCE CROSS_SECTION_LINES_ID_SEQ; * src/main/java/de/intevation/flys/importer/ImportCrossSection.java: Added some logging because importing is slow. * src/main/java/de/intevation/flys/importer/ImportCrossSectionLine.java: Prevent NPE if a cross section line from db has no points. 2011-07-08 Sascha L. Teichmann <sascha.teichmann@intevation.de> Parse all PRFs in all subfolders of a river and store them as cross sections into the database. Needs testing! * src/main/java/de/intevation/flys/importer/ImportCrossSection.java, src/main/java/de/intevation/flys/importer/ImportCrossSectionLine.java: New. Importer models for cross sections. * src/main/java/de/intevation/flys/importer/XY.java: New. Made top level class from inner PRFParser.XY. * src/main/java/de/intevation/flys/importer/PRFParser.java: Moved out XY class. Renamed callback. * src/main/java/de/intevation/flys/model/CrossSection.java, src/main/java/de/intevation/flys/model/CrossSectionLine.java, src/main/java/de/intevation/flys/model/CrossSectionPoint.java, src/main/java/de/intevation/flys/importer/ImportTimeInterval.java: Added convinience constructors. * src/main/java/de/intevation/flys/importer/ImportRiver.java: Parse and store cross sections into database. 2011-07-07 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/schema/postgresql.sql: Introduced a new table cross_section_line holding the km of a set of points. * src/main/java/de/intevation/flys/model/CrossSectionLine.java: New. Model for a single line of a "Querprofil". * src/main/java/de/intevation/flys/model/CrossSection.java: Removed 'km' and 'points' they are part of the line now. * src/main/java/de/intevation/flys/model/CrossSectionPoint.java: They reference to the containing line now. * src/main/java/de/intevation/flys/backend/SessionFactoryProvider.java: Registered new model. To update existing databases: BEGIN; DROP SEQUENCE CROSS_SECTIONS_ID_SEQ; DROP SEQUENCE CROSS_SECTION_POINTS_ID_SEQ; DROP TABLE cross_section_points; DROP TABLE cross_sections; CREATE SEQUENCE CROSS_SECTIONS_ID_SEQ; CREATE TABLE cross_sections ( id int PRIMARY KEY NOT NULL, river_id int NOT NULL REFERENCES rivers(id), time_interval_id int REFERENCES time_intervals(id), description VARCHAR(256) ); CREATE SEQUENCE CROSS_SECTION_LINES_SEQ; CREATE TABLE cross_section_lines ( id int PRIMARY KEY NOT NULL, km NUMERIC NOT NULL, cross_section_id int NOT NULL REFERENCES cross_sections(id), UNIQUE (km, cross_section_id) ); CREATE SEQUENCE CROSS_SECTION_POINTS_ID_SEQ; CREATE TABLE cross_section_points ( id int PRIMARY KEY NOT NULL, cross_section_line_id int NOT NULL REFERENCES cross_section_lines(id), col_pos int NOT NULL, x NUMERIC NOT NULL, y NUMERIC NOT NULL, UNIQUE (cross_section_line_id, col_pos) ); COMMIT; 2011-07-07 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/schema/postgresql.sql: Dropped constraint that enforces the uniqueness of km and river. This is violated because there are more than one sounding in different year at the same km of a river. Added column 'description' to the cross section table to make it human readable. To update existing databases: ALTER TABLE cross_sections DROP CONSTRAINT cross_sections_km_key; ALTER TABLE cross_sections ADD COLUMN description VARCHAR(256); * src/main/java/de/intevation/flys/model/CrossSection.java: Added the description column to the Hibernate model. 2011-07-07 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/schema/postgresql.sql: Dropped constraint that enforces the uniqueness of x in a "Querprofil-Spur". There are vertical lines in the soundings so this constraint is violated. To update existing databases: ALTER TABLE cross_section_points DROP CONSTRAINT cross_section_points_cross_section_id_key2; 2011-07-07 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/PRFParser.java: Added a callback to be called from parsePRFs() if a PRF was parsed successfully. Useful to scan whole sub directories for PRF files. 2011-07-07 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/PRFParser.java: Extract the year of sounding from file names. If not found from the name of th containing directory. Description is made of file name and parent directory file name. 2011-07-07 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/PRFParser.java: Extracted the data. All BfG PRFs are parsed correctly, now. 2011-07-07 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/PRFParser.java: Extract km from lines. TODO: extract data. 2011-07-06 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/PRFParser.java: New. Parser for PRF files. TODO extra data and station from data lines. 2011-07-06 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/model/Point3d.java: Deleted. Not needed (braindead). * src/main/java/de/intevation/flys/model/CrossSectionPoint.java: Directly store the x/y values now. * src/main/java/de/intevation/flys/backend/SessionFactoryProvider.java: Removed registration of Point3d. To update existing databases: BEGIN; ALTER TABLE cross_section_points DROP COLUMN point3d_id; DROP SEQUENCE POINTS3D_ID_SEQ; DROP TABLE points3d; ALTER TABLE cross_section_points ADD COLUMN x NUMERIC NOT NULL; ALTER TABLE cross_section_points ADD COLUMN y NUMERIC NOT NULL; ALTER TABLE cross_section_points ADD CONSTRAINT cross_section_points_cross_section_id_key2 UNIQUE (cross_section_id, x); COMMIT; 2011-07-06 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/model/CrossSection.java, src/main/java/de/intevation/flys/model/CrossSectionPoint.java: New. Hibernate models for cross-sections and their forming points. * src/main/java/de/intevation/flys/backend/SessionFactoryProvider.java: Registered the new models. 2011-07-06 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/model/Point3d.java: New. point3d model * src/main/java/de/intevation/flys/backend/SessionFactoryProvider.java: Registered point3d model. 2011-07-06 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/schema/postgresql.sql: Add relations for cross sections. To update existing databases: BEGIN; CREATE SEQUENCE CROSS_SECTIONS_ID_SEQ; CREATE TABLE cross_sections ( id int PRIMARY KEY NOT NULL, km NUMERIC NOT NULL, river_id int NOT NULL REFERENCES rivers(id), time_interval_id int REFERENCES time_intervals(id), UNIQUE (km, river_id) ); CREATE SEQUENCE POINTS3D_ID_SEQ; CREATE TABLE points3d ( id int PRIMARY KEY NOT NULL, x NUMERIC NOT NULL, y NUMERIC NOT NULL, z NUMERIC NOT NULL ); CREATE SEQUENCE CROSS_SECTION_POINTS_ID_SEQ; CREATE TABLE cross_section_points ( id int PRIMARY KEY NOT NULL, cross_section_id int NOT NULL REFERENCES cross_sections(id), point3d_id int NOT NULL REFERENCES points3d(id), col_pos int NOT NULL, UNIQUE (cross_section_id, point3d_id, col_pos), UNIQUE (cross_section_id, col_pos) ); COMMIT; 2011-06-28 Ingo Weinzierl <ingo@intevation.de> Tagged RELEASE 2.4 2011-06-27 Ingo Weinzierl <ingo@intevation.de> * Changes: Prepared changes for the upcoming release. 2011-06-26 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/AnnotationsParser.java, src/main/java/de/intevation/flys/importer/AnnotationClassifier.java, src/main/java/de/intevation/flys/importer/AtFileParser.java, src/main/java/de/intevation/flys/importer/ValueKey.java, src/main/java/de/intevation/flys/importer/WstParser.java: Removed trailing whitespace. 2011-06-26 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/AnnotationClassifier.java: Removed superfluous imports. 2011-06-26 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/model/River.java: Added a method maxOverlap to determine the gauge which has the max common length to a given interval. This is for numerical stability in slightly overlapping gauge ranges. 2011-06-26 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/model/River.java: When looking up a gauge by km containment use precision of 1e-6. 2011-06-22 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/model/River.java: Added method to find gauge by its name. 2011-06-19 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/annotation-types.xml: Fixed some rules. * src/main/java/de/intevation/flys/importer/Importer.java, src/main/java/de/intevation/flys/importer/InfoGewParser.java, src/main/java/de/intevation/flys/importer/ImportRiver.java: Call the right constructors now. * src/main/java/de/intevation/flys/importer/ImportAnnotationType.java: Added getter/setter for name property. * src/main/java/de/intevation/flys/importer/AnnotationsParser.java: Print duplicated at WARN level not as DEBUG. * src/main/java/de/intevation/flys/importer/AnnotationClassifier.java: Fixed XPath expression to build the internal lookup structures correctly. 2011-06-19 Sascha L. Teichmann <sascha.teichmann@intevation.de> Added classification of annotation types. Needs testing! * doc/annotation-types.xml: New. Rules to classify the different types of annotations. The classification works like this: There are unique types like 'Bruecke', 'Pegel' and so on. They are defined in the /annotation/type section and identified by their name. One of the types can be set as the default type if no rule applies. In the /annotation/pattern section are two types of pattern. 1 - file pattern: If a KM file is opened its filename is matched against the regular expressions of these patterns. If a match is found the corresponding type is used as the default type in the open file. If no match is found the global default type is used as the default type. 2 - line patterns: For each line of an open KM file these patterns are applied to find a match. If a match is found the corresponding type is used as the type of the annotation. If no match is found the default file default is assumed to be the right type. For the file default see 1. * src/main/java/de/intevation/flys/importer/Importer.java: To activate the annotation type classification set the system property 'flys.backend.importer.annotation.types' to the path of a XML looking like the annotation-types.xml file. If the system property is not set no classification is done. * src/main/java/de/intevation/flys/importer/AnnotationClassifier.java: New. Implements the classification. * src/main/java/de/intevation/flys/importer/AnnotationsParser.java, src/main/java/de/intevation/flys/importer/InfoGewParser.java, src/main/java/de/intevation/flys/importer/ImportRiver.java: Looped through the annotation type classification. 2011-06-18 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/model/River.java: Added method to find gauge by a position lying in its range. 2011-06-14 Sascha L. Teichmann <sascha.teichmann@intevation.de> First part of flys/issue18 * doc/schema/postgresql.sql: Add new table 'annotation_types'. To update existing databases: BEGIN; CREATE SEQUENCE ANNOTATION_TYPES_ID_SEQ; CREATE TABLE annotation_types ( id int PRIMARY KEY NOT NULL, name VARCHAR(256) NOT NULL UNIQUE ); ALTER TABLE annotations ADD COLUMN type_id int REFERENCES annotation_types(id); COMMIT; * doc/schema/postgresql-cleanup.sql: Removed. Hopeless out-dated. * src/main/java/de/intevation/flys/model/AnnotationType.java: New. Hibernate model to access the type. * src/main/java/de/intevation/flys/backend/SessionFactoryProvider.java: Register the new backend type. * src/main/java/de/intevation/flys/model/Annotation.java: References the annotation type. * src/main/java/de/intevation/flys/importer/ImportAnnotationType.java: New. Model to help import the annotation type. * src/main/java/de/intevation/flys/importer/ImportAnnotation.java: Uses the import type. * src/main/java/de/intevation/flys/importer/AnnotationsParser.java: Set the annotation type to 'null'. TODO: Do the classification! 2011-06-14 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/AtFileParser.java: Fix for flys/issue110. start index was shifted by one. 2011-06-14 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/ImportAnnotation.java: Forgot to store reference to edge. 2011-06-14 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/backend/SessionFactoryProvider.java: Register backend model. * src/main/java/de/intevation/flys/importer/ImportEdge.java: New. Model for importing the edges. * src/main/java/de/intevation/flys/importer/AnnotationsParser.java: Parses the edges of an annotation, too. 2011-06-14 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/schema/postgresql.sql: Added table edges to model 'Kanten' of an annotation. To update existing databases: BEGIN; CREATE SEQUENCE EDGES_ID_SEQ; CREATE TABLE edges ( id int PRIMARY KEY NOT NULL, top NUMERIC, bottom NUMERIC); ALTER TABLE annotations ADD COLUMN edge_id int REFERENCES edges(id); COMMIT; * src/main/java/de/intevation/flys/model/Edge.java: New. A 'Kanten'-Model. * src/main/java/de/intevation/flys/model/Annotation.java: References the edges. 2011-06-08 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/model/River.java: Added method to find gauge only by station position. 2011-05-24 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/model/River.java: Make search for gauges independent of from/to order. 2011-05-24 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/schema/postgresql.sql: Added a new view to select qs of a WST. To update existing databases: CREATE VIEW wst_q_values AS SELECT wc.position AS column_pos, wqr.q AS q, r.a AS a, r.b AS b, wc.wst_id AS wst_id FROM wst_column_q_ranges wcqr JOIN wst_q_ranges wqr ON wcqr.wst_q_range_id = wqr.id JOIN ranges r ON wqr.range_id = r.id JOIN wst_columns wc ON wcqr.wst_column_id = wc.id ORDER BY wc.position, wcqr.wst_column_id, r.a; 2011-05-24 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/schema/postgresql.sql: Added a new view to select ws of a WST. To update existing databases: CREATE VIEW wst_w_values AS SELECT wcv."position" AS km, wcv.w AS w, wc."position" AS column_pos, w.id AS wst_id FROM wst_column_values wcv JOIN wst_columns wc ON wcv.wst_column_id = wc.id JOIN wsts w ON wc.wst_id = w.id ORDER BY wcv."position", wc."position"; 2011-05-23 Sascha L. Teichmann <sascha.teichmann@intevation.de> flys/issue76 * src/main/java/de/intevation/flys/importer/WstParser.java: Close gaps between q ranges. 2011-05-20 Ingo Weinzierl <ingo@intevation.de> Tagged RELEASE 2.3.1 2011-05-13 Ingo Weinzierl <ingo@intevation.de> Tagged RELEASE 2.3 2011-05-13 Ingo Weinzierl <ingo@intevation.de> * Changes: Changes for release 2.3 - see Changes file to get to know about the version numbers of this software. 2011-05-10 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/schema/postgresql.sql: Added a column which tells if a river counts its km up or downwards. To update existing databases: ALTER TABLE rivers ADD COLUMN km_up BOOLEAN NOT NULL DEFAULT true; * src/main/java/de/intevation/flys/model/River.java: Adjust Hibernate mapping of new column. 2011-05-10 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/AtFileParser.java: Fixed flys/issue11 and flys51. 2011-05-09 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/ValueKey.java: Add some unsharp comparison (eps = 1e-6) to avoid numerical problems. * src/main/java/de/intevation/flys/importer/IdValueKey.java: Removed. Not need any longer. * src/main/java/de/intevation/flys/importer/ImporterSession.java: Use unsharp lookup. * src/main/java/de/intevation/flys/importer/ImportWst.java, src/main/java/de/intevation/flys/importer/ImportRiver.java: Flush more often. Hopefully this reduces hibernate sync problems?! 2011-05-09 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/ImporterSession.java: Fixed silly bug. Set flush mode back to auto because manual flushing causes some undetermined problems. 2011-05-09 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/ImporterSession.java: Do not load _all_ values from discharge tables and wst columns. This is extremly slow and will lead to OOM if more rivers are imported. Now only the last 20 columns und discharge tables are cached. * src/main/java/de/intevation/flys/importer/ValueKey.java: New. Key for caching discharge table values and wst column values. * src/main/java/de/intevation/flys/importer/IdValueKey.java: Fixed bug in equals(). * src/main/java/de/intevation/flys/importer/ImportWstColumn.java: Removed too eloquent debug output. 2011-05-09 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/IdValueKey.java: Use BigDecimals as representation for the numeric components which prevents running into unique constraint problems caused by imprecision. * src/main/java/de/intevation/flys/importer/ImportRange.java, src/main/java/de/intevation/flys/importer/ImporterSession.java: Ranges are now cached globally, too. * src/main/java/de/intevation/flys/importer/ImportWstColumn.java: Improved logging. * src/main/java/de/intevation/flys/importer/ImportDischargeTableValue.java: Removed superfluous imports. 2011-05-08 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/StaFileParser.java: Only accept main value types 'Q', 'W', 'D' and 'T' by default. '-' is not handled any more because it causes too much constraint problems. You can overwrite the imported type with the system property flys.backend.main.value.types" (default "QWTD") * src/main/java/de/intevation/flys/importer/ImporterSession.java: Set session flush mode to manual. Hopefully this improves the performance a bit. * src/main/java/de/intevation/flys/importer/ImportWst.java, src/main/java/de/intevation/flys/importer/ImportGauge.java, src/main/java/de/intevation/flys/importer/ImportWstColumn.java, src/main/java/de/intevation/flys/importer/ImportRange.java, src/main/java/de/intevation/flys/importer/ImportDischargeTable.java: Improved logging. 2011-05-08 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/WstColumnValueKey.java: Deleted * src/main/java/de/intevation/flys/importer/IdValueKey.java: Reinserted here in a more generalized form. * src/main/java/de/intevation/flys/importer/ImporterSession.java: Cache the discharge table value, too. * src/main/java/de/intevation/flys/importer/ImportDischargeTableValue.java: Use the global cache. 2011-05-08 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/ImporterSession.java: New. Centralized caching in the thread local context. Importing the Elbe leads to OOM because the column values of the WST files where loaded separately for every file. * src/main/java/de/intevation/flys/importer/ImportPosition.java, src/main/java/de/intevation/flys/importer/Importer.java, src/main/java/de/intevation/flys/importer/ImportAnnotation.java, src/main/java/de/intevation/flys/importer/ImportWstQRange.java, src/main/java/de/intevation/flys/importer/ImportWst.java, src/main/java/de/intevation/flys/importer/ImportMainValue.java, src/main/java/de/intevation/flys/importer/ImportMainValueType.java, src/main/java/de/intevation/flys/importer/ImportNamedMainValue.java, src/main/java/de/intevation/flys/importer/ImportRiver.java, src/main/java/de/intevation/flys/importer/ImportGauge.java, src/main/java/de/intevation/flys/importer/ImportWstColumnValue.java, src/main/java/de/intevation/flys/importer/ImportWstColumnQRange.java, src/main/java/de/intevation/flys/importer/ImportWstColumn.java, src/main/java/de/intevation/flys/importer/ImportRange.java, src/main/java/de/intevation/flys/importer/ImportDischargeTableValue.java, src/main/java/de/intevation/flys/importer/ImportDischargeTable.java, src/main/java/de/intevation/flys/importer/ImportAttribute.java, src/main/java/de/intevation/flys/importer/ImportTimeInterval.java: Adjusted to use the new global context. 2011-05-08 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/schema/postgresql.sql: Dropped constraint which forces discharge tables to have a unique time interval for a given gauge and kind. There are AT files (historical Mosel/Perl/Perl/1967-1981.at and Mosel/Perl/1967-1981-1.at) which violate this constraint. Its a technical question to the customer how to handle these cases. To adjust existing databases: ALTER TABLE discharge_tables DROP CONSTRAINT discharge_tables_gauge_id_key; 2011-05-08 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/WstParser.java: There are wst files where column names are not unique. Make them unique by appending (1), (2) and so on. 2011-05-05 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/ImportRiver.java: Import the "HW-Schutzanlagen", too. 2011-05-05 Sascha L. Teichmann <sascha.teichmann@intevation.de> Make import of historical discharge tables work. * doc/schema/postgresql.sql: Added forgotten column 'description'. !!! You have to drop your database !!! * src/main/java/de/intevation/flys/importer/ImportDischargeTable.java: src/main/java/de/intevation/flys/model/DischargeTable.java: Add the forgotten description property. * src/main/java/de/intevation/flys/importer/AtFileParser.java: Fixed problems with date recognition. * src/main/java/de/intevation/flys/importer/ImportGauge.java: Prefix the description of the historical discharge tables with "Histor.Abflusstafeln". * src/main/java/de/intevation/flys/importer/ImportTimeInterval.java: Fixed silly programming error. 2011-05-05 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/AtFileParser.java: Inject 'kind' attribute. * src/main/java/de/intevation/flys/importer/ImportGauge.java: Traverse the "Histor.Abflusstafeln" for the historical discharge tables. too. TODO: Store them in the database. * src/main/java/de/intevation/flys/importer/ImportDischargeTable.java: Added convinience constructor to set the kind of the discharge table. 2011-05-05 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/ImportRiver.java: Prefix "Zusätzliche Längsschnitte" with "Zus.Längsschnitte" in description. 2011-05-05 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/ImportRiver.java: Import 'Hochwasser-Marken', too. * src/main/java/de/intevation/flys/importer/WstParser.java: Removed superfluous import. 2011-05-05 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/WstParser.java: Ignore lines that contain km positions which were found before in the same file. 2011-05-05 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/model/River.java: Added a method that returns all gauges of the river intersected by a given start and end point. 2011-05-03 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/ImportTimeInterval.java: Forgot to fetch peer from result set. 2011-05-03 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/ImportTimeInterval.java: New. Importer model help fetching the database peer. * src/main/java/de/intevation/flys/model/TimeInterval.java: Add convinience constructor with start and stop time. * src/main/java/de/intevation/flys/importer/AtFileParser.java: Attach a time interval to a discharge table if we find one. * src/main/java/de/intevation/flys/importer/ImportDischargeTable.java: Store the reference to the importer model of the time interval of the discharge table. 2011-05-03 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/AtFileParser.java: Try to extract time ranges from at files. 2011-05-03 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/ImportRiver.java: Parse and store "amtliche Linien" wst files. 2011-05-03 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/ImportRiver.java: Parse and store fixation wst files as well. 2011-05-03 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/ImportRiver.java: Parse the "zusaetzliche Laengsschnitte", too. * src/main/java/de/intevation/flys/importer/ImportWst.java: Add getter/setter for column 'kind'. 2011-05-02 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/WstParser.java: Fixed flys/issue19: Do not take km column in wst file as a water level. 2011-05-02 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/model/Gauge.java: Introduced a 'scale' that is used to adjust the range of min/max W values. 2011-05-01 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/WstParser.java: Removed superfluous import. 2011-04-20 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/importer/WstColumnValueKey.java: New. This class is used as distinct key of a WstColumnValue - e.g. as key in a map. * src/main/java/de/intevation/flys/importer/ImportWst.java: A WstColumnValue cache is build up while initialization. This cache contains all WstColumnValues that exist in the database. * src/main/java/de/intevation/flys/importer/ImportWstColumn.java: New constructor that takes the WstColumnValues cache. It is used to initialize new ImportWstColumnValue objects. * src/main/java/de/intevation/flys/importer/ImportWstColumnValue.java: Speedup: A ImportWstColumnValue has a WstColumnValues cache that contains all WstColumnValues existing in the database. This makes it unnecessary to call an sql statement for each WstColumnValue to determine its existence in the database. 2011-04-18 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/schema/postgresql.sql, doc/schema/postgresql-cleanup.sql: Added a view 'wst_value_table' which aggregates the data to build w/q value tables. To update existing databases: BEGIN; CREATE VIEW wst_value_table AS SELECT wcv.position AS position, w, (SELECT q FROM wst_column_q_ranges wcqr JOIN wst_q_ranges wqr ON wcqr.wst_q_range_id = wqr.id JOIN ranges r ON r.id = wqr.range_id WHERE wcqr.wst_column_id = wc.id AND wcv.position BETWEEN r.a AND r.b) AS q, wc.position AS column_pos, w.id AS wst_id FROM wst_column_values wcv JOIN wst_columns wc ON wcv.wst_column_id = wc.id JOIN wsts w ON wc.wst_id = w.id ORDER BY wcv.position ASC, wc.position DESC; COMMIT; 2011-04-18 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/model/Wst.java: Add forgotten one to many relation Wst -> WstColumn. 2011-04-18 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/ImportWst.java, src/main/java/de/intevation/flys/importer/WstParser.java: Import of q ranges of wst files was totally broken. :-/ You have to reimport all your data. 2011-04-18 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/ImportDischargeTable.java: Forgot kind parameter in peer fetching query. 2011-04-18 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/model/River.java:: Added a new method to determine the gauge based on a given start and end point of the river. 2011-04-15 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/schema/postgresql.sql: Added 'position' column to wst_columns to allow order them by there column position in the original wst file. Update existing database with: BEGIN; ALTER TABLE wst_columns ADD COLUMN position int; UPDATE wst_columns w SET position = id - (SELECT min(id) FROM wst_columns WHERE wst_id = w.wst_id); ALTER TABLE wst_columns ADD CONSTRAINT wst_columns_wst_id_position_key UNIQUE (wst_id, position); COMMIT; * src/main/java/de/intevation/flys/model/Wst.java, src/main/java/de/intevation/flys/model/WstColumn.java: Adjusted models. * src/main/java/de/intevation/flys/importer/ImportWst.java, src/main/java/de/intevation/flys/importer/ImportWstColumn.java: Adjusted importer. 2011-04-15 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/schema/postgresql.sql: Forget ',' in schema. 2011-04-15 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/model/Wst.java (determineMinMaxQ): Fixed index problem when an empty list is returned. 2011-04-15 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/model/Wst.java: A Wst is now able to return its min and max Q values. * src/main/java/de/intevation/flys/model/Gauge.java: A Gauge is now able to return its min and max W values. 2011-04-15 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/schema/postgresql.sql: Added new column 'kind' in discharge tables and wst to distinguish between different kinds like 'Haupt-WST', 'zusaetzliche Laengsschnitte', 'amtliche Daten' and so on. Update existing databases with: BEGIN; ALTER TABLE discharge_tables ADD COLUMN kind int NOT NULL DEFAULT 0; ALTER TABLE wsts ADD COLUMN kind int NOT NULL DEFAULT 0; COMMIT; * src/main/java/de/intevation/flys/model/DischargeTable.java src/main/java/de/intevation/flys/model/Wst.java, src/main/java/de/intevation/flys/importer/ImportWst.java, src/main/java/de/intevation/flys/importer/ImportDischargeTable.java: Adjusted the models. 2011-04-15 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/backend/SessionHolder.java: Moved to this module from flys-artifacts. This is necessary to get access to the current session in this module as well. 2011-04-14 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/model/River.java: Added a method that returns the min and max distance of a river. 2011-04-03 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/**/*.java: Removed trailing whitespace. 2011-03-30 Ingo Weinzierl <ingo@intevation.de> Tagged RELEASE 0.1 2011-03-28 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/model/Range.java: Forgot to save the last change before commit. 2011-03-28 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/model/Range.java: Added methods to find out if two ranges intersects. 2011-03-24 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/model/Gauge.java: Added an one to many relation to the discharge tables of a gauge. 2011-03-22 Sascha L. Teichmann <sascha.teichmann@intevation.de> Finished import of WSTs. TODO 1: Speed it up! It takes on a high end machine over 7(!) minutes only for the data of the Saar. TODO 2: Double precision floating point representations produced by the the parsers leed to unique constraint violations in the backend on a second run. So the import is currently only working on freshly initialized data bases. More consequent working with BigDecimal and some rounding may be of help here. * src/main/java/de/intevation/flys/model/WstColumnValue.java: Added convinience constructors. * src/main/java/de/intevation/flys/importer/ImportWstColumnValue.java: Added getPeer() method. * src/main/java/de/intevation/flys/importer/ImportWstColumn.java: Add a list of the ImportWstColumnValues produced by the WST parser. * src/main/java/de/intevation/flys/importer/WstParser.java: Add the (km, w) values to the ImportWstColumns. 2011-03-22 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/WstParser.java: Build models for wsts, wst columns and q ranges and store them in the backend. TODO: store the w values. * src/main/java/de/intevation/flys/model/WstQRange.java src/main/java/de/intevation/flys/model/Wst.java, src/main/java/de/intevation/flys/model/Range.java, src/main/java/de/intevation/flys/model/WstColumnQRange.java, src/main/java/de/intevation/flys/model/WstColumn.java: Added convinience constructors. * src/main/java/de/intevation/flys/importer/ImportWstQRange.java, src/main/java/de/intevation/flys/importer/ImportWst.java, src/main/java/de/intevation/flys/importer/ImportRiver.java, src/main/java/de/intevation/flys/importer/ImportWstColumnQRange.java, src/main/java/de/intevation/flys/importer/ImportWstColumn.java, src/main/java/de/intevation/flys/importer/ImportRange.java: Added getPeer() methods. 2011-03-22 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/WstParser.java: The unit extraction in the WST parser of desktop FLYS is broken! Add a hack here to repair this for our importer. Desktop FLYS needs a fix, too! 2011-03-22 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/WstParser.java: Ported some stuff ver from WSTSource.java of desktop flys to parse WST files. TODO: create instances of the import models. * src/main/java/de/intevation/flys/utils/StringUtil.java: Copied from desktop flys. Used for some string operations in WST parser. * src/main/java/de/intevation/flys/importer/Importer.java: Added system property 'flys.backend.importer.dry.run'. Set to true only the parsing is done and no writing to the backend. Default: false. * src/main/java/de/intevation/flys/App.java, src/main/java/de/intevation/flys/model/MainValueType.java: Removed needless imports. 2011-03-22 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/model/DischargeTableValue.java, src/main/java/de/intevation/flys/model/DischargeTable.java: Added new constructors. * src/main/java/de/intevation/flys/importer/AtFileParser.java: New. This parser is used to '*.at' files. * src/main/java/de/intevation/flys/importer/ImportGauge.java: Added code to import discharge tables. * src/main/java/de/intevation/flys/importer/ImportDischargeTableValue.java, src/main/java/de/intevation/flys/importer/ImportDischargeTable.java: New. Helper models for import discharge tables. 2011-03-22 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/WstParser.java, src/main/java/de/intevation/flys/importer/ImportRiver.java: Added stub for WST parser. 2011-03-22 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/ImportWstQRange.java, src/main/java/de/intevation/flys/importer/ImportWst.java, src/main/java/de/intevation/flys/importer/ImportWstColumnValue.java, src/main/java/de/intevation/flys/importer/ImportWstColumnQRange.java, src/main/java/de/intevation/flys/importer/ImportWstColumn.java: Added importer helper model stubs for WST imports. 2011-03-21 Sascha L. Teichmann <sascha.teichmann@intevation.de> Second part of parsing/storing main values. Should be finished now. * src/main/java/de/intevation/flys/importer/ImportNamedMainValue.java, src/main/java/de/intevation/flys/importer/ImportMainValue.java: New. Helper models for import main values, * src/main/java/de/intevation/flys/model/MainValue.java, src/main/java/de/intevation/flys/model/NamedMainValue.java: Added convinience constructors. * src/main/java/de/intevation/flys/importer/ImportGauge.java: Write main values to backend, too. * src/main/java/de/intevation/flys/importer/StaFileParser.java: Build importer models for main values. * src/main/java/de/intevation/flys/importer/ImportMainValueType.java: Data was called 'value'. Now it is 'name' to fit the schema. 2011-03-21 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/schema/postgresql.sql: Fixed wrong unique constraint. * src/main/java/de/intevation/flys/importer/ImportRiver.java: Added some logging when storing gauges. 2011-03-21 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/model/Gauge.java: Add forgotten column river_id. * src/main/java/de/intevation/flys/importer/ImportGauge.java: Small HQL fix. 2011-03-21 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/model/Gauge.java: Added convinience contructor. * src/main/java/de/intevation/flys/importer/ImportGauge.java: Fixed getPeer() method. * src/main/java/de/intevation/flys/importer/StaFileParser.java: Fixed parsing of STA files. 2011-03-21 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/ImportRiver.java, src/main/java/de/intevation/flys/importer/ImportGauge.java: Propagate river into storing of gauges. 2011-03-21 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/Importer.java: Added code to store rivers not only annotations. * src/main/java/de/intevation/flys/importer/ImportRiver.java: Added stub code to write gauges. 2011-03-17 Sascha L. Teichmann <sascha.teichmann@intevation.de> First part of parsing main values. * src/main/java/de/intevation/flys/App.java: Commented out creation of dummy rivers. * src/main/java/de/intevation/flys/model/NamedMainValues.java: Moved to NamedMainValue. * src/main/java/de/intevation/flys/model/NamedMainValue.java: New. Formerly NamedMainValues. * src/main/java/de/intevation/flys/model/MainValue.java: New. Forgotten part of the model. * src/main/java/de/intevation/flys/model/MainValueType.java: Data is String not BigDecimal * src/main/java/de/intevation/flys/model/Range.java: Removed contructor with double arguments. Using BigDecimal now. * src/main/java/de/intevation/flys/importer/PegelGltParser.java: Propagate BigDecimal usage. * src/main/java/de/intevation/flys/importer/Importer.java: Removed needless import. Added TODO * src/main/java/de/intevation/flys/importer/ImportRiver.java: Parse the dependencies of the gauges, too. * src/main/java/de/intevation/flys/importer/StaFileParser.java: New. Parser for STA files. * src/main/java/de/intevation/flys/importer/ImportGauge.java: Call STA file parser. * src/main/java/de/intevation/flys/importer/AnnotationsParser.java, src/main/java/de/intevation/flys/importer/ImportRange.java: Uses BigDecimal now. * src/main/java/de/intevation/flys/importer/ImportAttribute.java: Fixed wrong type cast in equals. * src/main/java/de/intevation/flys/importer/ImportMainValueType.java: New. Helper model for importing main value types. * src/main/java/de/intevation/flys/backend/SessionFactoryProvider.java: Register forgotten MainValue model. 2011-03-17 Sascha L. Teichmann <sascha.teichmann@intevation.de> Store annotations in backend. * src/main/java/de/intevation/flys/model/Annotation.java: New convinience constructor. * src/main/java/de/intevation/flys/model/River.java: Added toString() method. * src/main/java/de/intevation/flys/model/Range.java: Fixed nasty mistake in @OneToOne annotatation. New convinience constructors. * src/main/java/de/intevation/flys/importer/ImportPosition.java src/main/java/de/intevation/flys/importer/ImportAnnotation.java, src/main/java/de/intevation/flys/importer/ImportRange.java src/main/java/de/intevation/flys/importer/ImportAttribute.java: Make storing to backend work. It's a bit too slow. :-/ * src/main/java/de/intevation/flys/importer/ImportRiver.java: Fetch peer from backend. Added method to store annotations. * src/main/java/de/intevation/flys/importer/Importer.java: Stored annotations into backend. More eloquent SQL exception handling. 2011-03-17 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/model/Attribute.java, src/main/java/de/intevation/flys/model/Position.java: Added convinience constructors. * src/main/java/de/intevation/flys/importer/ImportPosition.java, src/main/java/de/intevation/flys/importer/ImportAttribute.java: Bound them to there backend peers. 2011-03-17 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/AnnotationsParser.java: New. Added parser to read *.KM files. * src/main/java/de/intevation/flys/importer/ImportPosition.java, src/main/java/de/intevation/flys/importer/PegelGltParser.java, src/main/java/de/intevation/flys/importer/ImportRiver.java, src/main/java/de/intevation/flys/importer/ImportAnnotation.java, src/main/java/de/intevation/flys/importer/ImportRange.java, src/main/java/de/intevation/flys/importer/InfoGewParser.java, src/main/java/de/intevation/flys/importer/ImportAttribute.java: Adjusted to load the annotations from *.KM files. 2011-03-17 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/ImportPosition.java, src/main/java/de/intevation/flys/importer/ImportRange.java, src/main/java/de/intevation/flys/importer/ImportAttribute.java, src/main/java/de/intevation/flys/importer/ImportAnnotation.java: New helper models for import. * src/main/java/de/intevation/flys/importer/PegelGltParser.java, src/main/java/de/intevation/flys/importer/ImportGauge.java: Use new models. 2011-03-17 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/PegelGltParser.java: New. Parser for PEGEL.GLT files. * src/main/java/de/intevation/flys/importer/ImportGauge.java: New. Import model for gauges. * src/main/java/de/intevation/flys/utils/DBCPConnectionProvider.java: Removed needless imports. * src/main/java/de/intevation/flys/importer/ImportRiver.java: Added method to parse the gauges. * src/main/java/de/intevation/flys/importer/InfoGewParser.java: Trigger pegel glt file parsing. 2011-03-17 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/Importer.java: Used thread local pattern to make sharing of session easier. 2011-03-17 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/Importer.java: Fixed error in HQL statement. 2011-03-17 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/utils/DBCPConnectionProvider.java: Commented out a debug block because it leaks the db password. 2011-03-16 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/InfoGewParser.java: Expose imported rivers. * src/main/java/de/intevation/flys/importer/InfoGewParser.java: Store imported rivers into database. Needs testing! 2011-03-16 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/backend/SessionFactoryProvider.java: Default connection parameters are now overwritable with system properties (defaults in brackets): - user name: flys.backend.user (flys) - user password: flys.backend.password (flys) - db dialect: flys.backend.dialect (org.hibernate.dialect.PostgreSQLDialect) - db driver: flys.backend.driver (org.postgresql.Driver) - db url: flys.backend.url (jdbc:postgresql://localhost:5432/flys) 2011-03-16 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/backend/SessionFactoryProvider.java: Expose createSessionFactory() as public to be usable without a artifact database running. 2011-03-16 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/utils/FileTools.java: Tools for handling with filenames. Currently there is a repair(File) method with repairs letter case errors which is useful when reading windows filenames on a un*x platform. * src/main/java/de/intevation/flys/importer/Importer.java: Standalone app to read data from the file system and store it in a database. Currently it does not store anything. It only loads info gew files. * src/main/java/de/intevation/flys/importer/InfoGewParser.java: Info gew parser. * src/main/java/de/intevation/flys/importer/ImportRiver.java: Helper model of a river used produced by parsing the info gew files. 2011-03-15 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/backend/SessionFactoryProvider.java: New. SessionFactoryProvider.getSessionFactory() provides a SessionFactory to use the Hibernate O/R mapper for the FLYS backend. 2011-03-15 Sascha L. Teichmann <sascha.teichmann@intevation.de> * pom.xml: Added dependency to artifacts-commons to be able to use the global configuration of the artifact database. 2011-03-15 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/App.java: Wire all POJOs to corresponding factory. * src/main/java/de/intevation/flys/model/*.java: Generate all foreign key constraints. TODO: name them correctly because the machine generated names are ugly and do not fit the PostgreSQL names. * doc/schema/postgresql.sql: Small quantifier fix in descriptions of wst columns. 2011-03-14 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/schema/postgresql.sql: Fixed wrong spelled column references in foreign keys introduces with last change. 2011-03-14 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/model/*.java: Added column annotations for simple fields. TODO: foreign keys. 2011-03-14 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/schema/postgresql.sql, doc/schema/postgresql-cleanup.sql: Fixed inconsistent table names. * src/main/java/de/intevation/flys/model/*.java: Added entity and id annotations. 2011-03-14 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/schema/postgresql.sql, doc/schema/postgresql-cleanup.sql: Added missing sequences. * doc/schema/sqlite.sql: Deleted. Not longer supported. 2011-03-11 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/schema/postgresql-cleanup.sql: Forgot to add. * src/main/java/de/intevation/flys/App.java: Use Apache Commons DBCP as Hibernate connection provide. * src/main/java/de/intevation/flys/model/River.java: Added a constructor with string argument. Set the sequence increment to 1 (eat up 100 at a time before). * pom.xml: Added PostgreSQL 8.4 driver as runtime dependency. 2011-03-11 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/schema/postgresql-cleanup.sql: New. Tear down schema for a postgres database. * doc/schema/postgresql.sql: Added squence for auto generating ids in river table. Cleaned up schema. * src/main/java/de/intevation/flys/App.java: Simple test app to interact with hibernate. Needs to be removed because its only a toy. * src/main/java/de/intevation/flys/utils/DBCPConnectionProvider.java: New. Binds Apache Commons to Hibernate. * pom.xml: Added dependencies to log4j, commons dbcp, JPA of hibernate. * src/main/java/de/intevation/flys/model/River.java: Added JPA annotations. * src/main/java/de/intevation/flys/model/*.java: Replaced Long with Integer because column ids are only four bytes wide. 2011-03-11 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/schema/sqlite.sql, doc/schema/postgresql.sql: Fixed smaller issues in ddl. * src/main/java/de/intevation/flys/model/*.java: Added POJOs of to be mapped. TODO: Map them! * pom.xml: Added plugin config for hibernate. 2011-03-09 Sascha L. Teichmann <sascha.teichmann@intevation.de> * pom.xml: Added dependency (and corresponding repository) to Hibernate Core 3.6.1 Final 2011-03-09 Sascha L. Teichmann <sascha.teichmann@intevation.de> * pom.xml, src/**: Created a new empty maven project: $ mvn archetype:create \ -DgroupId=de.intevation.flys \ -DartifactId=flys-backend 2011-03-09 Sascha L. Teichmann <sascha.teichmann@intevation.de> * README: New. Some setup instructions. * doc/schema/postgresql.sql: New. Schema converted to PostgreSQL * doc/schema/sqlite.sql: Fixed defect foreign key constraints. 2011-03-09 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/schema/sqlite.sql: Factorized time intervals out into a separated table. 2011-01-22 Sascha L. Teichmann <sascha.teichmann@intevation.de> * contrib/import-kms.py, contrib/import-gew.py: Initial scripts to import data into SQLite database. They still need some work. 2011-02-10 Sascha L. Teichmann <sascha.teichmann@intevation.de>: * doc/schema/sqlite.sql: Added initial schema for FLYS database.