Mercurial > lada > lada-server
changeset 419:82b616dcbd53
Removed files. Development starts "from scratch".
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Wed, 04 Feb 2015 15:52:20 +0100 |
parents | 9709bf4162fa |
children | c7e86351d6ba |
files | INSTALL README jboss/config/standalone.xml src/main/java/de/intevation/lada/auth/Authentication.java src/main/java/de/intevation/lada/auth/AuthenticationException.java src/main/java/de/intevation/lada/auth/AuthenticationResponse.java src/main/java/de/intevation/lada/auth/Authorization.java src/main/java/de/intevation/lada/auth/DataAuthorization.java src/main/java/de/intevation/lada/auth/LdapAuthentication.java src/main/java/de/intevation/lada/data/LKommentarMRepository.java src/main/java/de/intevation/lada/data/LKommentarPRepository.java src/main/java/de/intevation/lada/data/LMessungRepository.java src/main/java/de/intevation/lada/data/LMesswertRepository.java src/main/java/de/intevation/lada/data/LOrtRepository.java src/main/java/de/intevation/lada/data/LProbeRepository.java src/main/java/de/intevation/lada/data/LStatusRepository.java src/main/java/de/intevation/lada/data/LZusatzwertRepository.java src/main/java/de/intevation/lada/data/OrtRepository.java src/main/java/de/intevation/lada/data/QueryBuilder.java src/main/java/de/intevation/lada/data/ReadOnlyRepository.java src/main/java/de/intevation/lada/data/Repository.java src/main/java/de/intevation/lada/data/exporter/Creator.java src/main/java/de/intevation/lada/data/exporter/Exporter.java src/main/java/de/intevation/lada/data/exporter/LAFCreator.java src/main/java/de/intevation/lada/data/exporter/LAFExporter.java src/main/java/de/intevation/lada/data/importer/AttributeMapper.java src/main/java/de/intevation/lada/data/importer/EntryFormat.java src/main/java/de/intevation/lada/data/importer/Importer.java src/main/java/de/intevation/lada/data/importer/LAFFormat.java src/main/java/de/intevation/lada/data/importer/LAFImporter.java src/main/java/de/intevation/lada/data/importer/LAFParser.java src/main/java/de/intevation/lada/data/importer/LAFParserException.java src/main/java/de/intevation/lada/data/importer/LAFProducer.java src/main/java/de/intevation/lada/data/importer/LAFWriter.java src/main/java/de/intevation/lada/data/importer/OrtCreator.java src/main/java/de/intevation/lada/data/importer/Producer.java src/main/java/de/intevation/lada/data/importer/ReportData.java src/main/java/de/intevation/lada/data/importer/Writer.java src/main/java/de/intevation/lada/manage/DataManager.java src/main/java/de/intevation/lada/manage/Manager.java src/main/java/de/intevation/lada/model/Auth.java src/main/java/de/intevation/lada/model/DeVg.java src/main/java/de/intevation/lada/model/LKommentarM.java src/main/java/de/intevation/lada/model/LKommentarMId.java src/main/java/de/intevation/lada/model/LKommentarP.java src/main/java/de/intevation/lada/model/LMessung.java src/main/java/de/intevation/lada/model/LMessungId.java src/main/java/de/intevation/lada/model/LMesswert.java src/main/java/de/intevation/lada/model/LMesswertId.java src/main/java/de/intevation/lada/model/LOrt.java src/main/java/de/intevation/lada/model/LProbe.java src/main/java/de/intevation/lada/model/LProbeInfo.java src/main/java/de/intevation/lada/model/LProbeInfoId.java src/main/java/de/intevation/lada/model/LStatus.java src/main/java/de/intevation/lada/model/LStatusId.java src/main/java/de/intevation/lada/model/LZusatzWert.java src/main/java/de/intevation/lada/model/LZusatzWertId.java src/main/java/de/intevation/lada/model/Ort.java src/main/java/de/intevation/lada/model/SDatenbasis.java src/main/java/de/intevation/lada/model/SKoordinatenArt.java src/main/java/de/intevation/lada/model/SMessEinheit.java src/main/java/de/intevation/lada/model/SMessMethode.java src/main/java/de/intevation/lada/model/SMessStelle.java src/main/java/de/intevation/lada/model/SMessgroesse.java src/main/java/de/intevation/lada/model/SNetzBetreiber.java src/main/java/de/intevation/lada/model/SPflichtMessgroesse.java src/main/java/de/intevation/lada/model/SProbenZusatz.java src/main/java/de/intevation/lada/model/SProbenart.java src/main/java/de/intevation/lada/model/SStaat.java src/main/java/de/intevation/lada/model/SUmwelt.java src/main/java/de/intevation/lada/model/SVerwaltungseinheit.java src/main/java/de/intevation/lada/model/query/QueryConfig.java src/main/java/de/intevation/lada/model/query/QueryFilter.java src/main/java/de/intevation/lada/model/query/ResultConfig.java src/main/java/de/intevation/lada/rest/AuthInfoService.java src/main/java/de/intevation/lada/rest/InfoService.java src/main/java/de/intevation/lada/rest/JaxRsActivator.java src/main/java/de/intevation/lada/rest/LAFExportService.java src/main/java/de/intevation/lada/rest/LAFImportService.java src/main/java/de/intevation/lada/rest/LKommentarMService.java src/main/java/de/intevation/lada/rest/LKommentarService.java src/main/java/de/intevation/lada/rest/LMessungService.java src/main/java/de/intevation/lada/rest/LMesswertService.java src/main/java/de/intevation/lada/rest/LOrtService.java src/main/java/de/intevation/lada/rest/LProbeService.java src/main/java/de/intevation/lada/rest/LStatusService.java src/main/java/de/intevation/lada/rest/LZusatzwertService.java src/main/java/de/intevation/lada/rest/OrtService.java src/main/java/de/intevation/lada/rest/QueryService.java src/main/java/de/intevation/lada/rest/Response.java src/main/java/de/intevation/lada/rest/SDatenbasisService.java src/main/java/de/intevation/lada/rest/SMessMethodeService.java src/main/java/de/intevation/lada/rest/SMesseinheitService.java src/main/java/de/intevation/lada/rest/SMessgroesseService.java src/main/java/de/intevation/lada/rest/SMessstelleService.java src/main/java/de/intevation/lada/rest/SNetzBetreiberService.java src/main/java/de/intevation/lada/rest/SProbenartService.java src/main/java/de/intevation/lada/rest/SProbenzusatzService.java src/main/java/de/intevation/lada/rest/SStaatService.java src/main/java/de/intevation/lada/rest/SUmweltService.java src/main/java/de/intevation/lada/rest/SVerwaltungseinheitService.java src/main/java/de/intevation/lada/utils/QueryTools.java src/main/java/de/intevation/lada/utils/Resources.java src/main/java/de/intevation/lada/validation/LMessungValidator.java src/main/java/de/intevation/lada/validation/LMesswertValidator.java src/main/java/de/intevation/lada/validation/LOrtValidator.java src/main/java/de/intevation/lada/validation/LProbeValidator.java src/main/java/de/intevation/lada/validation/ValidationException.java src/main/java/de/intevation/lada/validation/Validator.java src/main/resources/META-INF/persistence.xml src/main/webapp/WEB-INF/beans.xml src/main/webapp/WEB-INF/faces-config.xml src/main/webapp/WEB-INF/lada-ds.xml.old src/main/webapp/index.html src/test/java/de/intevation/lada/ImporterTest.java src/test/java/de/intevation/lada/TestRestEasyClient.java src/test/java/de/intevation/lada/importer/TestLAFImporter.java src/test/resources/META-INF/test-persistence.xml src/test/resources/arquillian.xml src/test/resources/test-ds.xml test/example.laf test/incomplete.laf test/single.laf |
diffstat | 122 files changed, 0 insertions(+), 16564 deletions(-) [+] |
line wrap: on
line diff
--- a/INSTALL Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,303 +0,0 @@ -Installation -============ -Allgemeine Informationen finden Sie in der README Datei - -Die Installation der Serverkomponente erfordert folgende Vorraussetzungen: - -* PostgreSQL-9.2/PostGIS-2.0 Datenbank inklusive Testdaten -* JBoss-AS - -Zum Bauen der Anwendung aus den Quellen wird zusätzlich das Build-Tool 'maven' -benötigt. - -Installation JBoss-AS -------------------------- - -Im folgenden ist die Installation des JBoss-AS in dem Ordner /opt beschrieben. - -$ cd /opt -$ curl -O http://download.jboss.org/jbossas/7.1/jboss-as-7.1.1.Final/jboss-as-7.1.1.Final.zip -# Integrität prüfen. Leider bietet Redhat für diese "Community Edition" keinen -# Überprüfungsweg an. Vermutlich als Verkaufsanreiz für die professionelle -# Version. Beim Herunterladen am 2013-05-09 hatte die Datei folgende sha256 -# Prüfsumme: -# 0aece7899b54c0219732112307b2bede78ab9b39ee14140ce89ac8c1b716d0ee -# jboss-as-7.1.1.Final.zip -$ unzip jboss-as-7.1.1.Final.zip - -# Der Jboss Server soll nicht als root, sondern unter einem dedizierten Nutzer -# laufen. In diesem Fall als Nutzer "lada". Hierfür müssen einige -# Berechtigungen angepasst werden. -$ USER=lada -$ chgrp -R ${USER} jboss-as-7.1.1.Final -$ cd jboss-as-7.1.1.Final -$ chmod 775 standalone/ -$ chmod 775 standalone/deployments -$ chmod 775 standalone/tmp -$ chmod 775 standalone/configuration -$ chmod 660 standalone/configuration/mgmt-users.properties -$ chmod 660 standalone/configuration/application-users.properties - -Einrichten eines Admin Zugangs -`````````````````````````````` -Um den JBoss Server über die Weboberfläche administrieren zu können muss -zunächst ein neuer Nutzer erstellt werden: - -$ cd jboss-as-7.1.1.Final -$ sh bin/add-user.sh - -Einrichten von JBoss als Service -```````````````````````````````` -JBoss soll als Service start und beendbar sein. - -$ cd /etc/init.d -$ cp /opt/jboss-as-7.1.1.Final/bin/init.d/jboss-as-standalone.sh jboss - -# In diesem SCRIPT müssen dann folgene Variablen angepasst werden: -# 1. JBOSS_HOME=/opt/jboss-as-7.1.1.Final -# 2. JBOSS_USER=lada - -$ servive jboss start - - -Datenbank ---------- -Die LADA Anwendung basiert auf einer PostgreSQL/PostGIS Datenbank in den -Versionen PostgreSQL 9.2/PostGIS 2.0. -Beipieldaten sind in dem Datenbankdump lada-db.zip verfügbar und können -in eine PostgreSQL/PostGIS Datenbank importiert werden. -Hierzu sollte vorher ein Benutzer in der Datenbank angelegt werden. In der -folgenden Installationsanleitung wird davon ausgegangen, dass ein Benutzer -'lada' in der Datenbank existiert. -Der dadurch verfügbare Testdatensatz enthält zusätzlich Daten zu Gemeinden und -Verwaltungen in Deutschland, die vom BKG zur Verfügung gestellt werden. - -Einrichtung der Datenbankverbindung im JBoss AS ------------------------------------------------ -Die Datenbankverbindung wird im Application Server eingerichtet. Hierzu muss der -entsprechende Treiber zunächst als Modul eingefügt werden. Die folgenden -Schritte setzen vorraus, dass der JBoss AS in dem Ordner -/opt/jboss-as-7.1.1-Final installiert ist. - -1. Anlegen des Verzeichnisses und herunterladen der Treiber. - -$cd /opt/jboss-as-7.1.1.Final/modules/org -$mkdir -p postgresql/main/ -$cd postgresql/main -$curl -O "http://jdbc.postgresql.org/download/postgresql-9.2-1002.jdbc4.jar" -$curl -O "http://www.hibernatespatial.org/repository/org/postgis/postgis-jdbc/1.5.2/postgis-jdbc-1.5.2.jar" - -2. In dem Ordner /opt/jboss-as-7.1.1.Final/modules/org/postgresql/main/ eine -Datei module.xml mit folgendem Inhalt anlegen. - -<?xml version="1.0" encoding="UTF-8"?> -<module xmlns="urn:jboss:module:1.0" name="org.postgresql"> - <resources> - <resource-root path="postgresql-9.2-1002.jdbc4.jar"/> - <resource-root path="postgis-jdbc-1.5.2.jar"/> - </resources> - <dependencies> - <module name="javax.api"/> - <module name="javax.transaction.api"/> - </dependencies> -</module> - -3. Einfügen der Hibernate-Spatial Komponenten. - -$cd /opt/jboss-as-7.1.1.Final/modules/org/hibernate/main -$curl -O "http://www.hibernatespatial.org/repository/org/hibernate/hibernate-spatial/4.0/hibernate-spatial-4.0.jar" -$curl -O "http://repo1.maven.org/maven2/com/vividsolutions/jts/1.13/jts-1.13.jar" - -4. Eintragen der Hibernate-Spatial Komponenten in -/opt/jboss-as-7.1.1.Final/modules/org/hibernate/main/module.xml - -<resources> - ... - <resource-root path="hibernate-spatial-4.0.jar"/> - <resource-root path="jts-1.13.jar"/> -</resources> -<dependencies> - ... - <module name="org.postgresql"/> -</dependencies> - -5. Einfügen des PostgreSQL Moduls als Treiber in die JBoss Konfiguration. - - In den Abschnitt <datasources> folgenden Block einfügen: - -<driver name="postgis" module="org.postgresql"> - <xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> -</driver> - - -Nun kann man eine neue Datenbankverbindung mit dem neuen Treiber einrichten. -Dazu verbindet man sich mit dem soeben angelegten Management-Nutzer mit der -Administrations-Webinterface unter der Adresse: http://localhost:9990 - -1. Datesources auswählen. Hier werden alle derzeit eingerichteten Datenquellen - angzeigt. Wir wollen eine neue einrichten. Hierzu -2. Oben rechts von "Runtime" auf "Profile" wechseln. -3. "Add" wählen. -4. Name: Lada, JNDI: java:/jboss/Lada -5. Treiber Wählen: postgis -6. Weitere Verbindungsparameter angeben. - a) connection url: jdbc:postgresql_postGIS://localhost:5432/lada - b) Nutzer (lada) - c) Password - -7.Da während dieser Einrichtung die Standard PostgreSQL Treiberklasse gewählt - wird, muss diese noch in der Datei - /opt/jboss-as-7.1.1.Final/standalone/configuration/standalone.xml - geändert werden: - Hierzu wird im Abschnitt <datasources> für die neu angelegte Datenquelle - <driver-class>org.postgresql.Driver</driver-class> gegen - <driver-class>org.postgis.DriverWrapper</driver-class> ausgetauscht. - -Installation der LADA Anwendung -=============================== -Zur Installation der LADA Anwendung müssen folgende Schritte unternommen werden: - -Erstellen der Anwendung aus den Quellen (optional) --------------------------------------------------- - -Befehle zum Bauen der Anwendung aus den Quellen: - -$ cd /path/to/sources/ -$ mvn clean compile package - -Das WAR-Archiv der Anwendung wird in dem Ordner 'target/' abgelegt. - -Installation des Pakets ------------------------ - -$ cd /opt/jboss-as-7.1.1.Final/standalone/deployments -$ cp /path/where/the/war/file/is/lada.war . -touch lada.war.dodeploy - -$cd /opt/jboss-as-7.1.1.Final/standalone/deployments -$cp /path/where/the/war/file/is/lada.war . -$touch lada.war.dodeploy - -Zum Aktualisieren der Anwendung genügt es, wenn die lada.war Datei aktualisiert -wird. - -Die Anwendung ist dann unter dem Pfad "/lada" (abhängig vom Archivnamen) -erreichbar. - -Konfiguration der LADA Anwendung -================================ -Die Konfigurationsdateien sind Dateien im JSON-Format und können an einer -beliebigen Stelle im System abgelegt werden, solang diese Dateien für den -Nutzer, mit dem JBoss-Server gestartet wird, gelesen werden kann. - -Bei Änderungen an der Konfigurationsdatei muss der Server nicht neu gestartet -werden. Es reicht ein erneutes Laden der Anwendung durch den Client. -Vorbereitete und vollständige Konfigurationsdateien sind in dem Ordner -'config' zu finden. - -Importer --------- -Der Pfad an dem diese Konfigurationsdatei zu finden ist wird in einer JBoss -Konfigurationsdatei "standalone.xml" abgelegt. Diese Datei findet sich im JBoss -Ordner ($JBOSSHOME/standalone/configuration/standalone.xml). - -In dieser Datei wird der Pfad in Form einer Property abgelegt: - -<server xmlns="urn:jboss:domain:1.2"> -... - -<system-properties> - <property name="de.intevation.lada.importconfig" -value="/pfad/zur/konfigurations/datei/des/importers.json"/> -</system-properties> - -... -</server> - -Flexible Suche --------------- -Der Pfad an dem diese Konfigurationsdatei zu finden ist wird in einer JBoss -Konfigurationsdatei "standalone.xml" abgelegt. Diese Datei findet sich im JBoss -Ordner ($JBOSSHOME/standalone/configuration/standalone.xml). - -In dieser Datei wird der Pfad in Form einer Property abgelegt: - -<server xmlns="urn:jboss:domain:1.2"> -... - -<system-properties> - ... - <property name="de.intevation.lada.sqlconfig" -value="/pfad/zur/konfigurations/datei/der/abfragen.json"/> -</system-properties> - -... -</server> - -Einrichtung des Webservers (Apache) -=================================== -Die folgenden Module des Apache Webserver sind nötig, um die LADA Anwendung zu -betreiben: - * ldap_module: Authenitfizierung gegen den LDAP - * headers_module: Setzten der Header nach der Authenitifizierung - * proxy_module: Reverse Proxy des Apache zum Jboss-Server - -Damit der Client eine Verbindung zu dem Server aufbauen kann, um von dort Daten -laden zu können ist es notwendig den Server weiter zu konfigurieren. - -togglesebool httpd_can_network_connect -service httpd restart - -Dies erlaubt dem Apache grundsätzlich sich an einen anderen Dienst zu verbinden. - -Nun muss noch ein Reverse-Proxy eingerichtet werden. Dieser ist nur für -bestimmte Adressen aktiv - -Folgende Datei sollte unter "/etc/httpd/conf.d/lada.conf" angelegt werden: - -<VirtualHost *:80> - ServerAdmin webmaster@localhost - #ServerName dummy-host.example.com - ErrorLog logs/lada-error_log - CustomLog logs/lada-access_log common - - # Set multiple Proxys - ProxyPass /lada/server http://localhost:8080/lada - ProxyPassReverse /lada/server http://localhost:8080/lada -</VirtualHost> - -Alles Anfragen an die Adresse "/lada/service" werden nun an den JBoss -weitergeleitet. - -Authentifizierung - -Die Authentifizierung geschieht gegen einen LDAP-Server. - -<Location /lada> - AuthType basic - AuthName "test" - AuthBasicProvider ldap - AuthLDAPURL "ldap://ike.polyhedra.intevation.de:389/cn=users,dc=icosahedron,dc=polyhedra,dc=intevation,dc=de?uid,memberof??(&(objectClass=inetOrgPerson)(memberOf=*))" - Require valid-user -</Location> - -<Location /lada/server> - RequestHeader unset Authorization - RequestHeader set X-LDAP-User "%{AUTHENTICATE_uid}e" - RequestHeader set X-LDAP-Groups "%{AUTHENTICATE_memberof}e" -</Location> - -Sofern gewünscht ist die Authentifizierung für Testzwecke zu deaktivieren muss -trotz allem die entsprechenden Header gesetzt werden, da der Server diese -derzeit erwartet. - -# Set Headers to simulate Authentification. -<Location /lada/server> - RequestHeader set X-LDAP-User "mst_06010" - RequestHeader set X-LDAP-Groups "cn=Imis_world,cn=groups,dc=icosahedron,dc=polyhedra,dc=intevation,dc=de;cn=mst_06010,cn=groups,dc=icosahedron,dc=polyhedra,dc=intevation,dc=de;cn=mst_11010,cn=groups,dc=icosahedron,dc=polyhedra,dc=intevation,dc=de" -</Location> - -Dokumentation -============= -Eine HTML-Dokumenation des Quellcodes(Javadoc) ist in dem Ordner 'doc' hinterlegt und -kann über einen Webserver (z.B. Apache WebServer) bereitgestellt werden.
--- a/README Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,45 +0,0 @@ -Lada-Server -=========== -Dies ist die Prototypversion der Serverkomponente für die Anwendung LADA zur -Verarbeitung und Erfassung von Labordaten. - -Die Software bietet grundlegende Funktionalität zur Erfassung und Bearbeitung -von Messdaten. Weitere Informationen finden sich auf der Projektwebseite unter -der Adresse: - - https://wald.intevation.org/projects/lada/ - -Die Software entstand im Rahmen einer Software Entwicklung durch die -Intevation GmbH im Auftrag des Bundesamt für Strahlenschutz im Jahre 2013. - -Kontakt -------- -Bundesamt für Strahlenschutz -SW2 Notfallschutz, Zentralstelle des Bundes (ZdB) -Willy-Brandt-Strasse 5 -38226 Salzgitter -info@bfs.de - -Lizenz ------- -Die Software unter der GNU GPL v>=3 Lizenz verfügbar. Details siehe die Datei -COPYING. - -Quelltext ---------- -Die Quelldateien lassen sich wie folgt auschecken: -hg clone https://scm.wald.intevation.org/hg/lada/lada-server - -Installation ------------- -Siehe INSTALL Datei - -Dokumenation ------------- -Die Entwicklerdokumentation (Javadoc) kann mit dem folgenden Befehl im -Verzeichnis der Serveranwendung erzeugt werden: - -mvn javadoc:javadoc - -Der Ordner 'target' enthält dann die Dokumentation im HTML-Format in dem -Verzeichnis 'site/apidocs'.
--- a/jboss/config/standalone.xml Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,327 +0,0 @@ -<?xml version='1.0' encoding='UTF-8'?> - -<server xmlns="urn:jboss:domain:1.2"> - - <extensions> - <extension module="org.jboss.as.clustering.infinispan"/> - <extension module="org.jboss.as.configadmin"/> - <extension module="org.jboss.as.connector"/> - <extension module="org.jboss.as.deployment-scanner"/> - <extension module="org.jboss.as.ee"/> - <extension module="org.jboss.as.ejb3"/> - <extension module="org.jboss.as.jaxrs"/> - <extension module="org.jboss.as.jdr"/> - <extension module="org.jboss.as.jmx"/> - <extension module="org.jboss.as.jpa"/> - <extension module="org.jboss.as.logging"/> - <extension module="org.jboss.as.mail"/> - <extension module="org.jboss.as.naming"/> - <extension module="org.jboss.as.osgi"/> - <extension module="org.jboss.as.pojo"/> - <extension module="org.jboss.as.remoting"/> - <extension module="org.jboss.as.sar"/> - <extension module="org.jboss.as.security"/> - <extension module="org.jboss.as.threads"/> - <extension module="org.jboss.as.transactions"/> - <extension module="org.jboss.as.web"/> - <extension module="org.jboss.as.webservices"/> - <extension module="org.jboss.as.weld"/> - </extensions> - - <management> - <security-realms> - <security-realm name="ManagementRealm"> - <authentication> - <properties path="mgmt-users.properties" relative-to="jboss.server.config.dir"/> - </authentication> - </security-realm> - <security-realm name="ApplicationRealm"> - <authentication> - <properties path="application-users.properties" relative-to="jboss.server.config.dir"/> - </authentication> - </security-realm> - </security-realms> - <management-interfaces> - <native-interface security-realm="ManagementRealm"> - <socket-binding native="management-native"/> - </native-interface> - <http-interface security-realm="ManagementRealm"> - <socket-binding http="management-http"/> - </http-interface> - </management-interfaces> - </management> - - <profile> - <subsystem xmlns="urn:jboss:domain:logging:1.1"> - <console-handler name="CONSOLE"> - <level name="INFO"/> - <formatter> - <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/> - </formatter> - </console-handler> - <periodic-rotating-file-handler name="FILE"> - <formatter> - <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/> - </formatter> - <file relative-to="jboss.server.log.dir" path="server.log"/> - <suffix value=".yyyy-MM-dd"/> - <append value="true"/> - </periodic-rotating-file-handler> - <logger category="com.arjuna"> - <level name="WARN"/> - </logger> - <logger category="org.apache.tomcat.util.modeler"> - <level name="WARN"/> - </logger> - <logger category="sun.rmi"> - <level name="WARN"/> - </logger> - <logger category="jacorb"> - <level name="WARN"/> - </logger> - <logger category="jacorb.config"> - <level name="ERROR"/> - </logger> - <root-logger> - <level name="INFO"/> - <handlers> - <handler name="CONSOLE"/> - <handler name="FILE"/> - </handlers> - </root-logger> - </subsystem> - <subsystem xmlns="urn:jboss:domain:configadmin:1.0"/> - <subsystem xmlns="urn:jboss:domain:datasources:1.0"> - <datasources> - <datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true"> - <connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1</connection-url> - <driver>h2</driver> - <security> - <user-name>sa</user-name> - <password>sa</password> - </security> - </datasource> - <datasource jta="false" jndi-name="java:/jboss/postgresql" pool-name="Postgres" enabled="true" use-ccm="false"> - <connection-url>jdbc:postgresql://localhost:6543/lada</connection-url> - <driver-class>org.postgresql.Driver</driver-class> - <driver>postgresql-9.2-1002.jdbc4.jar</driver> - <security> - <user-name>lada</user-name> - <password>ohY9iiD9</password> - </security> - <validation> - <validate-on-match>false</validate-on-match> - <background-validation>false</background-validation> - </validation> - <statement> - <share-prepared-statements>false</share-prepared-statements> - </statement> - </datasource> - <drivers> - <driver name="h2" module="com.h2database.h2"> - <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class> - </driver> - </drivers> - </datasources> - </subsystem> - <subsystem xmlns="urn:jboss:domain:deployment-scanner:1.1"> - <deployment-scanner path="deployments" relative-to="jboss.server.base.dir" scan-interval="5000"/> - </subsystem> - <subsystem xmlns="urn:jboss:domain:ee:1.0"/> - <subsystem xmlns="urn:jboss:domain:ejb3:1.2"> - <session-bean> - <stateless> - <bean-instance-pool-ref pool-name="slsb-strict-max-pool"/> - </stateless> - <stateful default-access-timeout="5000" cache-ref="simple"/> - <singleton default-access-timeout="5000"/> - </session-bean> - <pools> - <bean-instance-pools> - <strict-max-pool name="slsb-strict-max-pool" max-pool-size="20" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/> - <strict-max-pool name="mdb-strict-max-pool" max-pool-size="20" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/> - </bean-instance-pools> - </pools> - <caches> - <cache name="simple" aliases="NoPassivationCache"/> - <cache name="passivating" passivation-store-ref="file" aliases="SimpleStatefulCache"/> - </caches> - <passivation-stores> - <file-passivation-store name="file"/> - </passivation-stores> - <async thread-pool-name="default"/> - <timer-service thread-pool-name="default"> - <data-store path="timer-service-data" relative-to="jboss.server.data.dir"/> - </timer-service> - <remote connector-ref="remoting-connector" thread-pool-name="default"/> - <thread-pools> - <thread-pool name="default"> - <max-threads count="10"/> - <keepalive-time time="100" unit="milliseconds"/> - </thread-pool> - </thread-pools> - </subsystem> - <subsystem xmlns="urn:jboss:domain:infinispan:1.2" default-cache-container="hibernate"> - <cache-container name="hibernate" default-cache="local-query"> - <local-cache name="entity"> - <transaction mode="NON_XA"/> - <eviction strategy="LRU" max-entries="10000"/> - <expiration max-idle="100000"/> - </local-cache> - <local-cache name="local-query"> - <transaction mode="NONE"/> - <eviction strategy="LRU" max-entries="10000"/> - <expiration max-idle="100000"/> - </local-cache> - <local-cache name="timestamps"> - <transaction mode="NONE"/> - <eviction strategy="NONE"/> - </local-cache> - </cache-container> - </subsystem> - <subsystem xmlns="urn:jboss:domain:jaxrs:1.0"/> - <subsystem xmlns="urn:jboss:domain:jca:1.1"> - <archive-validation enabled="true" fail-on-error="true" fail-on-warn="false"/> - <bean-validation enabled="true"/> - <default-workmanager> - <short-running-threads> - <core-threads count="50"/> - <queue-length count="50"/> - <max-threads count="50"/> - <keepalive-time time="10" unit="seconds"/> - </short-running-threads> - <long-running-threads> - <core-threads count="50"/> - <queue-length count="50"/> - <max-threads count="50"/> - <keepalive-time time="10" unit="seconds"/> - </long-running-threads> - </default-workmanager> - <cached-connection-manager/> - </subsystem> - <subsystem xmlns="urn:jboss:domain:jdr:1.0"/> - <subsystem xmlns="urn:jboss:domain:jmx:1.1"> - <show-model value="true"/> - <remoting-connector/> - </subsystem> - <subsystem xmlns="urn:jboss:domain:jpa:1.0"> - <jpa default-datasource=""/> - </subsystem> - <subsystem xmlns="urn:jboss:domain:mail:1.0"> - <mail-session jndi-name="java:jboss/mail/Default"> - <smtp-server outbound-socket-binding-ref="mail-smtp"/> - </mail-session> - </subsystem> - <subsystem xmlns="urn:jboss:domain:naming:1.1"/> - <subsystem xmlns="urn:jboss:domain:osgi:1.2" activation="lazy"> - <properties> - <property name="org.osgi.framework.startlevel.beginning"> - 1 - </property> - </properties> - <capabilities> - <capability name="javax.servlet.api:v25"/> - <capability name="javax.transaction.api"/> - <capability name="org.apache.felix.log" startlevel="1"/> - <capability name="org.jboss.osgi.logging" startlevel="1"/> - <capability name="org.apache.felix.configadmin" startlevel="1"/> - <capability name="org.jboss.as.osgi.configadmin" startlevel="1"/> - </capabilities> - </subsystem> - <subsystem xmlns="urn:jboss:domain:pojo:1.0"/> - <subsystem xmlns="urn:jboss:domain:remoting:1.1"> - <connector name="remoting-connector" socket-binding="remoting" security-realm="ApplicationRealm"/> - </subsystem> - <subsystem xmlns="urn:jboss:domain:resource-adapters:1.0"/> - <subsystem xmlns="urn:jboss:domain:sar:1.0"/> - <subsystem xmlns="urn:jboss:domain:security:1.1"> - <security-domains> - <security-domain name="other" cache-type="default"> - <authentication> - <login-module code="Remoting" flag="optional"> - <module-option name="password-stacking" value="useFirstPass"/> - </login-module> - <login-module code="RealmUsersRoles" flag="required"> - <module-option name="usersProperties" value="${jboss.server.config.dir}/application-users.properties"/> - <module-option name="rolesProperties" value="${jboss.server.config.dir}/application-roles.properties"/> - <module-option name="realm" value="ApplicationRealm"/> - <module-option name="password-stacking" value="useFirstPass"/> - </login-module> - </authentication> - </security-domain> - <security-domain name="jboss-web-policy" cache-type="default"> - <authorization> - <policy-module code="Delegating" flag="required"/> - </authorization> - </security-domain> - <security-domain name="jboss-ejb-policy" cache-type="default"> - <authorization> - <policy-module code="Delegating" flag="required"/> - </authorization> - </security-domain> - </security-domains> - </subsystem> - <subsystem xmlns="urn:jboss:domain:threads:1.1"/> - <subsystem xmlns="urn:jboss:domain:transactions:1.1"> - <core-environment> - <process-id> - <uuid/> - </process-id> - </core-environment> - <recovery-environment socket-binding="txn-recovery-environment" status-socket-binding="txn-status-manager"/> - <coordinator-environment default-timeout="300"/> - </subsystem> - <subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false"> - <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/> - <virtual-server name="default-host" enable-welcome-root="true"> - <alias name="localhost"/> - <alias name="example.com"/> - </virtual-server> - </subsystem> - <subsystem xmlns="urn:jboss:domain:webservices:1.1"> - <modify-wsdl-address>true</modify-wsdl-address> - <wsdl-host>${jboss.bind.address:127.0.0.1}</wsdl-host> - <endpoint-config name="Standard-Endpoint-Config"/> - <endpoint-config name="Recording-Endpoint-Config"> - <pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM"> - <handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/> - </pre-handler-chain> - </endpoint-config> - </subsystem> - <subsystem xmlns="urn:jboss:domain:weld:1.0"/> - </profile> - - <interfaces> - <interface name="management"> - <inet-address value="${jboss.bind.address.management:127.0.0.1}"/> - </interface> - <interface name="public"> - <inet-address value="${jboss.bind.address:127.0.0.1}"/> - </interface> - <interface name="unsecure"> - <inet-address value="${jboss.bind.address.unsecure:127.0.0.1}"/> - </interface> - </interfaces> - - <socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}"> - <socket-binding name="management-native" interface="management" port="${jboss.management.native.port:9999}"/> - <socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/> - <socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9443}"/> - <socket-binding name="ajp" port="8009"/> - <socket-binding name="http" port="8080"/> - <socket-binding name="https" port="8443"/> - <socket-binding name="osgi-http" interface="management" port="8090"/> - <socket-binding name="remoting" port="4447"/> - <socket-binding name="txn-recovery-environment" port="4712"/> - <socket-binding name="txn-status-manager" port="4713"/> - <outbound-socket-binding name="mail-smtp"> - <remote-destination host="localhost" port="25"/> - </outbound-socket-binding> - </socket-binding-group> - - <deployments> - <deployment name="lada.war" runtime-name="lada.war"> - <content sha1="1f843c64283af60e654df087c92d00948c872307"/> - </deployment> - </deployments> -</server>
--- a/src/main/java/de/intevation/lada/auth/Authentication.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,31 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.auth; - -import javax.ws.rs.core.HttpHeaders; - -/** - * Defines the interface authentication modules that provide information about - * the user. - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -public interface Authentication -{ - public boolean isAuthorizedUser(HttpHeaders headers) - throws AuthenticationException; - - public AuthenticationResponse authorizedGroups(HttpHeaders headers) - throws AuthenticationException; - - public boolean hasAccess(HttpHeaders headers, String probeId) - throws AuthenticationException; - - public String getUserName(HttpHeaders headers) - throws AuthenticationException; -}
--- a/src/main/java/de/intevation/lada/auth/AuthenticationException.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,19 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.auth; - -/** - * Exception thrown in the authentication process. - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -public class AuthenticationException -extends Exception -{ - -}
--- a/src/main/java/de/intevation/lada/auth/AuthenticationResponse.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.auth; - -import java.util.List; - -/** - * Response of an authentication module. Contains the user name, - * 'Messstellen' and 'Netzbetreiber'. - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -public class AuthenticationResponse -{ - private String user; - private List<String> mst; - private List<String> netzbetreiber; - - public AuthenticationResponse() { - } - - public String getUser() { - return user; - } - - public void setUser(String user) { - this.user = user; - } - - public List<String> getMst() { - return mst; - } - - public void setMst(List<String> mst) { - this.mst = mst; - } - - public List<String> getNetzbetreiber() { - return netzbetreiber; - } - - public void setNetzbetreiber(List<String> netzbetreiber) { - this.netzbetreiber = netzbetreiber; - } -}
--- a/src/main/java/de/intevation/lada/auth/Authorization.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,18 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.auth; - -/** - * Defines the interface for data access. - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -public interface Authorization -{ - public boolean isReadOnly(String id); -}
--- a/src/main/java/de/intevation/lada/auth/DataAuthorization.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,60 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.auth; - -import java.util.List; - -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; -import javax.inject.Named; - -import de.intevation.lada.data.QueryBuilder; -import de.intevation.lada.data.Repository; -import de.intevation.lada.model.LMessung; -import de.intevation.lada.rest.Response; - -/** -* This implementation of the authorization interface handles access to data -* objects. -* -* @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> -*/ -@ApplicationScoped -@Named("dataauthorization") -public class DataAuthorization -implements Authorization -{ - @Inject - @Named("readonlyrepository") - private Repository repository; - - /** - * Determine if the LProbe identified by probeId is writable for the user. - * - * @param probeId The probe id. - */ - public boolean isReadOnly(String probeId) { - QueryBuilder<LMessung> builder = - new QueryBuilder<LMessung>( - repository.getEntityManager(), - LMessung.class); - builder.and("probeId", probeId); - Response response = repository.filter(builder.getQuery()); - @SuppressWarnings("unchecked") - List<LMessung> messungen = (List<LMessung>) response.getData(); - if (messungen.isEmpty()) { - return false; - } - for(LMessung messung : messungen) { - if (messung.isFertig()) { - return true; - } - } - return false; - } -}
--- a/src/main/java/de/intevation/lada/auth/LdapAuthentication.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,197 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.auth; - -import java.util.ArrayList; -import java.util.List; - -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; -import javax.inject.Named; -import javax.naming.InvalidNameException; -import javax.naming.ldap.LdapName; -import javax.naming.ldap.Rdn; -import javax.persistence.EntityManager; -import javax.persistence.criteria.CriteriaBuilder; -import javax.persistence.criteria.CriteriaQuery; -import javax.persistence.criteria.Predicate; -import javax.persistence.criteria.Root; -import javax.ws.rs.core.HttpHeaders; - -import de.intevation.lada.data.QueryBuilder; -import de.intevation.lada.model.Auth; -import de.intevation.lada.model.LProbe; - -/** - * This implementation of the authentication interface reads LDAP users - * and groups from HTTP headers and validates the groups using a database. - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -@ApplicationScoped -@Named("ldapauth") -public class LdapAuthentication -implements Authentication -{ - @Inject - private EntityManager em; - - /** - * Determine if the header contains information about a valid user. - * - * @param headers The HTTP header containing LDAP user information. - */ - @Override - public boolean isAuthorizedUser(HttpHeaders headers) - throws AuthenticationException { - AuthenticationResponse auth = authorizedGroups(headers); - if (auth.getMst().isEmpty() || - auth.getNetzbetreiber().isEmpty()) { - return false; - } - return true; - } - - /** - * Synchronize LDAP user and groups with database. - * - * @param headers The HTTP header containing LDAP user information. - */ - @Override - public AuthenticationResponse authorizedGroups(HttpHeaders headers) - throws AuthenticationException { - List<String> groups = new ArrayList<String>(); - try { - LdapName ldap = extractLdapName(headers); - List<Rdn> rdns = ldap.getRdns(); - for (Rdn rdn: rdns) { - String value = (String)rdn.getValue(); - if (rdn.getType().equals("cn")) { - groups.add(value); - } - } - } - catch(InvalidNameException ine) { - throw new AuthenticationException(); - } - AuthenticationResponse response = getDatabaseAtributes(groups); - String user = extractUser(headers); - if (user == null) { - throw new AuthenticationException(); - } - response.setUser(user); - return response; - } - - /** - * Determine if the user has the permission to access a probe. - * - * @param headers The HTTP header containing LDAP user information. - * @param probeId The LProbe id. - */ - public boolean hasAccess (HttpHeaders headers, String probeId) - throws AuthenticationException { - QueryBuilder<LProbe> builder = new QueryBuilder<LProbe>(em, LProbe.class); - builder.and("probeId", probeId); - List<LProbe> probe = em.createQuery(builder.getQuery()).getResultList(); - if (probe.isEmpty()) { - return false; - } - String nbId = probe.get(0).getNetzbetreiberId(); - String mstId = probe.get(0).getMstId(); - AuthenticationResponse auth = authorizedGroups(headers); - if (auth.getNetzbetreiber().contains(nbId) && - auth.getMst().contains(mstId)) { - return true; - } - return false; - } - - - /** - * Get the user from HTTP header. - * - * @param headers The HTTP header containing user information. - * @return The user name. - */ - private String extractUser(HttpHeaders headers) { - List<String> user = headers.getRequestHeader("x-ldap-user"); - if (user == null || user.isEmpty()) { - return null; - } - return user.get(0); - } - - /** - * Extract LDAP information from HTTP header. - * - * @param headers The HTTP header containing ldap information. - * @return The Ldap object. - * @throws InvalidNameException - */ - private LdapName extractLdapName(HttpHeaders headers) throws InvalidNameException { - List<String> attributes = headers.getRequestHeader("x-ldap-groups"); - if (attributes == null ||attributes.isEmpty()) { - return new LdapName(""); - } - LdapName ldap = new LdapName(""); - String all = attributes.get(0); - String[] groups = all.split(";"); - for (int i = 0; i < groups.length; i++) { - String[] items = groups[i].trim().split(","); - for (int j = 0; j < items.length; j++) { - ldap.add(items[j]); - } - } - return ldap; - } - - /** - * Get the 'Messstellen' and 'Netzbetreiber' from database using the - * LDAP groups. - * - * @param groups List of LDAP groups. - * @return AuthenticationResponse object. - */ - private AuthenticationResponse getDatabaseAtributes(List<String> groups) { - CriteriaBuilder builder = em.getCriteriaBuilder(); - CriteriaQuery<Auth> criteria = builder.createQuery(Auth.class); - Root<Auth> member = criteria.from(Auth.class); - List<Predicate> orFilter = new ArrayList<Predicate>(); - for (String group: groups) { - orFilter.add(builder.equal(member.get("ldapGroup"), group)); - } - Predicate orf = builder.or(orFilter.toArray(new Predicate[orFilter.size()])); - criteria.where(orf); - List<Auth> result = em.createQuery(criteria).getResultList(); - List<String> mst = new ArrayList<String>(); - List<String> nb = new ArrayList<String>(); - for (Auth a: result) { - if (a.getSMessStelle() != null) { - mst.add(a.getSMessStelle().getMstId()); - } - if (a.getSNetzBetreiber() != null) { - nb.add(a.getSNetzBetreiber().getNetzbetreiberId()); - } - } - AuthenticationResponse response = new AuthenticationResponse(); - response.setMst(mst); - response.setNetzbetreiber(nb); - return response; - } - - /** - * Returns the username specified in the header. - * - * @param headers The HTTP header. - */ - public String getUserName(HttpHeaders headers) - throws AuthenticationException { - return extractUser(headers); - } -} \ No newline at end of file
--- a/src/main/java/de/intevation/lada/data/LKommentarMRepository.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,193 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.data; - -import java.util.List; - -import javax.ejb.EJBTransactionRolledbackException; -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; -import javax.inject.Named; -import javax.persistence.EntityExistsException; -import javax.persistence.EntityManager; -import javax.persistence.TransactionRequiredException; -import javax.persistence.criteria.CriteriaBuilder; -import javax.persistence.criteria.CriteriaQuery; -import javax.persistence.criteria.Root; - -import de.intevation.lada.manage.Manager; -import de.intevation.lada.model.LKommentarM; -import de.intevation.lada.rest.Response; - -/** - * This Container is an interface to read, write and update LKommentarM objects. - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -@ApplicationScoped -@Named("lkommentarmrepository") -public class LKommentarMRepository implements Repository -{ - /** - * The entitymanager managing the data. - */ - @Inject - private EntityManager em; - - /** - * The data manager providing database operations. - */ - @Inject - @Named("datamanager") - private Manager manager; - - public EntityManager getEntityManager() { - return this.em; - } - /** - * Filter object list by the given criteria. - * - * @param filter The query filter. - * @return Response object. - */ - public <T> Response filter(CriteriaQuery<T> filter) { - List<T> result = em.createQuery(filter).getResultList(); - return new Response(true, 200, result); - } - - - /** - * Get all objects of type <link>clazz</link>from database. - * - * @param clazz The object type. - * @return Response object. - */ - public <T> Response findAll(Class<T> clazz) { - CriteriaBuilder builder = em.getCriteriaBuilder(); - CriteriaQuery<T> criteria = builder.createQuery(clazz); - Root<T> member = criteria.from(clazz); - criteria.select(member); - List<T> result = em.createQuery(criteria).getResultList(); - return new Response(true, 200, result); - } - - /** - * Find a single object identified by its id. - * - * @param clazz The object type. - * @param id The object id. - * @return Response object. - */ - public <T> Response findById(Class<T> clazz, String id) { - T item = em.find(clazz, id); - if (item == null) { - return new Response(false, 600, null); - } - return new Response(true, 200, item); - } - - /** - * Create a new LKommentarM object. - * - * @param object The new object. - * @return Response object. - */ - public Response create(Object object) { - if (!(object instanceof LKommentarM)) { - return new Response(false, 602, object); - } - LKommentarM kommentar = (LKommentarM)object; - Response response = new Response(true, 200, kommentar); - try { - manager.create(kommentar); - return response; - } - catch (EntityExistsException eee) { - response.setSuccess(false); - response.setMessage(601); - } - catch (IllegalArgumentException iae) { - response.setSuccess(false); - response.setMessage(602); - } - catch (TransactionRequiredException tre) { - response.setSuccess(false); - response.setMessage(603); - } - catch (EJBTransactionRolledbackException te) { - response.setSuccess(false); - response.setMessage(604); - } - return response; - } - - /** - * Update a LKommentarM object. - * - * @param object The object to update. - * @return Response object. - */ - public Response update(Object object) { - if (!(object instanceof LKommentarM)) { - return new Response(false, 602, object); - } - LKommentarM kommentar = (LKommentarM)object; - Response response = new Response(true, 200, kommentar); - try { - manager.update(kommentar); - return response; - } - catch (EntityExistsException eee) { - response.setSuccess(false); - response.setMessage(601); - } - catch (IllegalArgumentException iae) { - response.setSuccess(false); - response.setMessage(602); - } - catch (TransactionRequiredException tre) { - response.setSuccess(false); - response.setMessage(603); - } - catch (EJBTransactionRolledbackException te) { - response.setSuccess(false); - response.setMessage(604); - } - return response; - } - - /** - * Delete a LKommentarM object. - * - * @param object The object to delete - * @return Response object. - */ - public Response delete(Object object) { - if (!(object instanceof LKommentarM)) { - return new Response(false, 602, null); - } - LKommentarM kommentar = (LKommentarM)object; - Response response = new Response(true, 200, null); - try { - manager.delete(kommentar); - } - catch (IllegalArgumentException iae) { - response.setSuccess(false); - response.setMessage(602); - } - catch (TransactionRequiredException tre) { - response.setSuccess(false); - response.setMessage(603); - } - return response; - } - @Override - public <T> Response filter(CriteriaQuery<T> filter, int size, int start) { - return null; - } -}
--- a/src/main/java/de/intevation/lada/data/LKommentarPRepository.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,202 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.data; - -import java.util.List; -import java.util.logging.Logger; - -import javax.ejb.EJBTransactionRolledbackException; -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; -import javax.inject.Named; -import javax.persistence.EntityExistsException; -import javax.persistence.EntityManager; -import javax.persistence.TransactionRequiredException; -import javax.persistence.criteria.CriteriaBuilder; -import javax.persistence.criteria.CriteriaQuery; -import javax.persistence.criteria.Root; - -import de.intevation.lada.manage.Manager; -import de.intevation.lada.model.LKommentarP; -import de.intevation.lada.rest.Response; - -/** - * This Container is an interface to read, write and update LKommentarP objects. - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -@ApplicationScoped -@Named("lkommentarRepository") -public class LKommentarPRepository implements Repository -{ - /** - * The entitymanager managing the data. - */ - @Inject - private EntityManager em; - - /** - * The data manager providing database operations. - */ - @Inject - @Named("datamanager") - private Manager manager; - - /** - * The logger for this class. - */ - @Inject - private Logger logger; - - public EntityManager getEntityManager() { - return this.em; - } - - /** - * Filter object list by the given criteria. - * - * @param filter The query filter. - * @return Response object. - */ - public <T> Response filter(CriteriaQuery<T> filter) { - List<T> result = em.createQuery(filter).getResultList(); - return new Response(true, 200, result); - } - - - /** - * Get all objects of type <link>clazz</link>from database. - * - * @param clazz The object type. - * @return Response object. - */ - public <T> Response findAll(Class<T> clazz) { - CriteriaBuilder builder = em.getCriteriaBuilder(); - CriteriaQuery<T> criteria = builder.createQuery(clazz); - Root<T> member = criteria.from(clazz); - criteria.select(member); - List<T> result = em.createQuery(criteria).getResultList(); - return new Response(true, 200, result); - } - - /** - * Find a single object identified by its id. - * - * @param clazz The object type. - * @param id The object id. - * @return Response object. - */ - public <T> Response findById(Class<T> clazz, String id) { - T item = em.find(clazz, id); - if (item == null) { - return new Response(false, 600, null); - } - return new Response(true, 200, item); - } - - /** - * Create a new LKommentarP object. - * - * @param object The new object. - * @return Response object. - */ - public Response create(Object object) { - if (!(object instanceof LKommentarP)) { - return new Response(false, 602, object); - } - LKommentarP kommentar = (LKommentarP)object; - Response response = new Response(true, 200, kommentar); - try { - manager.create(kommentar); - return response; - } - catch(EntityExistsException eee) { - response.setSuccess(false); - response.setMessage(601); - } - catch(IllegalArgumentException iae) { - response.setSuccess(false); - response.setMessage(602); - } - catch(TransactionRequiredException tre) { - response.setSuccess(false); - response.setMessage(603); - } - catch (EJBTransactionRolledbackException te) { - response.setSuccess(false); - response.setMessage(604); - } - return response; - } - - /** - * Update a LKommentarP object. - * - * @param object The object to update. - * @return Response object. - */ - public Response update(Object object) { - if (!(object instanceof LKommentarP)) { - return new Response(false, 602, object); - } - LKommentarP kommentar = (LKommentarP)object; - Response response = new Response(true, 200, kommentar); - try { - manager.update(kommentar); - return response; - } - catch (EntityExistsException eee) { - response.setSuccess(false); - response.setMessage(601); - } - catch (IllegalArgumentException iae) { - response.setSuccess(false); - response.setMessage(602); - } - catch (TransactionRequiredException tre) { - response.setSuccess(false); - response.setMessage(603); - } - catch (EJBTransactionRolledbackException te) { - response.setSuccess(false); - response.setMessage(604); - } - return response; - } - - /** - * Delete a LKommentarP object. - * - * @param object The object to delete. - * @return Response object. - */ - public Response delete(Object object) { - if (!(object instanceof LKommentarP)) { - return new Response(false, 602, null); - } - LKommentarP kommentar = (LKommentarP)object; - Response response = new Response(true, 200, null); - try { - manager.delete(kommentar); - } - catch (IllegalArgumentException iae) { - response.setSuccess(false); - response.setMessage(602); - } - catch (TransactionRequiredException tre) { - response.setSuccess(false); - response.setMessage(603); - } - return response; - } - - @Override - public <T> Response filter(CriteriaQuery<T> filter, int size, int start) { - return null; - } -}
--- a/src/main/java/de/intevation/lada/data/LMessungRepository.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,221 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.data; - -import java.util.List; -import java.util.Map; - -import javax.ejb.EJBTransactionRolledbackException; -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; -import javax.inject.Named; -import javax.persistence.EntityExistsException; -import javax.persistence.EntityManager; -import javax.persistence.TransactionRequiredException; -import javax.persistence.criteria.CriteriaBuilder; -import javax.persistence.criteria.CriteriaQuery; -import javax.persistence.criteria.Root; - -import de.intevation.lada.manage.Manager; -import de.intevation.lada.model.LMessung; -import de.intevation.lada.rest.Response; -import de.intevation.lada.validation.ValidationException; -import de.intevation.lada.validation.Validator; - -/** - * This Container is an interface to read, write and update LMessung obejcts. - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -@ApplicationScoped -@Named("lmessungrepository") -public class LMessungRepository implements Repository -{ - /** - * The entitymanager managing the data. - */ - @Inject - private EntityManager em; - - /** - * The data manager providing database operations. - */ - @Inject - @Named("datamanager") - private Manager manager; - - /** - * The validator used for LMessung objects. - */ - @Inject - @Named("lmessungvalidator") - private Validator validator; - - @Override - public EntityManager getEntityManager() { - return this.em; - } - /** - * Filter object list by the given criteria. - * - * @param filter The query filter. - * @return Response opbject. - */ - public <T> Response filter(CriteriaQuery<T> filter) { - List<T> result = em.createQuery(filter).getResultList(); - return new Response(true, 200, result); - } - - - /** - * Get all objects of type <link>clazz</link>from database. - * - * @param clazz The object type. - * @return Response object. - */ - public <T> Response findAll(Class<T> clazz) { - CriteriaBuilder builder = em.getCriteriaBuilder(); - CriteriaQuery<T> criteria = builder.createQuery(clazz); - Root<T> member = criteria.from(clazz); - criteria.select(member); - List<T> result = em.createQuery(criteria).getResultList(); - return new Response(true, 200, result); - } - - /** - * Find a single object identified by its id. - * - * @param clazz The object type. - * @param id The object id. - * @return Response object. - */ - public <T> Response findById(Class<T> clazz, String id) { - T item = em.find(clazz, id); - if (item == null) { - return new Response(false, 600, null); - } - return new Response(true, 200, item); - } - - /** - * Validate and persist a new LMessung object. - * - * @param object The new object - * @return Response object. - */ - public Response create(Object object) { - if (!(object instanceof LMessung)) { - return new Response(false, 602, object); - } - LMessung messung = (LMessung)object; - Response response = new Response(true, 200, messung); - try { - Map<String, Integer> warnings = validator.validate(messung, false); - manager.create(messung); - response.setWarnings(warnings); - return response; - } - catch (EntityExistsException eee) { - response.setSuccess(false); - response.setMessage(601); - } - catch (IllegalArgumentException iae) { - response.setSuccess(false); - response.setMessage(602); - } - catch (TransactionRequiredException tre) { - response.setSuccess(false); - response.setMessage(603); - } - catch (ValidationException ve) { - response.setSuccess(false); - response.setMessage(604); - response.setErrors(ve.getErrors()); - response.setWarnings(ve.getWarnings()); - } - catch (EJBTransactionRolledbackException te) { - response.setSuccess(false); - response.setMessage(604); - } - return response; - } - - /** - * Update a LMessung object. - * - * @param object The object to update - * @return Response object. - */ - public Response update(Object object) { - if (!(object instanceof LMessung)) { - return new Response(false, 602, object); - } - LMessung messung = (LMessung)object; - Response response = new Response(true, 200, messung); - // Try to save the new LProbe. - try { - Map<String, Integer> warnings = validator.validate(messung, true); - manager.update(messung); - response.setWarnings(warnings); - return response; - } - catch (EntityExistsException eee) { - response.setSuccess(false); - response.setMessage(601); - } - catch (IllegalArgumentException iae) { - response.setSuccess(false); - response.setMessage(602); - } - catch (TransactionRequiredException tre) { - response.setSuccess(false); - response.setMessage(603); - } - catch (ValidationException ve) { - response.setSuccess(false); - response.setMessage(604); - response.setErrors(ve.getErrors()); - response.setWarnings(ve.getWarnings()); - } - catch (EJBTransactionRolledbackException te) { - response.setSuccess(false); - response.setMessage(604); - } - return response; - } - - /** - * Delete a LMessung object. - * - * @param object The object to delete. - * @return Response object. - */ - public Response delete(Object object) { - if (!(object instanceof LMessung)) { - return new Response(false, 602, null); - } - LMessung messung = (LMessung)object; - Response response = new Response(true, 200, null); - try { - manager.delete(messung); - } - catch (IllegalArgumentException iae) { - response.setSuccess(false); - response.setMessage(602); - } - catch (TransactionRequiredException tre) { - response.setSuccess(false); - response.setMessage(603); - } - return response; - } - @Override - public <T> Response filter(CriteriaQuery<T> filter, int size, int start) { - return null; - } -}
--- a/src/main/java/de/intevation/lada/data/LMesswertRepository.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,209 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.data; - -import java.util.List; -import java.util.Map; - -import javax.ejb.EJBTransactionRolledbackException; -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; -import javax.inject.Named; -import javax.persistence.EntityExistsException; -import javax.persistence.EntityManager; -import javax.persistence.TransactionRequiredException; -import javax.persistence.criteria.CriteriaBuilder; -import javax.persistence.criteria.CriteriaQuery; -import javax.persistence.criteria.Root; - -import de.intevation.lada.manage.Manager; -import de.intevation.lada.model.LMesswert; -import de.intevation.lada.rest.Response; -import de.intevation.lada.validation.ValidationException; -import de.intevation.lada.validation.Validator; - -/** - * This Container is an interface to read, write and update LMesswert obejcts. - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -@ApplicationScoped -@Named("lmesswertrepository") -public class LMesswertRepository implements Repository -{ - /** - * The entitymanager managing the data. - */ - @Inject - private EntityManager em; - - /** - * The data manager providing database operations. - */ - @Inject - @Named("datamanager") - private Manager manager; - - /** - * The validator used for LMesswert. - */ - @Inject - @Named("lmesswertvalidator") - private Validator validator; - - public EntityManager getEntityManager() { - return this.em; - } - /** - * Filter object list by the given criteria. - * - * @param filter The query filter. - * @return Response object. - */ - public <T> Response filter(CriteriaQuery<T> filter) { - List<T> result = em.createQuery(filter).getResultList(); - return new Response(true, 200, result); - } - - - /** - * Get all objects of type <link>clazz</link>from database. - * - * @param clazz The object type. - * @return Response object. - */ - public <T> Response findAll(Class<T> clazz) { - CriteriaBuilder builder = em.getCriteriaBuilder(); - CriteriaQuery<T> criteria = builder.createQuery(clazz); - Root<T> member = criteria.from(clazz); - criteria.select(member); - List<T> result = em.createQuery(criteria).getResultList(); - return new Response(true, 200, result); - } - - /** - * Find a single object identified by its id. - * - * @param clazz The object type. - * @param id The object id. - * @return Response object. - */ - public <T> Response findById(Class<T> clazz, String id) { - T item = em.find(clazz, id); - if (item == null) { - return new Response(false, 600, null); - } - return new Response(true, 200, item); - } - - /** - * Create a new LMesswert object. - * - * @param object The new object. - * @return Response object. - */ - public Response create(Object object) { - if (!(object instanceof LMesswert)) { - return new Response(false, 602, object); - } - LMesswert messwert = (LMesswert)object; - Response response = new Response(true, 200, messwert); - try { - Map<String, Integer> warnings = validator.validate(messwert, false); - manager.create(messwert); - response.setWarnings(warnings); - return response; - } - catch (EntityExistsException eee) { - response.setSuccess(false); - response.setMessage(601); - } - catch (IllegalArgumentException iae) { - response.setSuccess(false); - response.setMessage(602); - } - catch (TransactionRequiredException tre) { - response.setSuccess(false); - response.setMessage(603); - } - catch (EJBTransactionRolledbackException te) { - response.setSuccess(false); - response.setMessage(604); - } - catch (ValidationException e) { - response.setSuccess(false); - response.setMessage(604); - } - return response; - } - - /** - * Update a LMesswert object. - * - * @param object The object to update. - * @return Response object. - */ - public Response update(Object object) { - if (!(object instanceof LMesswert)) { - return new Response(false, 602, object); - } - LMesswert messwert = (LMesswert)object; - Response response = new Response(true, 200, messwert); - try { - manager.update(messwert); - return response; - } - catch (EntityExistsException eee) { - response.setSuccess(false); - response.setMessage(601); - } - catch (IllegalArgumentException iae) { - response.setSuccess(false); - response.setMessage(602); - } - catch (TransactionRequiredException tre) { - response.setSuccess(false); - response.setMessage(603); - } - catch (EJBTransactionRolledbackException te) { - response.setSuccess(false); - response.setMessage(604); - } - return response; - } - - /** - * Delete a LMesswert object. - * - * @param object The object to delete. - * @return Response object. - */ - public Response delete(Object object) { - if (!(object instanceof LMesswert)) { - return new Response(false, 602, null); - } - LMesswert messwert = (LMesswert)object; - Response response = new Response(true, 200, null); - try { - manager.delete(messwert); - } - catch (IllegalArgumentException iae) { - response.setSuccess(false); - response.setMessage(602); - } - catch (TransactionRequiredException tre) { - response.setSuccess(false); - response.setMessage(603); - } - return response; - } - @Override - public <T> Response filter(CriteriaQuery<T> filter, int size, int start) { - return null; - } -} \ No newline at end of file
--- a/src/main/java/de/intevation/lada/data/LOrtRepository.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,223 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.data; - -import java.util.List; -import java.util.Map; - -import javax.ejb.EJBTransactionRolledbackException; -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; -import javax.inject.Named; -import javax.persistence.EntityExistsException; -import javax.persistence.EntityManager; -import javax.persistence.TransactionRequiredException; -import javax.persistence.criteria.CriteriaBuilder; -import javax.persistence.criteria.CriteriaQuery; -import javax.persistence.criteria.Root; - -import de.intevation.lada.manage.Manager; -import de.intevation.lada.model.LOrt; -import de.intevation.lada.rest.Response; -import de.intevation.lada.validation.ValidationException; -import de.intevation.lada.validation.Validator; - -/** - * This Container is an interface to read, write and update LOrt objects. - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -@ApplicationScoped -@Named("lortrepository") -public class LOrtRepository implements Repository -{ - /** - * The entitymanager managing the data. - */ - @Inject - private EntityManager em; - - /** - * The validator used for LOrt objects. - */ - @Inject - @Named("lortvalidator") - private Validator validator; - - /** - * The data manager providing database operations. - */ - @Inject - @Named("datamanager") - private Manager manager; - - @Override - public EntityManager getEntityManager() { - return this.em; - } - - /** - * Filter object list by the given criteria. - * - * @param filter The query filter. - * @return Response object. - */ - public <T> Response filter(CriteriaQuery<T> filter) { - List<T> result = em.createQuery(filter).getResultList(); - return new Response(true, 200, result); - } - - /** - * Get all objects of type <link>clazz</link>from database. - * - * @param clazz The object type. - * @return Response object. - */ - public <T> Response findAll(Class<T> clazz) { - CriteriaBuilder builder = em.getCriteriaBuilder(); - CriteriaQuery<T> criteria = builder.createQuery(clazz); - Root<T> member = criteria.from(clazz); - criteria.select(member); - List<T> result = em.createQuery(criteria).getResultList(); - return new Response(true, 200, result); - } - - /** - * Find a single object identified by its id. - * - * @param clazz The object type. - * @param id The object id. - * @return Response object. - */ - public <T> Response findById(Class<T> clazz, String id) { - T item = em.find(clazz, id); - if (item == null) { - return new Response(false, 600, null); - } - return new Response(true, 200, item); - } - - /** - * Validate and persist a new LOrt object. - * - * @param object The new object - * @return Response object. - */ - public Response create(Object object) { - if (!(object instanceof LOrt)) { - return new Response(false, 600, object); - } - LOrt ort = (LOrt)object; - Response response = new Response(true, 200, ort); - // Try to save the new LOrt. - try { - Map<String, Integer> warnings = validator.validate(ort, false); - manager.create(ort); - response.setWarnings(warnings); - return response; - } - catch (EntityExistsException eee) { - response.setSuccess(false); - response.setMessage(601); - } - catch (IllegalArgumentException iae) { - response.setSuccess(false); - response.setMessage(602); - } - catch (TransactionRequiredException tre) { - response.setSuccess(false); - response.setMessage(603); - } - catch (ValidationException ve) { - response.setSuccess(false); - response.setMessage(604); - response.setErrors(ve.getErrors()); - response.setWarnings(ve.getWarnings()); - } - catch (EJBTransactionRolledbackException te) { - response.setSuccess(false); - response.setMessage(604); - } - return response; - } - - /** - * Validate and update a LOrt object. - * - * @param object The object to update. - * @return Response object. - */ - public Response update(Object object) { - if (!(object instanceof LOrt)) { - return new Response(false, 600, object); - } - LOrt ort = (LOrt)object; - Response response = new Response(true, 200, ort); - // Try to update a LOrt object. - try { - Map<String, Integer> warnings = validator.validate(ort, true); - manager.update(ort); - response.setWarnings(warnings); - return response; - } - catch (EntityExistsException eee) { - response.setSuccess(false); - response.setMessage(601); - } - catch (IllegalArgumentException iae) { - response.setSuccess(false); - response.setMessage(602); - } - catch (TransactionRequiredException tre) { - response.setSuccess(false); - response.setMessage(603); - } - catch (ValidationException ve) { - response.setSuccess(false); - response.setMessage(604); - response.setErrors(ve.getErrors()); - response.setWarnings(ve.getWarnings()); - } - catch (EJBTransactionRolledbackException te) { - response.setSuccess(false); - response.setMessage(604); - } - return response; - } - - /** - * Delete a LOrt object. - * - * @param object The object to delete. - * @return Response object. - */ - public Response delete(Object object) { - if (!(object instanceof LOrt)) { - return new Response(false, 602, null); - } - LOrt ort = (LOrt)object; - Response response = new Response(true, 200, null); - try { - manager.delete(ort); - } - catch (IllegalArgumentException iae) { - response.setSuccess(false); - response.setMessage(602); - } - catch (TransactionRequiredException tre) { - response.setSuccess(false); - response.setMessage(603); - } - return response; - } - - @Override - public <T> Response filter(CriteriaQuery<T> filter, int size, int start) { - return null; - } -}
--- a/src/main/java/de/intevation/lada/data/LProbeRepository.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,247 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.data; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.ejb.EJBTransactionRolledbackException; -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; -import javax.inject.Named; -import javax.persistence.EntityExistsException; -import javax.persistence.EntityManager; -import javax.persistence.Query; -import javax.persistence.TransactionRequiredException; -import javax.persistence.criteria.CriteriaQuery; -import javax.ws.rs.core.MultivaluedMap; - -import de.intevation.lada.auth.Authorization; -import de.intevation.lada.manage.Manager; -import de.intevation.lada.model.LProbe; -import de.intevation.lada.model.LProbeInfo; -import de.intevation.lada.rest.Response; -import de.intevation.lada.validation.ValidationException; -import de.intevation.lada.validation.Validator; - -/** - * This Container is an interface to read, write and update LProbe objects. - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -@ApplicationScoped -@Named("lproberepository") -public class LProbeRepository implements Repository{ - /** - * The entitymanager managing the data. - */ - @Inject - private EntityManager em; - - /** - * The data manager providing database operations. - */ - @Inject - @Named("datamanager") - private Manager manager; - - /** - * The validator used for LProbe objects. - */ - @Inject - @Named("lprobevalidator") - private Validator validator; - - @Inject - @Named("dataauthorization") - private Authorization authorization; - - public EntityManager getEntityManager() { - return this.em; - } - - /** - * Filter object list by the given criteria. - * - * @param filter The query filter - * @return Response object. - */ - public <T> Response filter(CriteriaQuery<T> filter) { - List<T> result = em.createQuery(filter).getResultList(); - return new Response(true, 200, result); - } - - public Response filterFree( - String sql, - List<String> filters, - List<String> results, - MultivaluedMap<String, String> params, - List<String> msts) { - Query query = em.createNativeQuery(sql); - for (String filter: filters) { - List<String> param = params.get(filter); - List<String> clean = new ArrayList<String>(); - for(String p : param) { - clean.add(p.replace(",", "|")); - } - query.setParameter(filter, clean); - } - List<Object[]> result = query.getResultList(); - List<Map<String, Object>> res = new ArrayList<Map<String, Object>>(); - for (Object[] row: result) { - Map<String, Object> set = new HashMap<String, Object>(); - boolean ro = false; - for (int i = 0; i < row.length; i++) { - set.put(results.get(i), row[i]); - if (results.get(i).equals("probeId")) { - if (authorization.isReadOnly((String)row[i])) { - ro = true; - } - } - if (results.get(i).equals("mstId") && - !msts.contains((String)row[i])) { - ro = true; - } - } - set.put("readonly", ro); - res.add(set); - } - return new Response(true, 200, res); - } - - /** - * Get all objects. - * - * @param clazz The object type. (unused) - * @return Response object. - */ - public <T> Response findAll(Class<T> clazz) { - QueryBuilder<LProbeInfo> builder = - new QueryBuilder<LProbeInfo>(this.getEntityManager(), LProbeInfo.class); - builder.distinct(); - return filter(builder.getQuery()); - } - - /** - * Find object identified by its id. - * - * @param clazz The object type.(unused) - * @param id The object id. - * @return Response object. - */ - public <T> Response findById(Class<T> clazz, String id) { - QueryBuilder<LProbeInfo> builder = - new QueryBuilder<LProbeInfo>(this.getEntityManager(), LProbeInfo.class); - builder.and("probeId", id); - builder.distinct(); - return filter(builder.getQuery()); - } - - /** - * Validate and persist a new LProbe object. - * - * @param object The new LProbe object - * @return Response. - */ - public Response create(Object object) { - if (!(object instanceof LProbe)) { - return new Response(false, 602, object); - } - LProbe probe = (LProbe)object; - Response response = new Response(true, 200, probe); - // Try to save the new LProbe. - try { - Map<String, Integer> warnings = validator.validate(probe, false); - manager.persist(probe); - response.setWarnings(warnings); - return response; - } - catch (EntityExistsException eee) { - response.setSuccess(false); - response.setMessage(601); - } - catch (IllegalArgumentException iae) { - response.setSuccess(false); - response.setMessage(602); - } - catch (TransactionRequiredException tre) { - response.setSuccess(false); - response.setMessage(603); - } - catch (ValidationException ve) { - response.setSuccess(false); - response.setMessage(604); - response.setErrors(ve.getErrors()); - response.setWarnings(ve.getWarnings()); - } - catch (EJBTransactionRolledbackException te) { - response.setSuccess(false); - response.setMessage(604); - } - return response; - } - - /** - * Validate and update a LProbe object. - * - * @param object The object to update. - * @return Response object. - */ - public Response update(Object object) { - if (!(object instanceof LProbe)) { - return new Response(false, 602, object); - } - LProbe probe = (LProbe)object; - Response response = new Response(true, 200, probe); - try { - Map<String, Integer> warnings = validator.validate(probe, true); - manager.update(probe); - response.setWarnings(warnings); - return response; - } - catch (EntityExistsException eee) { - response.setSuccess(false); - response.setMessage(601); - } - catch (IllegalArgumentException iae) { - response.setSuccess(false); - response.setMessage(602); - } - catch (TransactionRequiredException tre) { - response.setSuccess(false); - response.setMessage(603); - } - catch (ValidationException ve) { - response.setSuccess(false); - response.setMessage(604); - response.setErrors(ve.getErrors()); - response.setWarnings(ve.getWarnings()); - } - catch (EJBTransactionRolledbackException te) { - response.setSuccess(false); - response.setMessage(604); - } - return response; - } - - /** - * This class does not support this operation. - * - * @param object - */ - public Response delete(Object object) { - return null; - } - - @Override - public <T> Response filter(CriteriaQuery<T> filter, int size, int start) { - return null; - } -}
--- a/src/main/java/de/intevation/lada/data/LStatusRepository.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,196 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.data; - -import java.util.List; - -import javax.ejb.EJBTransactionRolledbackException; -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; -import javax.inject.Named; -import javax.persistence.EntityExistsException; -import javax.persistence.EntityManager; -import javax.persistence.TransactionRequiredException; -import javax.persistence.criteria.CriteriaBuilder; -import javax.persistence.criteria.CriteriaQuery; -import javax.persistence.criteria.Root; - -import de.intevation.lada.manage.Manager; -import de.intevation.lada.model.LStatus; -import de.intevation.lada.rest.Response; - -/** - * This Container is an interface to read, write and update LStatus - * objects from the connected database. - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -@ApplicationScoped -@Named("lstatusrepository") -public class LStatusRepository implements Repository -{ - /** - * The entitymanager managing the data. - */ - @Inject - private EntityManager em; - - /** - * The data manager providing database operations. - */ - @Inject - @Named("datamanager") - private Manager manager; - - public EntityManager getEntityManager() { - return this.em; - } - - /** - * Filter object list by the given criteria. - * - * @param filter The query filter. - * @return Response object. - */ - public <T> Response filter(CriteriaQuery<T> filter) { - List<T> result = em.createQuery(filter).getResultList(); - return new Response(true, 200, result); - } - - - /** - * Get all objects of type <link>clazz</link>from database. - * - * @param clazz The object type. - * @return Response object. - */ - public <T> Response findAll(Class<T> clazz) { - CriteriaBuilder builder = em.getCriteriaBuilder(); - CriteriaQuery<T> criteria = builder.createQuery(clazz); - Root<T> member = criteria.from(clazz); - criteria.select(member); - List<T> result = em.createQuery(criteria).getResultList(); - return new Response(true, 200, result); - } - - /** - * Find a single object identified by its id. - * - * @param clazz The object type. - * @param id The object id. - * @return Response object. - */ - public <T> Response findById(Class<T> clazz, String id) { - T item = em.find(clazz, id); - if (item == null) { - return new Response(false, 600, null); - } - return new Response(true, 200, item); - } - - /** - * Create a new LStatus object. - * - * @param object The new object. - * @return Response object. - */ - public Response create(Object object) { - if (!(object instanceof LStatus)) { - return new Response(false, 602, object); - } - LStatus status = (LStatus)object; - Response response = new Response(true, 200, status); - try { - manager.create(status); - return response; - } - catch (EntityExistsException eee) { - response.setSuccess(false); - response.setMessage(601); - } - catch (IllegalArgumentException iae) { - response.setSuccess(false); - response.setMessage(602); - } - catch (TransactionRequiredException tre) { - response.setSuccess(false); - response.setMessage(603); - } - catch (EJBTransactionRolledbackException te) { - response.setSuccess(false); - response.setMessage(604); - } - return response; - } - - /** - * Update a Lstatus object. - * - * @param object The object to update. - * @return Response object. - */ - public Response update(Object object) { - if (!(object instanceof LStatus)) { - return new Response(false, 602, object); - } - LStatus status = (LStatus)object; - Response response = new Response(true, 200, status); - try { - manager.update(status); - return response; - } - catch (EntityExistsException eee) { - response.setSuccess(false); - response.setMessage(601); - } - catch (IllegalArgumentException iae) { - response.setSuccess(false); - response.setMessage(602); - } - catch (TransactionRequiredException tre) { - response.setSuccess(false); - response.setMessage(603); - } - catch (EJBTransactionRolledbackException te) { - response.setSuccess(false); - response.setMessage(604); - } - return response; - } - - /** - * Delete a LStatus object. - * - * @param object The object to delete. - * @return Response object. - */ - public Response delete(Object object) { - if (!(object instanceof LStatus)) { - return new Response(false, 602, null); - } - LStatus status = (LStatus)object; - Response response = new Response(true, 200, null); - try { - manager.delete(status); - } - catch (IllegalArgumentException iae) { - response.setSuccess(false); - response.setMessage(602); - } - catch (TransactionRequiredException tre) { - response.setSuccess(false); - response.setMessage(603); - } - return response; - } - - @Override - public <T> Response filter(CriteriaQuery<T> filter, int size, int start) { - return null; - } -}
--- a/src/main/java/de/intevation/lada/data/LZusatzwertRepository.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,207 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.data; - -import java.util.List; - -import javax.ejb.EJBTransactionRolledbackException; -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; -import javax.inject.Named; -import javax.persistence.EntityExistsException; -import javax.persistence.EntityManager; -import javax.persistence.TransactionRequiredException; -import javax.persistence.criteria.CriteriaBuilder; -import javax.persistence.criteria.CriteriaQuery; -import javax.persistence.criteria.Root; - -import de.intevation.lada.manage.Manager; -import de.intevation.lada.model.LZusatzWert; -import de.intevation.lada.model.LZusatzWertId; -import de.intevation.lada.rest.Response; - -/** - * This Container is an interface to read, write and update LZusatzWert - * objects from the connected database. - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -@ApplicationScoped -@Named("lzusatzwertrepository") -public class LZusatzwertRepository implements Repository -{ - /** - * The entitymanager managing the data. - */ - @Inject - private EntityManager em; - - /** - * The data manager providing database operations. - */ - @Inject - @Named("datamanager") - private Manager manager; - - public EntityManager getEntityManager() { - return this.em; - } - - /** - * Filter object list by the given criteria. - * - * @param filter The query filter. - * @return Response object. - */ - public <T> Response filter(CriteriaQuery<T> filter) { - List<T> result = em.createQuery(filter).getResultList(); - return new Response(true, 200, result); - } - - - /** - * Get all objects of type <link>clazz</link>from database. - * - * @param clazz The object type. - * @return Response object. - */ - public <T> Response findAll(Class<T> clazz) { - CriteriaBuilder builder = em.getCriteriaBuilder(); - CriteriaQuery<T> criteria = builder.createQuery(clazz); - Root<T> member = criteria.from(clazz); - criteria.select(member); - List<T> result = em.createQuery(criteria).getResultList(); - return new Response(true, 200, result); - } - - /** - * Find a single object identified by its id. - * - * @param clazz The object type. - * @param id The object id. - * @return Response object. - */ - public <T> Response findById(Class<T> clazz, String id) { - T item = em.find(clazz, id); - if (item == null) { - return new Response(false, 600, null); - } - return new Response(true, 200, item); - } - - /** - * Create a new LZusatzwert object. - * - * @param object The new object. - * @return Response object. - */ - public Response create(Object object) { - if (!(object instanceof LZusatzWert)) { - return new Response(false, 602, object); - } - LZusatzWert zusatzwert = (LZusatzWert)object; - LZusatzWertId id = - new LZusatzWertId( - zusatzwert.getProbeId(), - zusatzwert.getPzsId()); - zusatzwert.setId(id); - Response response = new Response(true, 200, zusatzwert); - // Try to save the new LProbe. - try { - manager.create(zusatzwert); - return response; - } - catch (EntityExistsException eee) { - response.setSuccess(false); - response.setMessage(601); - } - catch (IllegalArgumentException iae) { - response.setSuccess(false); - response.setMessage(602); - } - catch (TransactionRequiredException tre) { - response.setSuccess(false); - response.setMessage(603); - } - catch (EJBTransactionRolledbackException te) { - response.setSuccess(false); - response.setMessage(604); - } - return response; - } - - /** - * Update a LZusatzwert object. - * - * @param object The object to update. - * @return Response object. - */ - public Response update(Object object) { - if (!(object instanceof LZusatzWert)) { - return new Response(false, 602, object); - } - LZusatzWert zusatzwert = (LZusatzWert)object; - LZusatzWertId id = new LZusatzWertId( - zusatzwert.getProbeId(), - zusatzwert.getPzsId()); - zusatzwert.setId(id); - Response response = new Response(true, 200, zusatzwert); - try { - manager.update(zusatzwert); - return response; - } - catch (EntityExistsException eee) { - response.setSuccess(false); - response.setMessage(601); - } - catch (IllegalArgumentException iae) { - response.setSuccess(false); - response.setMessage(602); - } - catch (TransactionRequiredException tre) { - response.setSuccess(false); - response.setMessage(603); - } - catch (EJBTransactionRolledbackException te) { - response.setSuccess(false); - response.setMessage(604); - } - return response; - } - - /** - * Delete a LZusatzwert object. - * - * @param object The object to delete. - * @return Response object. - */ - public Response delete(Object object) { - if (!(object instanceof LZusatzWert)) { - return new Response(false, 602, null); - } - LZusatzWert zusatzwert = (LZusatzWert)object; - Response response = new Response(true, 200, null); - try { - manager.delete(zusatzwert); - } - catch (IllegalArgumentException iae) { - response.setSuccess(false); - response.setMessage(602); - } - catch (TransactionRequiredException tre) { - response.setSuccess(false); - response.setMessage(603); - } - return response; - } - - @Override - public <T> Response filter(CriteriaQuery<T> filter, int size, int start) { - return null; - } -}
--- a/src/main/java/de/intevation/lada/data/OrtRepository.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,189 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.data; - -import java.util.List; - -import javax.ejb.EJBTransactionRolledbackException; -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; -import javax.inject.Named; -import javax.persistence.EntityExistsException; -import javax.persistence.EntityManager; -import javax.persistence.TransactionRequiredException; -import javax.persistence.criteria.CriteriaBuilder; -import javax.persistence.criteria.CriteriaQuery; -import javax.persistence.criteria.Root; - -import de.intevation.lada.manage.Manager; -import de.intevation.lada.model.Ort; -import de.intevation.lada.rest.Response; - -/** - * Repository that allows read, write and update operations on 'Ort' objects. - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -@ApplicationScoped -@Named("ortrepository") -public class OrtRepository implements Repository -{ - /** - * The entitymanager managing the data. - */ - @Inject - private EntityManager em; - - /** - * THe data manager providing database operations. - */ - @Inject - @Named("datamanager") - private Manager manager; - - public EntityManager getEntityManager() { - return this.em; - } - - /** - * Filter object list by the given criteria. - * - * @param filter The query filter. - * @return Response object. - */ - public <T> Response filter(CriteriaQuery<T> filter) { - List<T> result = em.createQuery(filter).getResultList(); - return new Response(true, 200, result); - } - - - /** - * Get all objects of type <link>clazz</link>from database. - * - * @param clazz The object type. - * @return Response object - */ - public <T> Response findAll(Class<T> clazz) { - CriteriaBuilder builder = em.getCriteriaBuilder(); - CriteriaQuery<T> criteria = builder.createQuery(clazz); - Root<T> member = criteria.from(clazz); - criteria.select(member); - List<T> result = em.createQuery(criteria).getResultList(); - return new Response(true, 200, result); - } - - /** - * Find a single object identified by its id. - * - * @param clazz The object type. - * @param id The object id. - * @return Response object. - */ - public <T> Response findById(Class<T> clazz, String id) { - T item = em.find(clazz, id); - if (item == null) { - return new Response(false, 600, null); - } - return new Response(true, 200, item); - } - - /** - * Create a new 'Ort' object. - * - * @param object The new object. - * @return Response object. - */ - public Response create(Object object) { - if (!(object instanceof Ort)) { - return new Response(false, 602, object); - } - Ort ort = (Ort)object; - try { - manager.persist(ort); - int id = ort.getOrtId(); - ort.setBezeichnung("D_ " + String.format("%05d", id)); - manager.update(ort); - return new Response(true, 200, ort); - } - catch(EntityExistsException eee) { - return new Response(false, 601, ort); - } - catch(IllegalArgumentException iae) { - return new Response(false, 602, ort); - } - catch(TransactionRequiredException tre) { - return new Response(false, 603, ort); - } - } - - /** - * Update a 'Ort' object. - * - * @param object The object to update. - * @return Response object. - */ - public Response update(Object object) { - if (!(object instanceof Ort)) { - return new Response(false, 602, object); - } - Ort ort = (Ort)object; - Response response = new Response(true, 200, ort); - try { - manager.update(ort); - return response; - } - catch (EntityExistsException eee) { - response.setSuccess(false); - response.setMessage(601); - } - catch (IllegalArgumentException iae) { - response.setSuccess(false); - response.setMessage(602); - } - catch (TransactionRequiredException tre) { - response.setSuccess(false); - response.setMessage(603); - } - catch (EJBTransactionRolledbackException te) { - response.setSuccess(false); - response.setMessage(604); - } - return response; - } - - /** - * Delete a 'Ort' object. - * - * @param object The object to delete. - * @return Response object. - */ - public Response delete(Object object) { - if (!(object instanceof Ort)) { - return new Response(false, 602, null); - } - Ort ort = (Ort)object; - Response response = new Response(true, 200, null); - try { - manager.delete(ort); - } - catch (IllegalArgumentException iae) { - response.setSuccess(false); - response.setMessage(602); - } - catch (TransactionRequiredException tre) { - response.setSuccess(false); - response.setMessage(603); - } - return response; - } - - @Override - public <T> Response filter(CriteriaQuery<T> filter, int size, int start) { - return null; - } -} \ No newline at end of file
--- a/src/main/java/de/intevation/lada/data/QueryBuilder.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,234 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.data; - -import java.util.List; - -import javax.persistence.EntityManager; -import javax.persistence.criteria.CriteriaBuilder; -import javax.persistence.criteria.CriteriaQuery; -import javax.persistence.criteria.Path; -import javax.persistence.criteria.Predicate; -import javax.persistence.criteria.Root; - -/** - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -public class QueryBuilder<T> -{ - private EntityManager manager; - private CriteriaBuilder builder; - private CriteriaQuery<T> query; - private Root<T> root; - private Class<T> clazz; - private Predicate filter; - - /** - * Create a new QueryBuilder for the specified class. - * - * @param manager - * @param clazz - */ - public QueryBuilder(EntityManager manager, Class<T> clazz) { - this.manager = manager; - this.clazz = clazz; - this.builder = this.manager.getCriteriaBuilder(); - this.query = this.builder.createQuery(this.clazz); - this.root = this.query.from(this.clazz); - } - - /** - * Get the criteria query build with this class. - * - * @return The query. - */ - public CriteriaQuery<T> getQuery() { - this.query.where(this.filter); - return this.query; - } - - /** - * Logical AND operation. - * - * @param id The database column name. - * @param value The filter value - * @return The builder itself. - */ - public QueryBuilder<T> and(String id, Object value) { - Predicate p = this.builder.equal(this.root.get(id), value); - if (this.filter != null) { - this.filter = this.builder.and(this.filter, p); - } - else { - this.filter = this.builder.and(p); - } - return this; - } - - /** - * Logical AND with like operation. - * - * @param id The database column name. - * @param value The filter value - * @return The builder itself. - */ - public QueryBuilder<T> andLike(String id, String value) { - Path<String> path = this.root.get(id); - Predicate p = this.builder.like(path, value); - if (this.filter != null) { - this.filter = this.builder.and(this.filter, p); - } - else { - this.filter = this.builder.and(p); - } - return this; - } - - /** - * Logical OR operation. - * - * @param id The database column name - * @param value The filter value. - * @return The builder itself. - */ - public QueryBuilder<T> or(String id, Object value) { - Predicate p = this.builder.equal(this.root.get(id), value); - if (this.filter != null) { - this.filter = this.builder.or(this.filter, p); - } - else { - this.filter = this.builder.or(p); - } - return this; - } - - /** - * Logical OR with like operation. - * - * @param column The database column name. - * @param value The filter value - * @return The builder itself. - */ - public QueryBuilder<T> orLike(String id, String value) { - Path<String> path = this.root.get(id); - Predicate p = this.builder.like(path, value); - if (this.filter != null) { - this.filter = this.builder.or(this.filter, p); - } - else { - this.filter = this.builder.or(p); - } - return this; - } - - /** - * Logical AND operation. - * All elements in <i>values</i> will be concatenated with AND operator. - * - * @param id The database column name. - * @param values List of values. - * @return The builder itself. - */ - public QueryBuilder<T> and(String id, List<String> values) { - for(String v: values) { - this.and(id, v); - } - return this; - } - - /** - * Logical OR operation. - * All elements in <i>values</i> will be concatenated with OR operator. - * - * @param id The database column name. - * @param values List of values. - * @return The builder itself. - */ - public QueryBuilder<T> or(String id, List<String> values) { - for (String v: values) { - this.or(id, v); - } - return this; - } - - /** - * Logical AND operation. - * The actually defined query will be concatenated with the query defined - * in the builder <i>b</i>. - * - * @param b A builder. - * @return The builder itself. - */ - public QueryBuilder<T> and(QueryBuilder<T> b) { - if (b == null || b.filter == null) { - return this; - } - if (this.filter != null) { - this.filter = this.builder.and(this.filter, b.filter); - } - else { - this.filter = this.builder.and(b.filter); - } - return this; - } - - /** - * Logical OR operation. - * The actually defined query will be concatenated with the query defined - * in the builder <i>b</i>. - * - * @param b A builder. - * @return The builder itself. - */ - public QueryBuilder<T> or(QueryBuilder<T> b) { - if (b == null || b.filter == null) { - return this; - } - if (this.filter != null) { - this.filter = this.builder.or(this.filter, b.filter); - } - else { - this.filter = this.builder.or(b.filter); - } - return this; - } - - /** - * Use 'distinct' in the query. - */ - public void distinct() { - this.query.distinct(true); - } - - /** - * Order result by the specified column name - * - * @param id The column name. - * @param asc Ascending(true), Descending(false). - */ - public void orderBy(String id, boolean asc) { - if (asc) { - this.query.orderBy(this.builder.asc(this.root.get(id))); - } - else { - this.query.orderBy(this.builder.desc(this.root.get(id))); - } - } - - /** - * Get an empty instance of this builder to create subfilters. - * - * @return An empty instance of this builder. - */ - public QueryBuilder<T> getEmptyBuilder(){ - QueryBuilder<T> copy = new QueryBuilder<T>(manager, clazz); - copy.builder = this.builder; - copy.root = this.root; - return copy; - } -} \ No newline at end of file
--- a/src/main/java/de/intevation/lada/data/ReadOnlyRepository.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,123 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.data; - -import java.util.List; - -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; -import javax.inject.Named; -import javax.persistence.EntityManager; -import javax.persistence.criteria.CriteriaBuilder; -import javax.persistence.criteria.CriteriaQuery; -import javax.persistence.criteria.Root; - -import de.intevation.lada.rest.Response; - -/** - * Repository that allows read only access to model objects. - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -@ApplicationScoped -@Named("readonlyrepository") -public class ReadOnlyRepository implements Repository -{ - /** - * The entitymanager managing the data. - */ - @Inject - private EntityManager em; - - public EntityManager getEntityManager() { - return this.em; - } - - /** - * Filter object list by the given criteria. - * - * @param filter The filter query. - * @return Response object. - */ - public <T> Response filter(CriteriaQuery<T> filter) { - List<T> result = em.createQuery(filter).getResultList(); - return new Response(true, 200, result); - } - - /** - * Filter object list by the given criteria. - * - * @param filter The filter query. - * @return Response object. - */ - public <T> Response filter(CriteriaQuery<T> filter, int size, int start) { - List<T> result = em.createQuery(filter).getResultList(); - if (size > 0 && start > -1) { - List<T> newList = result.subList(start, size + start); - return new Response(true, 200, newList, result.size()); - } - return new Response(true, 200, result); - } - - /** - * Get all objects of type <link>clazz</link>from database. - * - * @param clazz The object type. - * @return Response object. - */ - public <T> Response findAll(Class<T> clazz) { - CriteriaBuilder builder = em.getCriteriaBuilder(); - CriteriaQuery<T> criteria = builder.createQuery(clazz); - Root<T> member = criteria.from(clazz); - criteria.select(member); - List<T> result = em.createQuery(criteria).getResultList(); - return new Response(true, 200, result); - } - - /** - * Find a single object identified by its id. - * - * @param clazz The object type. - * @param id The object id. - * @return Response object. - */ - public <T> Response findById(Class<T> clazz, String id) { - T item = em.find(clazz, id); - if (item == null) { - return new Response(false, 600, null); - } - return new Response(true, 200, item); - } - - /** - * This class does not support this operation. - * - * @param object - */ - public Response create(Object object) { - return null; - } - - /** - * This class does not support this operation. - * - * @param object - */ - public Response update(Object object) { - return null; - } - - /** - * This class does not support this operation. - * - * @param object - */ - public Response delete(Object object) { - return null; - } -} \ No newline at end of file
--- a/src/main/java/de/intevation/lada/data/Repository.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,38 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.data; - -import javax.persistence.EntityManager; -import javax.persistence.criteria.CriteriaQuery; - -import de.intevation.lada.rest.Response; - -/** - * This generic Container is an interface to request and select Data - * obejcts from the connected database. - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -public interface Repository -{ - public Response create(Object object); - - public Response update(Object object); - - public Response delete(Object object); - - public <T> Response filter(CriteriaQuery<T> filter); - - public <T> Response filter(CriteriaQuery<T> filter, int size, int start); - - public <T> Response findAll(Class<T> clazz); - - public <T> Response findById(Class<T> clazz, String id); - - public EntityManager getEntityManager(); -} \ No newline at end of file
--- a/src/main/java/de/intevation/lada/data/exporter/Creator.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,18 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.data.exporter; - - -/** - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -public interface Creator -{ - public String create(String probeId); -}
--- a/src/main/java/de/intevation/lada/data/exporter/Exporter.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,19 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.data.exporter; - -import java.io.InputStream; -import java.util.List; - -import de.intevation.lada.auth.AuthenticationResponse; - - -public interface Exporter -{ - public InputStream export(List<String> proben, AuthenticationResponse auth); -}
--- a/src/main/java/de/intevation/lada/data/exporter/LAFCreator.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,374 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.data.exporter; - -import java.text.DateFormat; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.List; - -import javax.inject.Inject; -import javax.inject.Named; - -import de.intevation.lada.data.QueryBuilder; -import de.intevation.lada.data.Repository; -import de.intevation.lada.model.LKommentarM; -import de.intevation.lada.model.LKommentarP; -import de.intevation.lada.model.LMessung; -import de.intevation.lada.model.LMesswert; -import de.intevation.lada.model.LOrt; -import de.intevation.lada.model.LProbe; -import de.intevation.lada.model.LProbeInfo; -import de.intevation.lada.model.LZusatzWert; -import de.intevation.lada.model.Ort; -import de.intevation.lada.model.SKoordinatenArt; -import de.intevation.lada.model.SMessEinheit; -import de.intevation.lada.model.SMessgroesse; -import de.intevation.lada.model.SProbenZusatz; -import de.intevation.lada.model.SProbenart; -import de.intevation.lada.rest.Response; - -/** - * This creator produces a LAF conform String containing all information about - * a single {@link LProbe} object including subobjects like - * {@link LMessung}, {@link LMesswert}, {@link LKommentarP}... - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -@Named("lafcreator") -public class LAFCreator -implements Creator -{ - - @Inject - @Named("lproberepository") - private Repository proben; - - @Inject - @Named("lmessungrepository") - private Repository messungRepo; - - @Inject - @Named("lortrepository") - private Repository ortRepo; - - @Inject - @Named("lmessungrepository") - private Repository messwertRepo; - - @Inject - @Named("lkommentarmrepository") - private Repository mkommentarRepo; - - @Inject - @Named("lkommentarRepository") - private Repository pkommentarRepo; - - @Inject - @Named("lzusatzwertrepository") - private Repository zusatzwertRepo; - - @Inject - @Named("readonlyrepository") - private Repository readonlyRepo; - - /** - * Create the LAF conform String. - * - * @param probeId The {@link LProbe} id. - */ - @Override - public String create(String probeId) { - String lafProbe = "%PROBE%\n"; - lafProbe += probeToLAF(probeId); - return lafProbe; - } - - /** - * Find the {@link LProbe} object and produce the LAF conform string. - * @param probeId The {@link LProbe} id. - * @return LAF conform string. - */ - private String probeToLAF(String probeId) { - Response found = this.proben.findById(LProbe.class, probeId); - if (found.getData() == null) { - return null; - } - ArrayList<LProbeInfo> aProbe = (ArrayList<LProbeInfo>)found.getData(); - LProbeInfo probe = aProbe.get(0); - String lafProbe = writeAttributes(probe); - return lafProbe; - } - - /** - * Write the attributes and subobjects. - * - * @param probe The {@link LProbeInfo} object. - * @return LAF conform string. - */ - private String writeAttributes(LProbeInfo probe) { - DateFormat format = new SimpleDateFormat("yyyyMMdd HHmm"); - QueryBuilder<LKommentarP> kommBuilder = - new QueryBuilder<LKommentarP>( - pkommentarRepo.getEntityManager(), LKommentarP.class); - kommBuilder.and("probeId", probe.getProbeId()); - Response kommentar = mkommentarRepo.filter(kommBuilder.getQuery()); - List<LKommentarP> kommentare = (List<LKommentarP>)kommentar.getData(); - - QueryBuilder<SProbenart> artBuilder = - new QueryBuilder<SProbenart>( - readonlyRepo.getEntityManager(), SProbenart.class); - artBuilder.and("probenartId", probe.getProbenartId()); - Response art = readonlyRepo.filter(artBuilder.getQuery()); - List<SProbenart> probenart = (List<SProbenart>)art.getData(); - - QueryBuilder<LZusatzWert> zusatzBuilder = - new QueryBuilder<LZusatzWert>( - zusatzwertRepo.getEntityManager(), LZusatzWert.class); - zusatzBuilder.and("probeId", probe.getProbeId()); - Response zusatz = zusatzwertRepo.filter(zusatzBuilder.getQuery()); - List<LZusatzWert> zusatzwerte = (List<LZusatzWert>)zusatz.getData(); - - String laf = ""; - laf += probe.getDatenbasisId() == null ? - "": lafLine("DATENBASIS_S", probe.getDatenbasisId().toString()); - laf += probe.getNetzbetreiberId() == null ? - "" : lafLine("NETZKENNUNG", probe.getNetzbetreiberId()); - laf += probe.getMstId() == null ? - "" : lafLine("MESSSTELLE", probe.getMstId()); - laf += lafLine("PROBE_ID", probe.getProbeId()); - laf += lafLine("HAUPTPROBENNUMMER", probe.getHauptprobenNr()); - laf += probe.getBaId() == null ? - "" : lafLine("MESSPROGRAMM_S", "\"" + probe.getBaId() + "\""); - laf += probe.getProbenartId() == null ? - "" : lafLine("PROBENART", - "\"" + probenart.get(0).getProbenart() + "\""); - laf += probe.getSolldatumBeginn() == null ? - "" : lafLine("SOLL_DATUM_UHRZEIT_A", - format.format(probe.getSolldatumBeginn())); - laf += probe.getSolldatumEnde() == null ? - "" : lafLine("SOLL_DATUM_UHRZEIT_E", - format.format(probe.getSolldatumEnde())); - laf += probe.getProbeentnahmeBeginn() == null ? - "" : lafLine("PROBENAHME_DATUM_UHRZEIT_A", - format.format(probe.getProbeentnahmeBeginn())); - laf += probe.getProbeentnahmeEnde() == null ? - "" : lafLine("PROBENAHME_DATUM_UHRZEIT_E", - format.format(probe.getProbeentnahmeEnde())); - laf += probe.getUmwId() == null ? - "" : lafLine("UMWELTBEREICH_S", probe.getUmwId()); - laf += probe.getMedia() == null ? - "" : lafLine("MEDIUM", "\"" + probe.getMedia() + "\""); - laf += probe.getMediaDesk() == null ? - "" : lafLine("DESKRIPTOREN", "\"" + probe.getMediaDesk() + "\""); - laf += probe.getTest() == Boolean.TRUE ? - lafLine("TESTDATEN", "1") : lafLine("TESTDATEN", "0"); - for (LZusatzWert zw : zusatzwerte) { - laf += writeZusatzwert(zw); - } - for (LKommentarP kp : kommentare) { - laf += writeKommentar(kp); - } - laf += writeMessung(probe); - laf += writeOrt(probe); - return laf; - } - - /** - * Write {@link LZusatzWert} attributes. - * - * @param zw The {@link LZusatzWert}. - * @return Single LAF line. - */ - private String writeZusatzwert(LZusatzWert zw) { - QueryBuilder<SProbenZusatz> builder = - new QueryBuilder<SProbenZusatz>( - readonlyRepo.getEntityManager(), SProbenZusatz.class); - builder.and("pzsId", zw.getPzsId()); - List<SProbenZusatz> zusaetze = - (List<SProbenZusatz>)readonlyRepo.filter(builder.getQuery()); - - String value = "\"" + zusaetze.get(0).getBeschreibung() + "\""; - value += " " + zw.getMesswertPzs(); - value += " " + zusaetze.get(0).getMehId(); - value += " " + zw.getMessfehler(); - return lafLine("PZB_S", value); - } - - /** - * Write {@link LOrt} attributes. - * - * @param probe The {@link LProbeInfo} object. - * @return LAF conform string - */ - private String writeOrt(LProbeInfo probe) { - QueryBuilder<LOrt> builder = - new QueryBuilder<LOrt>( - ortRepo.getEntityManager(), - LOrt.class); - builder.and("probeId", probe.getProbeId()); - Response objects = ortRepo.filter(builder.getQuery()); - List<LOrt> orte = (List<LOrt>)objects.getData(); - - String laf = ""; - for(LOrt o : orte) { - laf += "%ORT%\n"; - QueryBuilder<Ort> oBuilder = - new QueryBuilder<Ort>( - readonlyRepo.getEntityManager(), Ort.class); - oBuilder.and("ortId", o.getOrtId()); - Response resp = readonlyRepo.filter(oBuilder.getQuery()); - List<Ort> ort = (List<Ort>)resp.getData(); - laf += lafLine("ORT_CODE", - "\"" + ort.get(0).getBezeichnung() + "\""); - laf += lafLine("ORT_TYP", "\"" + o.getOrtsTyp() + "\""); - laf += o.getOrtszusatztext() == null ? "": - lafLine("ORT_ZUSATZTEXT", "\"" + o.getOrtszusatztext() + "\""); - laf += lafLine("ORT_LAND_S", String.valueOf(ort.get(0).getStaatId())); - QueryBuilder<SKoordinatenArt> kaBuilder = - new QueryBuilder<SKoordinatenArt>( - readonlyRepo.getEntityManager(), SKoordinatenArt.class); - String koord = ""; - koord += "05 "; - koord += ort.get(0).getLatitude() + " "; - koord += ort.get(0).getLongitude(); - //TODO: use table koordinatenart and koord*extern! - laf += lafLine("ORT_KOORDINATEN_S", koord); - laf += lafLine("ORT_GEMEINDESCHLUESSEL", ort.get(0).getGemId()); - } - return laf; - } - - /** - * Write {@link LKommentarP} attributes. - * - * @param kp The {@link LKommentarP} object. - * @return Single LAF line. - */ - private String writeKommentar(LKommentarP kp) { - DateFormat format = new SimpleDateFormat("yyyyMMdd HHmm"); - String value = "\"" + kp.getErzeuger() + "\" " + - format.format(kp.getKDatum()) + " " + - "\"" + kp.getKText() + "\""; - return lafLine("PROBENKOMMENTAR", value); - } - - /** - * Write {@link LMessung} attributes. - * - * @param probe The {@link LProbeInfo} object. - * @return LAF conform string. - */ - private String writeMessung(LProbeInfo probe) { - DateFormat format = new SimpleDateFormat("yyyyMMdd HHmm"); - // Get all messungen - QueryBuilder<LMessung> builder = - new QueryBuilder<LMessung>( - messungRepo.getEntityManager(), - LMessung.class); - builder.and("probeId", probe.getProbeId()); - Response objects = messungRepo.filter(builder.getQuery()); - List<LMessung> mess = (List<LMessung>)objects.getData(); - - String laf = ""; - for(LMessung m : mess) { - laf += "%MESSUNG%\n"; - QueryBuilder<LMesswert> wertBuilder = - new QueryBuilder<LMesswert>( - messwertRepo.getEntityManager(), LMesswert.class); - wertBuilder.and("probeId", probe.getProbeId()).and("messungsId", m.getMessungsId()); - Response messw = messwertRepo.filter(wertBuilder.getQuery()); - List<LMesswert> werte = (List<LMesswert>)messw.getData(); - QueryBuilder<LKommentarM> kommBuilder = - new QueryBuilder<LKommentarM>( - mkommentarRepo.getEntityManager(), LKommentarM.class); - kommBuilder.and("probeId", probe.getProbeId()).and("messungsId", m.getMessungsId()); - Response kommentar = mkommentarRepo.filter(kommBuilder.getQuery()); - List<LKommentarM> kommentare = (List<LKommentarM>)kommentar.getData(); - laf += lafLine("MESSUNGS_ID", m.getMessungsId().toString()); - laf += lafLine("NEBENPROBENNUMMER", m.getNebenprobenNr()); - laf += m.getMesszeitpunkt() == null ? - "" : lafLine( - "MESS_DATUM_UHRZEIT", - format.format(m.getMesszeitpunkt())); - laf += m.getMessdauer() == null ? - "" : lafLine("MESSZEIT_SEKUNDEN", m.getMessdauer().toString()); - laf += m.getMmtId() == null ? - "" : lafLine("MESSMETHODE_S", m.getMmtId()); - for (LMesswert mw : werte) { - laf += writeMesswert(mw); - } - for (LKommentarM mk: kommentare) { - laf += writeKommentar(mk); - } - } - return laf; - } - - /** - * Write {@link LKommentarM} attributes. - * @param mk The {@link LKommentarM} object. - * @return Single LAF line. - */ - private String writeKommentar(LKommentarM mk) { - DateFormat format = new SimpleDateFormat("yyyyMMdd HHmm"); - String value = "\"" + mk.getErzeuger() + "\" " + - format.format(mk.getKDatum()) + " " + - "\"" + mk.getKText() + "\""; - return lafLine("KOMMENTAR", value); - } - - /** - * Write {@link LMesswert} attributes. - * @param mw The {@link LMesswert} object. - * @return Single LAF line. - */ - private String writeMesswert(LMesswert mw) { - QueryBuilder<SMessgroesse> builder = - new QueryBuilder<SMessgroesse>( - readonlyRepo.getEntityManager(), SMessgroesse.class); - builder.and("messgroesseId", mw.getMessgroesseId()); - Response r = readonlyRepo.filter(builder.getQuery()); - List<SMessgroesse> sm = (List<SMessgroesse>)r.getData(); - QueryBuilder<SMessEinheit> einheitBuilder = - new QueryBuilder<SMessEinheit>( - readonlyRepo.getEntityManager(), SMessEinheit.class); - einheitBuilder.and("mehId", mw.getMehId()); - Response re = readonlyRepo.filter(einheitBuilder.getQuery()); - List<SMessEinheit> me = (List<SMessEinheit>)re.getData(); - String value = "\"" + sm.get(0).getMessgroesse() + "\""; - if (mw.getGrenzwertueberschreitung() != null && - !mw.getGrenzwertueberschreitung()) { - value += " <"; - } - else { - value += " "; - } - value += mw.getMesswert(); - value += " \"" + me.get(0).getEinheit() + "\""; - value += mw.getMessfehler() == null ? " NULL" : " " + mw.getMessfehler(); - value += mw.getNwgZuMesswert() == null ? " NULL" : " " + mw.getNwgZuMesswert(); - value += mw.getGrenzwertueberschreitung() == null ? " N" : - mw.getGrenzwertueberschreitung() ? " Y" : " N"; - return lafLine("MESSWERT", value); - } - - /** - * Write a single LAF conform line from key and value. - * - * @param key The key. - * @param value The value. - * @return LAF conform line. - */ - private String lafLine(String key, String value) { - for (int i = key.length(); i < 30; i++) { - key += " "; - } - return key + value + "\n"; - } -}
--- a/src/main/java/de/intevation/lada/data/exporter/LAFExporter.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,60 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.data.exporter; - -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.util.List; - -import javax.inject.Inject; -import javax.inject.Named; - -import de.intevation.lada.auth.AuthenticationResponse; -import de.intevation.lada.model.LProbe; - -/** -* The LAF exporter implements {@link Exporter} to produce a LAF file. -* -* @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> -*/ -@Named("lafexporter") -public class LAFExporter -implements Exporter -{ - - @Inject - @Named("lafcreator") - private Creator creator; - - /** - * Export the {@link LProbe} objects. - * - * @param proben List of probe ids. - * @param auth The authentication information. - * @return InputStream with the LAF data. - */ - @Override - public InputStream export( - List<String> proben, - AuthenticationResponse auth - ) { - String laf = ""; - for (String probeId: proben) { - laf += creator.create(probeId); - } - InputStream in = new ByteArrayInputStream(laf.getBytes()); - try { - in.close(); - } - catch (IOException e) { - //TODO Exception handling. - } - return in; - } -}
--- a/src/main/java/de/intevation/lada/data/importer/AttributeMapper.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,554 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.data.importer; - -import java.text.DateFormat; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import javax.ejb.Stateless; -import javax.inject.Inject; -import javax.inject.Named; -import javax.persistence.EntityManager; - -import de.intevation.lada.data.QueryBuilder; -import de.intevation.lada.data.Repository; -import de.intevation.lada.model.LKommentarM; -import de.intevation.lada.model.LKommentarP; -import de.intevation.lada.model.LMessung; -import de.intevation.lada.model.LMessungId; -import de.intevation.lada.model.LMesswert; -import de.intevation.lada.model.LProbe; -import de.intevation.lada.model.LProbeInfo; -import de.intevation.lada.model.LZusatzWert; -import de.intevation.lada.model.SDatenbasis; -import de.intevation.lada.model.SMessEinheit; -import de.intevation.lada.model.SMessgroesse; -import de.intevation.lada.model.SProbenZusatz; -import de.intevation.lada.model.SProbenart; -import de.intevation.lada.model.SUmwelt; -import de.intevation.lada.rest.Response; - -/** - * The AttributeMapper is used to set object attributes via string based - * key value pairs. The key represents a member of an entity object. - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -@Stateless -public class AttributeMapper -{ - @Inject - private EntityManager em; - - @Inject - @Named("lproberepository") - private Repository probeRepo; - - @Inject - @Named("ortrepository") - private Repository ortRepo; - - @Inject - @Named("readonlyrepository") - private Repository sRepository; - - private List<ReportData> warnings; - private List<ReportData> errors; - - /** - * Default constructor to create a new AttributeMapper object. - */ - public AttributeMapper() { - this.warnings = new ArrayList<ReportData>(); - this.errors = new ArrayList<ReportData>(); - } - - /** - * Add an attribute to the given LProbe object. - * - * @param key The key mapping to a object member. - * @param value The value to set. - * @param probe The entity object. - * @return The updated entity object. - */ - public LProbe addAttribute(String key, Object value, LProbe probe) { - DateFormat format = new SimpleDateFormat("yyyyMMdd HHmm"); - if ("datenbasis_s".equals(key) && probe.getDatenbasisId() == null) { - Integer v = Integer.valueOf(value.toString()); - probe.setDatenbasisId(v); - } - else if ("datenbasis_s".equals(key) && probe.getDatenbasisId() != null){ - this.warnings.add(new ReportData(key, value.toString(), 672)); - } - - if ("datenbasis".equals(key) && probe.getDatenbasisId() == null) { - QueryBuilder<SDatenbasis> builder = - new QueryBuilder<SDatenbasis>( - this.sRepository.getEntityManager(), SDatenbasis.class); - builder.and("datenbasis", value.toString()); - Response response = sRepository.filter(builder.getQuery()); - List<SDatenbasis> datenbasis = (List<SDatenbasis>)response.getData(); - Integer v = Integer.valueOf(datenbasis.get(0).getDatenbasisId()); - probe.setDatenbasisId(v); - } - else if ("datenbasis".equals(key) && probe.getDatenbasisId() != null){ - this.warnings.add(new ReportData(key, value.toString(), 672)); - } - - if ("probe_id".equals(key)) { - Response response = - probeRepo.findById(LProbeInfo.class, value.toString()); - List<LProbeInfo> info = (List<LProbeInfo>)response.getData(); - if (info != null && info.size() > 0) { - errors.add(new ReportData("probe_id", value.toString(), 671)); - return null; - } - probe.setProbeId(value.toString()); - } - - if ("hauptprobennummer".equals(key)) { - probe.setHauptprobenNr(value.toString()); - } - - if ("mpr_id".equals(key)) { - Integer v = Integer.valueOf(value.toString()); - probe.setMprId(v); - } - - if ("netzkennung".equals(key)) { - probe.setNetzbetreiberId(value.toString()); - } - - if ("messstelle".equals(key)) { - probe.setMstId(value.toString()); - } - - if ("messprogramm_s".equals(key) && probe.getBaId() == null) { - probe.setBaId(value.toString()); - } - else if ("messprogramm_s".equals(key) && probe.getBaId() != null){ - this.warnings.add(new ReportData(key, value.toString(), 672)); - } - - if ("soll_datum_uhrzeit_a".equals(key)) { - try { - Date d = format.parse(value.toString()); - probe.setSolldatumBeginn(d); - } - catch (ParseException e) { - this.warnings.add(new ReportData(key, value.toString(), 674)); - } - } - if ("soll_datum_uhrzeit_e".equals(key)) { - try { - Date d = format.parse(value.toString()); - probe.setSolldatumEnde(d); - } - catch (ParseException e) { - this.warnings.add(new ReportData(key, value.toString(), 674)); - } - } - if ("probenahme_datum_uhrzeit_a".equals(key)) { - try { - Date d = format.parse(value.toString()); - probe.setProbeentnahmeBeginn(d); - } - catch (ParseException e) { - this.warnings.add(new ReportData(key, value.toString(), 674)); - } - } - if ("probenahme_datum_uhrzeit_e".equals(key)) { - try { - Date d = format.parse(value.toString()); - probe.setProbeentnahmeEnde(d); - } - catch (ParseException e) { - this.warnings.add(new ReportData(key, value.toString(), 674)); - } - } - - if ("umweltbereich_s".equals(key) && probe.getUmwId() == null) { - probe.setUmwId(value.toString()); - } - else if ("umweltbereich_s".equals(key) && probe.getUmwId() != null){ - this.warnings.add(new ReportData(key, value.toString(), 672)); - } - if ("umweltbereich_c".equals(key) && probe.getUmwId() == null) { - QueryBuilder<SUmwelt> builder = - new QueryBuilder<SUmwelt>( - sRepository.getEntityManager(), SUmwelt.class); - int length = value.toString().length() > 80 ? 80 : value.toString().length(); - builder.and("umweltBereich", value.toString().substring(0, length)); - Response response = sRepository.filter(builder.getQuery()); - List<SUmwelt> umw = (List<SUmwelt>)response.getData(); - probe.setUmwId(umw.get(0).getUmwId()); - } - else if ("umweltbereich_c".equals(key) && probe.getUmwId() != null){ - this.warnings.add(new ReportData(key, value.toString(), 672)); - } - - if ("deskriptoren".equals(key)) { - probe.setMediaDesk(value.toString()); - } - - if ("testdaten".equals(key)) { - if (!value.toString().equals("0")) { - probe.setTest(true); - } - else { - probe.setTest(false); - } - } - - if ("medium".equals(key)) { - probe.setMedia(value.toString()); - } - - if ("probenart".equals(key)) { - QueryBuilder<SProbenart> builder = - new QueryBuilder<SProbenart>( - sRepository.getEntityManager(), SProbenart.class); - builder.and("probenart", value.toString()); - Response response = sRepository.filter(builder.getQuery()); - List<SProbenart> art = (List<SProbenart>)response.getData(); - probe.setProbenartId(Integer.valueOf(art.get(0).getProbenartId())); - } - return probe; - } - - /** - * Add an attribute to the given LKommentarP object. - * - * @param key The key mapping to a object member. - * @param value The value to set. - * @param kommentar The entity object. - * @return The updated entity object. - */ - public LKommentarP addAttribute( - String key, - Object value, - LKommentarP kommentar - ) { - DateFormat format = new SimpleDateFormat("yyyyMMdd HHmm"); - String v = value.toString(); - String erzeuger = v.substring(1, 5); - String date = v.substring(8, 21); - Date d; - try { - d = format.parse(date); - kommentar.setKDatum(d); - } - catch (ParseException e) { - this.warnings.add(new ReportData(key, value.toString(), 674)); - } - String text = v.substring(23, v.length() -1); - kommentar.setErzeuger(erzeuger); - kommentar.setKText(text); - return kommentar; - } - - /** - * Add an attribute to the given LKommentarM object. - * - * @param key The key mapping to a object member. - * @param value The value to set. - * @param kommentar The entity object. - * @return The updated entity object. - */ - public LKommentarM addAttribute( - String key, - Object value, - LKommentarM kommentar - ) { - DateFormat format = new SimpleDateFormat("yyyyMMdd HHmm"); - String v = value.toString(); - String erzeuger = v.substring(1, 5); - String date = v.substring(8, 21); - Date d; - try { - d = format.parse(date); - kommentar.setKDatum(d); - } - catch (ParseException e) { - this.warnings.add(new ReportData(key, value.toString(), 674)); - } - String text = v.substring(23, v.length() -1); - kommentar.setErzeuger(erzeuger); - kommentar.setKText(text); - return kommentar; - } - - /** - * Add an attribute to the given LMessung object. - * - * @param key The key mapping to a object member. - * @param value The value to set. - * @param messung The entity object. - * @return The updated entity object. - */ - public LMessung addAttribute( - String key, - Object value, - LMessung messung - ) { - DateFormat format = new SimpleDateFormat("yyyyMMdd HHmm"); - if ("messungs_id".equals(key)) { - LMessungId id = messung.getId(); - Integer v = Integer.valueOf(value.toString()); - id.setMessungsId(v); - messung.setMessungsId(v); - messung.setId(id); - } - else if ("nebenprobennummer".equals(key)) { - messung.setNebenprobenNr(value.toString()); - } - else if ("mess_datum_uhrzeit".equals(key)) { - try { - Date d = format.parse(value.toString()); - messung.setMesszeitpunkt(d); - } - catch (ParseException e) { - this.warnings.add(new ReportData(key, value.toString(), 674)); - } - } - else if ("messzeit_sekunden".equals(key)) { - Integer i = Integer.valueOf(value.toString()); - messung.setMessdauer(i); - } - else if ("messmethode_s".equals(key)) { - messung.setMmtId(value.toString()); - } - else if ("bearbeitungsstatus".equals(key)) { - //ignored.!? - } - else if ("erfassung_abgeschlossen".equals(key)) { - if(!value.toString().equals("0")) { - messung.setFertig(true); - } - else { - messung.setFertig(false); - } - } - return messung; - } - - /** - * Add an attribute to the given LMesswert object. - * - * @param key The key mapping to a object member. - * @param value The value to set. - * @param messwert The entity object. - * @return The updated entity object. - */ - public LMesswert addAttribute( - String key, - Object value, - LMesswert messwert - ) { - Pattern p = Pattern.compile( - "(\".+\")( .+ )(\".+\")( .*)( .{1,12})( .{1,9})(.{0,9})(.{0,3})"); - //TODO Does not perfectly match... Use better matching for floats. - Matcher m = p.matcher(value.toString()); - if (m.matches()) { - String messgroesse = m.group(1).substring(1, m.group(1).length() - 1); - String wert = m.group(2); - String einheit = m.group(3).substring(1, m.group(3).length() - 1); - if (wert.startsWith(" <")) { - wert = wert.substring(2); - messwert.setGrenzwertueberschreitung(false); - } - else if (wert.startsWith(" >")) { - wert = wert.substring(2); - messwert.setGrenzwertueberschreitung(true); - } - float fWert = Float.valueOf(wert); - messwert.setMesswert(fWert); - Response responseEinheit = sRepository.findAll(SMessEinheit.class); - List<SMessEinheit> einheiten = - (List<SMessEinheit>)responseEinheit.getData(); - boolean foundEinheit = false; - for (SMessEinheit e: einheiten) { - if(e.getEinheit().equals(einheit)) { - foundEinheit = true; - messwert.setMehId((int) e.getMehId()); - } - } - if (!foundEinheit) { - this.errors.add(new ReportData("messeinheit", "null", 673)); - return null; - } - Response responseGroesse = sRepository.findAll(SMessgroesse.class); - List<SMessgroesse> messgroessen = - (List<SMessgroesse>)responseGroesse.getData(); - boolean foundGroesse = false; - for (SMessgroesse g: messgroessen) { - if(g.getMessgroesse().equals(messgroesse)) { - foundGroesse = true; - messwert.setMessgroesseId(g.getMessgroesseId()); - messwert.getId().setMessgroesseId(g.getMessgroesseId()); - } - } - if (!foundGroesse) { - this.errors.add(new ReportData("messgroesse", "null", 673)); - return null; - } - } - return messwert; - } - - /** - * Add an attribute to the OrtCreator. The creator is used to build the - * two objects Ort and LOrt. - * - * @param key The key mapping to a object member. - * @param value The value to set. - * @param ort The creator object. - * @return The updated creator object. - */ - public OrtCreator addAttribute( - String key, - Object value, - OrtCreator ort - ) { - if ("ort_code".equals(key)) { - ort.setOrtCode(value.toString()); - } - if ("ort_typ".equals(key)) { - ort.setOrtTyp(value.toString()); - } - if ("ort_zusatz".equals(key)) { - ort.setZusatztext(value.toString()); - } - if ("ort_land_lang".equals(key)) { - ort.setLandLang(value.toString()); - } - if ("ort_land_kurz".equals(key)) { - ort.setLandKurz(value.toString()); - } - if ("ort_land_s".equals(key)) { - ort.setLandS(value.toString()); - } - if ("ort_gemeindeschlüssel".equals(key)) { - ort.setGemSchluessel(value.toString()); - } - if ("ort_bezeichnung".equals(key)) { - ort.setBezeichnung(value.toString()); - } - if ("ort_beschreibung".equals(key)) { - ort.setBeschreibung(value.toString()); - } - if ("ort_nuts_code".equals(key)) { - ort.setNuts(value.toString()); - } - if ("ort_hoehe_land".equals(key)) { - ort.setHoehe(value.toString()); - } - if ("ort_koordinaten".equals(key)) { - ort.setKoordinaten(value.toString()); - } - if ("ort_koordinaten_s".equals(key)) { - ort.setKoordinatenS(value.toString()); - } - return ort; - } - - /** - * Add an attribute to the given LZusatzwert object. - * - * @param lKey The key mapping to a object member. - * @param value The value to set. - * @param wert The entity object. - * @return The updated entity object. - */ - public LZusatzWert addAttribute( - String lKey, - Object value, - LZusatzWert wert - ) { - String v = value.toString().substring(1); - int ndx = v.indexOf("\""); - String groesse = v.substring(0, ndx); - v = v.substring(ndx + 2); - ndx = v.indexOf(" "); - String w = v.substring(0, ndx); - v = v.substring(ndx + 2); - ndx = v.indexOf("\""); - String einheit = v.substring(0, ndx); - String fehler = v.substring(ndx + 2); - QueryBuilder<SProbenZusatz> builder = - new QueryBuilder<SProbenZusatz>( - sRepository.getEntityManager(), SProbenZusatz.class); - builder.and("zusatzwert", groesse); - Response response = sRepository.filter(builder.getQuery()); - List<SProbenZusatz> list = (List<SProbenZusatz>)response.getData(); - if (list == null || list.isEmpty()) { - this.errors.add(new ReportData(lKey, "zusatzwert", 673)); - return null; - } - wert.getId().setPzsId(list.get(0).getPzsId()); - wert.setPzsId(list.get(0).getPzsId()); - wert.setMesswertPzs(Float.valueOf(w)); - wert.setMessfehler(Float.valueOf(fehler)); - return wert; - } - - /** - * Add an attribute to the given LZusatzwert object. - * - * @param lKey The key mapping to a object member. - * @param value The value to set. - * @param wert The entity object. - * @return The updated entity object. - */ - public LZusatzWert addAttributeS( - String lKey, - Object value, - LZusatzWert wert - ) { - String v = value.toString().substring(1); - int ndx = v.indexOf("\""); - String groesse = v.substring(0, ndx); - v = v.substring(ndx + 2); - ndx = v.indexOf(" "); - String w = v.substring(0, ndx); - v = v.substring(ndx + 2); - ndx = v.indexOf(" "); - String einheit = v.substring(0, ndx); - String fehler = v.substring(ndx + 2); - wert.getId().setPzsId(groesse); - wert.setPzsId(groesse); - wert.setMesswertPzs(Float.valueOf(w)); - wert.setMessfehler(Float.valueOf(fehler)); - return wert; - } - - /** - * @return the warnings - */ - public List<ReportData> getWarnings() { - return warnings; - } - - /** - * @return the errors - */ - public List<ReportData> getErrors() { - return errors; - } - - public void reset() { - errors = new ArrayList<ReportData>(); - warnings = new ArrayList<ReportData>(); - } -}
--- a/src/main/java/de/intevation/lada/data/importer/EntryFormat.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,73 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.data.importer; - -import java.util.regex.Pattern; - -/** - * An EntryFormat describes the internal structure of LAF-based key-value pairs. - * The pattern is a regular expression used to match the value in the LAF - * importer. - * The entry formats are defined in a config file - * (see wiki-doc: https://bfs-intern.intevation.de/Server/Importer). - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -public class EntryFormat -{ - private String key; - private Pattern pattern; - private Object defaultValue; - - /** - * Default constructor to create a new EntryFormat object. - */ - public EntryFormat() { - } - - /** - * @return the key. - */ - public String getKey() { - return key; - } - - /** - * @param key The key to set. - */ - public void setKey(String key) { - this.key = key; - } - - /** - * @return the pattern - */ - public Pattern getPattern() { - return pattern; - } - - /** - * @param pattern The pattern to set. - */ - public void setPattern(Pattern pattern) { - this.pattern = pattern; - } - - /** - * @return the default value. - */ - public Object getDefaultValue() { - return defaultValue; - } - - /** - * @param defaultValue the default value to set. - */ - public void setDefaultValue(Object defaultValue) { - this.defaultValue = defaultValue; - } -}
--- a/src/main/java/de/intevation/lada/data/importer/Importer.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.data.importer; - -import java.util.List; -import java.util.Map; - -import de.intevation.lada.auth.AuthenticationResponse; - -/** - * Defines the interface for data importer using authentication information. - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -public interface Importer -{ - public boolean importData(String content, AuthenticationResponse auth); - public Map<String, List<ReportData>> getErrors(); - public Map<String, List<ReportData>> getWarnings(); - public void reset(); -}
--- a/src/main/java/de/intevation/lada/data/importer/LAFFormat.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,89 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.data.importer; - -import java.io.IOException; -import java.nio.ByteBuffer; -import java.nio.charset.Charset; -import java.nio.file.Files; -import java.nio.file.Paths; -import java.util.LinkedList; -import java.util.List; -import java.util.regex.Pattern; - -import org.json.JSONArray; -import org.json.JSONException; -import org.json.JSONObject; - -/** - * The LAFFormat reads the config file - * (https://bfs-intern.intevation.de/Server/Importer) and creates format - * objects for each entry. - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -public class LAFFormat -{ - private JSONObject fileContent; - - /** - * Reads the config file. - * - * @param fileName Path to the config file. - * @return success - */ - public boolean readConfigFile(String fileName) { - try { - byte[] encoded = Files.readAllBytes(Paths.get(fileName)); - Charset encoding = Charset.defaultCharset(); - String content = - encoding.decode(ByteBuffer.wrap(encoded)).toString(); - fileContent = new JSONObject(content); - return true; - } - catch (IOException ioe) { - return false; - } - catch (JSONException je) { - return false; - } - } - - /** - * Returns a List of EntryFormat for the requested entity type. - * The Entity type can be one of: - * * "probe" - * * "messung" - * * "ort" - * - * @param dataType The entity type - * @return List of entry formats defined for the requested type. - */ - public List<EntryFormat> getFormat(String dataType) { - List<EntryFormat> formats = new LinkedList<EntryFormat>(); - try { - JSONArray block = fileContent.getJSONArray(dataType); - for (int i = 0; i < block.length(); i++) { - JSONObject jEntry = block.getJSONObject(i); - EntryFormat entry = new EntryFormat(); - entry.setKey(jEntry.getString("key")); - Pattern pattern = - Pattern.compile( - jEntry.getString("regex"), - Pattern.MULTILINE); - entry.setPattern(pattern); - entry.setDefaultValue(jEntry.get("default")); - formats.add(entry); - } - return formats; - } - catch (JSONException e) { - return null; - } - } -}
--- a/src/main/java/de/intevation/lada/data/importer/LAFImporter.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,141 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.data.importer; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.ejb.Stateless; -import javax.inject.Inject; -import javax.inject.Named; -import javax.persistence.EntityManager; - -import de.intevation.lada.auth.AuthenticationResponse; -import de.intevation.lada.data.Repository; -import de.intevation.lada.validation.Validator; - -/** - * This importer uses the LAFParser to read data and create error/warning reports. - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -@Named("lafimporter") -@Stateless -public class LAFImporter -implements Importer -{ - - @Inject - private EntityManager em; - - @Inject - private LAFParser parser; - - @Inject - @Named("lprobevalidator") - private Validator probeValidator; - @Inject - @Named("lmessungvalidator") - private Validator messungValidator; - @Inject - @Named("lortvalidator") - private Validator ortValidator; - @Inject - @Named("lmesswertvalidator") - private Validator messwertValidator; - - @Inject - @Named("lproberepository") - private Repository probeRepository; - @Inject - @Named("lmessungrepository") - private Repository messungRepository; - @Inject - @Named("lortrepository") - private Repository ortRepository; - @Inject - @Named("lkommentarRepository") - private Repository pKommentarRepository; - @Inject - @Named("lkommentarmrepository") - private Repository mKommentarRepository; - @Inject - @Named("lmesswertrepository") - private Repository messwertRepository; - - private Map<String, List<ReportData>> warnings; - private Map<String, List<ReportData>> errors; - - /** - * Default constructor. - */ - public LAFImporter() { - warnings = new HashMap<String, List<ReportData>>(); - errors = new HashMap<String, List<ReportData>>(); - } - - /** - * @return the warnings - */ - public Map<String, List<ReportData>> getWarnings() { - return warnings; - } - - /** - * @return the errors - */ - public Map<String, List<ReportData>> getErrors() { - return errors; - } - - /** - * Import LAF formated data using authentication information. - * - * @param content The LAF file content. - * @param auth The authentication information. - * @return success. - */ - @Override - public boolean importData(String content, AuthenticationResponse auth) { - this.warnings.clear(); - this.errors.clear(); - this.parser.reset(); - try { - boolean success = parser.parse(auth, content); - if (!success) { - List<ReportData> report = new ArrayList<ReportData>(); - report.add(new ReportData("parser", "no success", 660)); - errors.put("parser", report); - warnings.put("parser", new ArrayList<ReportData>()); - return false; - } - } - catch (LAFParserException e) { - List<ReportData> report = new ArrayList<ReportData>(); - report.add(new ReportData("parser", e.getMessage(), 670)); - errors.put("parser", report); - warnings.put("parser", new ArrayList<ReportData>()); - return false; - } - this.warnings.putAll(this.parser.getWarnings()); - this.errors.putAll(this.parser.getErrors()); - return true; - } - - /** - * Reset the errors and warnings. Use this before calling importData() - * to have a clean error and warning report. - */ - public void reset() { - parser.reset(); - this.warnings = new HashMap<String, List<ReportData>>(); - this.errors = new HashMap<String, List<ReportData>>(); - } -}
--- a/src/main/java/de/intevation/lada/data/importer/LAFParser.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,493 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.data.importer; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.inject.Inject; -import javax.inject.Named; - -import de.intevation.lada.auth.AuthenticationResponse; -import de.intevation.lada.model.LMessung; -import de.intevation.lada.model.LMesswert; -import de.intevation.lada.model.LOrt; -import de.intevation.lada.model.LProbe; -import de.intevation.lada.validation.ValidationException; -import de.intevation.lada.validation.Validator; - -/** - * This parser is used to read data in LAF based key-value pair structure. - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -public class LAFParser { - - private static final String PROBE_NEXT = "\n%PROBE%"; - - private boolean dryRun; - - @Inject - @Named("lafproducer") - private Producer producer; - - @Inject - @Named("lafwriter") - private Writer writer; - - @Inject - @Named("lprobevalidator") - private Validator probeValidator; - @Inject - @Named("lmessungvalidator") - private Validator messungValidator; - @Inject - @Named("lmesswertvalidator") - private Validator messwertValidator; - @Inject - @Named("lortvalidator") - private Validator ortValidator; - - private Map<String, List<ReportData>> warnings; - private Map<String, List<ReportData>> errors; - - /** - * Default constructor. - */ - public LAFParser() { - this.warnings = new HashMap<String, List<ReportData>>(); - this.errors = new HashMap<String, List<ReportData>>(); - this.setDryRun(false); - } - - /** - * Read and parse the data and write the objects to the database. - * - * @param auth Authentication information - * @param laf The LAF formated data. - * @return success - * @throws LAFParserException - */ - public boolean parse(AuthenticationResponse auth, String laf) - throws LAFParserException - { - if (!laf.startsWith("%PROBE%\n")) { - throw new LAFParserException("No %PROBE% at the begining."); - } - boolean parsed = false; - while (laf.startsWith("%PROBE%\n")) { - parsed = true; - int nextPos = laf.indexOf(PROBE_NEXT); - String single = ""; - if (nextPos > 0) { - single = laf.substring(0, nextPos + 1); - laf = laf.substring(nextPos + 1); - try { - readAll(single); - this.warnings.putAll(producer.getWarnings()); - this.errors.putAll(producer.getErrors()); - writeAll(auth); - this.producer.reset(); - this.writer.reset(); - } - catch (LAFParserException lpe) { - Map<String, List<ReportData>> pErr = producer.getErrors(); - if (pErr.isEmpty()) { - List<ReportData> err = new ArrayList<ReportData>(); - err.add(new ReportData("parser", lpe.getMessage(), 673)); - this.errors.put("parser", err); - this.warnings.put("parser", new ArrayList<ReportData>()); - } - else { - this.errors.putAll(pErr); - this.warnings.putAll(producer.getWarnings()); - } - this.producer.reset(); - continue; - } - } - else { - try { - readAll(laf); - this.warnings.putAll(producer.getWarnings()); - this.errors.putAll(producer.getErrors()); - writeAll(auth); - this.producer.reset(); - this.writer.reset(); - laf = ""; - } - catch (LAFParserException lpe) { - Map<String, List<ReportData>> pErr = producer.getErrors(); - if (pErr.isEmpty()) { - List<ReportData> err = new ArrayList<ReportData>(); - err.add(new ReportData("parser", lpe.getMessage(), 673)); - this.errors.put("parser", err); - this.warnings.put("parser", new ArrayList<ReportData>()); - } - else { - this.errors.putAll(pErr); - this.warnings.putAll(producer.getWarnings()); - } - this.producer.reset(); - laf = ""; - continue; - } - } - } - return parsed; - } - - /** - * Write all created objects to the database. - * - * @param auth The authentication information. - */ - private void writeAll(AuthenticationResponse auth) { - String probeId = producer.getProbe().getProbeId() == null ? "probeId" : producer.getProbe().getProbeId(); - boolean p = writer.writeProbe(auth, producer.getProbe()); - if (!p) { - this.errors.put(probeId, writer.getErrors()); - return; - } - writer.writeProbenKommentare(auth, producer.getProbenKommentare()); - boolean m = writer.writeMessungen(auth, producer.getMessungen()); - if (!m) { - return; - } - writer.writeOrte(auth, producer.getOrte()); - writer.writeLOrte(auth, producer.getLOrte()); - writer.writeMessungKommentare(auth, producer.getMessungsKommentare()); - writer.writeMesswerte(auth, producer.getMesswerte()); - this.validateProbe(producer.getProbe()); - this.validateMessungen(producer.getMessungen()); - this.validateMesswerte(producer.getMesswerte()); - this.validateLOrte(producer.getLOrte()); - } - - private boolean validateProbe(LProbe probe) { - try { - Map<String, Integer> warn = - probeValidator.validate(probe, false); - if (warn != null) { - List<ReportData> warns = new ArrayList<ReportData>(); - for (String key: warn.keySet()) { - warns.add(new ReportData(key, "validation", warn.get(key))); - } - this.appendWarnings(probe.getProbeId(), warns); - } - } - catch (ValidationException e) { - Map<String, Integer> err = e.getErrors(); - List<ReportData> errs = new ArrayList<ReportData>(); - for(String key: err.keySet()) { - errs.add(new ReportData(key, "validation", err.get(key))); - } - this.appendErrors(probe.getProbeId(), errs); - Map<String, Integer> warn = e.getWarnings(); - if (warn != null) { - List<ReportData> warns = new ArrayList<ReportData>(); - for (String key: warn.keySet()) { - warns.add(new ReportData(key, "validation", warn.get(key))); - } - this.appendWarnings(probe.getProbeId(), warns); - } - return false; - } - return true; - } - - private boolean validateMessungen(List<LMessung> messungen) { - for(LMessung messung: messungen) { - try { - Map<String, Integer> warn = - messungValidator.validate(messung, false); - if (warn != null) { - List<ReportData> warns = new ArrayList<ReportData>(); - for (String key : warn.keySet()) { - warns.add( - new ReportData(key, "validation", warn.get(key))); - } - this.appendWarnings(messung.getProbeId(), warns); - } - } - catch (ValidationException e) { - Map<String, Integer> err = e.getErrors(); - List<ReportData> errs = new ArrayList<ReportData>(); - for(String key: err.keySet()) { - errs.add( - new ReportData(key, "validation", err.get(key))); - } - this.appendErrors(messung.getProbeId(), errs); - Map<String, Integer> warn = e.getWarnings(); - if (warn != null) { - List<ReportData> warns = new ArrayList<ReportData>(); - for (String key: warn.keySet()) { - warns.add( - new ReportData(key, "validation", warn.get(key))); - } - this.appendWarnings(messung.getProbeId(), warns); - } - return false; - } - } - - return true; - - } - - private boolean validateMesswerte(List<LMesswert> werte) { - for(LMesswert messwert: werte) { - try { - Map<String, Integer> warn = - messwertValidator.validate(messwert, false); - if (warn != null) { - List<ReportData> warns = new ArrayList<ReportData>(); - for (String key : warn.keySet()) { - warns.add( - new ReportData(key, "validation", warn.get(key))); - } - this.appendWarnings(messwert.getProbeId(), warns); - } - } - catch (ValidationException e) { - Map<String, Integer> err = e.getErrors(); - List<ReportData> errs = new ArrayList<ReportData>(); - for(String key: err.keySet()) { - errs.add( - new ReportData(key, "validation", err.get(key))); - } - this.appendErrors(messwert.getProbeId(), errs); - Map<String, Integer> warn = e.getWarnings(); - if (warn != null) { - List<ReportData> warns = new ArrayList<ReportData>(); - for (String key: warn.keySet()) { - warns.add( - new ReportData(key, "validation", warn.get(key))); - } - this.appendWarnings(messwert.getProbeId(), warns); - } - return false; - } - } - return true; - } - - private boolean validateLOrte(List<LOrt> orte) { - for(LOrt ort: orte) { - try { - Map<String, Integer> warn = - ortValidator.validate(ort, false); - if (warn != null) { - List<ReportData> warns = new ArrayList<ReportData>(); - for (String key : warn.keySet()) { - warns.add( - new ReportData(key, "validation", warn.get(key))); - } - this.appendWarnings(ort.getProbeId(), warns); - } - } - catch (ValidationException e) { - Map<String, Integer> err = e.getErrors(); - List<ReportData> errs = new ArrayList<ReportData>(); - for(String key: err.keySet()) { - errs.add( - new ReportData(key, "validation", err.get(key))); - } - this.appendErrors(ort.getProbeId(), errs); - Map<String, Integer> warn = e.getWarnings(); - if (warn != null) { - List<ReportData> warns = new ArrayList<ReportData>(); - for (String key: warn.keySet()) { - warns.add( - new ReportData(key, "validation", warn.get(key))); - } - this.appendWarnings(ort.getProbeId(), warns); - } - return false; - } - } - return true; - - } - - /** - * Read all attributes from a single probe block and create entity objects. - * - * @param content Single probe block enclosed by %PROBE% - * @throws LAFParserException - */ - private void readAll(String content) - throws LAFParserException - { - boolean key = false; - boolean value = false; - boolean header = false; - boolean white = false; - boolean string = false; - boolean multiValue = false; - String keyString = ""; - String valueString = ""; - String headerString = ""; - for (int i = 0; i < content.length(); i++) { - char current = content.charAt(i); - - if ((current == '"' || (current == ' ' && !string)) && - value && - i < content.length() - 1 && - (content.charAt(i + 1) != '\n' && - content.charAt(i + 1) != '\r')) { - multiValue = true; - } - - if (current == '"' && !string) { - string = true; - } - else if (current == '"' && string) { - string = false; - } - - if (current == ' ' && !value) { - key = false; - white = true; - continue; - } - else if (current != ' ' && - current != '\n' && - current != '\r' && - white) { - value = true; - white = false; - } - else if (current == '%' && !header && !value) { - headerString = ""; - producer.finishOrt(); - key = false; - header = true; - } - else if ((current == '\n' || current == '\r') && header) { - header = false; - key = true; - if (!dryRun) { - if (headerString.contains("MESSUNG")) { - producer.newMessung(); - } - if (headerString.contains("ORT")) { - producer.newOrt(); - } - } - if (headerString.contains("%ENDE%")) { - if (!dryRun) { - this.producer.newMessung(); - this.producer.newOrt(); - } - return; - } - continue; - } - else if (current == '"' && !value) { - value = true; - } - else if ((current == '\n' || current == '\r') && value && !string) { - if (!multiValue && valueString.startsWith("\"")) { - valueString = - valueString.substring(1, valueString.length() - 1); - } - value = false; - multiValue = false; - key = true; - if (!this.dryRun) { - producer.addData(keyString, valueString); - } - keyString = ""; - valueString = ""; - continue; - } - if ((current == '\n' || current == '\r') && (key || white)) { - throw new LAFParserException("No value for key: " + keyString); - } - - if (key) { - keyString += current; - } - else if (value) { - valueString += current; - } - else if (header) { - headerString += current; - } - } - if (!dryRun) { - this.producer.newMessung(); - this.producer.newOrt(); - } - } - - /** - * @return if objects are or not. - */ - public boolean isDryRun() { - return dryRun; - } - - /** - * If set to true, no objects will be created and written to database. - * - * @param dryRun - */ - public void setDryRun(boolean dryRun) { - this.dryRun = dryRun; - } - - /** - * @return the warnings - */ - public Map<String, List<ReportData>> getWarnings() { - return warnings; - } - - /** - * @return the errors - */ - public Map<String, List<ReportData>> getErrors() { - return errors; - } - - /** - * Reset errors and warnings. - */ - public void reset() { - producer.reset(); - this.errors = new HashMap<String, List<ReportData>>(); - this.warnings = new HashMap<String, List<ReportData>>(); - } - - private void appendErrors(String probeId, List<ReportData> errs) { - List<ReportData> err = this.errors.get(probeId); - if (err == null) { - this.errors.put(probeId, errs); - } - else { - err.addAll(errs); - this.errors.put(probeId, err); - } - } - - private void appendWarnings(String probeId, List<ReportData> warns) { - List<ReportData> warn = this.warnings.get(probeId); - if (warn == null) { - this.warnings.put(probeId, warns); - } - else { - warn.addAll(warns); - this.warnings.put(probeId, warn); - } - } - -}
--- a/src/main/java/de/intevation/lada/data/importer/LAFParserException.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,21 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.data.importer; - -/** - * Exception thrown in the LAF import process. - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -public class LAFParserException -extends Exception -{ - public LAFParserException(String message) { - super(message); - } -}
--- a/src/main/java/de/intevation/lada/data/importer/LAFProducer.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,413 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.data.importer; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.inject.Inject; -import javax.inject.Named; - -import de.intevation.lada.data.Repository; -import de.intevation.lada.model.LKommentarM; -import de.intevation.lada.model.LKommentarMId; -import de.intevation.lada.model.LKommentarP; -import de.intevation.lada.model.LMessung; -import de.intevation.lada.model.LMessungId; -import de.intevation.lada.model.LMesswert; -import de.intevation.lada.model.LMesswertId; -import de.intevation.lada.model.LOrt; -import de.intevation.lada.model.LProbe; -import de.intevation.lada.model.LZusatzWert; -import de.intevation.lada.model.LZusatzWertId; -import de.intevation.lada.model.Ort; - -/** - * The LAFProducer creates entity objects form key-value pairs using the - * AttributeMapper. - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -@Named("lafproducer") -public class LAFProducer -implements Producer -{ - - @Inject - @Named("readonlyrepository") - private Repository sRepository; - - private LProbe probe; - private LMessung messung; - @Inject - private OrtCreator ort; - - private List<LKommentarP> pKommentare; - private List<LKommentarM> mKommentare; - private List<LMessung> messungen; - private List<LOrt> lorte; - private List<Ort> orte; - private List<LMesswert> messwerte; - private List<LZusatzWert> zusatzwerte; - - private List<EntryFormat> probenFormat; - private List<EntryFormat> messungFormat; - private List<EntryFormat> ortFormat; - - private Map<String, List<ReportData>> warnings; - private Map<String, List<ReportData>> errors; - - @Inject - private AttributeMapper mapper; - - /** - * Default contructor. Initializes the producer and reads the config file - * using the systemproperty "de.intevation.lada.importconfig". - */ - public LAFProducer() { - this.warnings = new HashMap<String, List<ReportData>>(); - this.errors = new HashMap<String, List<ReportData>>(); - this.probe = new LProbe(); - this.pKommentare = new ArrayList<LKommentarP>(); - this.mKommentare = new ArrayList<LKommentarM>(); - this.messungen = new ArrayList<LMessung>(); - this.lorte = new ArrayList<LOrt>(); - this.messwerte = new ArrayList<LMesswert>(); - String fileName = System.getProperty("de.intevation.lada.importconfig"); - LAFFormat format = new LAFFormat(); - format.readConfigFile(fileName); - probenFormat = format.getFormat("probe"); - messungFormat = format.getFormat("messung"); - ortFormat = format.getFormat("ort"); - } - - /** - * Add data to the producer. - * This triggers the producer to create a new object or add data to - * existing objects. - * - * @param key The key. - * @param values The value - */ - @Override - public void addData(String key, Object values) - throws LAFParserException { - String lKey = key.toLowerCase(); - if(lKey.equals("probenkommentar")) { - LKommentarP kommentar = new LKommentarP(); - kommentar.setProbeId(this.probe.getProbeId()); - this.pKommentare.add( - mapper.addAttribute(lKey, values, kommentar)); - } - else if (lKey.equals("kommentar")) { - LKommentarMId id = new LKommentarMId(); - id.setMessungsId(this.messung.getMessungsId()); - id.setProbeId(this.probe.getProbeId()); - LKommentarM kommentar = new LKommentarM(); - kommentar.setId(id); - kommentar.setMessungsId(this.messung.getMessungsId()); - kommentar.setProbeId(this.probe.getProbeId()); - this.mKommentare.add( - mapper.addAttribute(lKey, values, kommentar)); - } - else if (lKey.equals("probenzusatzbeschreibung")) { - LZusatzWertId zusatzId = new LZusatzWertId(); - zusatzId.setProbeId(this.probe.getProbeId()); - LZusatzWert wert = new LZusatzWert(); - wert.setId(zusatzId); - LZusatzWert zusatzWert = mapper.addAttribute(lKey, values, wert); - if (zusatzWert != null) { - this.zusatzwerte.add(zusatzWert); - } - else { - String ekey = probe.getProbeId() == null ? "probeId" : probe.getProbeId(); - List<ReportData> err = this.errors.get(ekey); - if (err == null) { - this.errors.put(ekey, mapper.getErrors()); - } - else { - err.addAll(mapper.getErrors()); - } - } - } - else if (lKey.equals("pzb_s")) { - LZusatzWertId zusatzId = new LZusatzWertId(); - zusatzId.setProbeId(this.probe.getProbeId()); - LZusatzWert wert = new LZusatzWert(); - wert.setId(zusatzId); - LZusatzWert zusatzWert = mapper.addAttributeS(lKey, values, wert); - if (zusatzWert != null) { - this.zusatzwerte.add(zusatzWert); - } - else { - String ekey = probe.getProbeId() == null ? "probeId" : probe.getProbeId(); - List<ReportData> err = this.errors.get(ekey); - if (err == null) { - this.errors.put(ekey, mapper.getErrors()); - } - else { - err.addAll(mapper.getErrors()); - } - } - } - else if (lKey.equals("messwert")) { - LMesswertId id = new LMesswertId(); - id.setProbeId(this.probe.getProbeId()); - id.setMessungsId(this.messung.getId().getMessungsId()); - LMesswert m = new LMesswert(); - m.setId(id); - m.setMessungsId(this.messung.getMessungsId()); - m.setProbeId(this.probe.getProbeId()); - LMesswert wert = mapper.addAttribute(lKey, values, m); - if (wert != null) { - this.messwerte.add(wert); - } - else { - String ekey = probe.getProbeId() == null ? "probeId" : probe.getProbeId(); - List<ReportData> err = this.errors.get(ekey); - if (err == null) { - this.errors.put(ekey, mapper.getErrors()); - } - else { - err.addAll(mapper.getErrors()); - } - } - } - else if (isValidMessung(lKey, values.toString())) { - this.messung = mapper.addAttribute(lKey, values, this.messung); - } - else if (isValidProbe(lKey, values.toString())) { - this.probe = mapper.addAttribute(lKey, values, this.probe); - if (this.probe == null) { - this.errors.put(values.toString(), mapper.getErrors()); - throw new LAFParserException(values.toString() + " exists"); - } - } - else if (isValidOrt(lKey, values.toString())) { - this.ort.addAttribute(lKey, values); - } - } - - /** - * Check if the key is defined in the config file and validate the value - * using the pattern defined for this key. - * - * @param key The key. - * @param value The value. - * @return valid or not. - */ - private boolean isValidOrt(String key, String value) { - for (EntryFormat ef: ortFormat) { - if (ef.getKey().equals(key.toLowerCase())) { - if (ef.getPattern().matcher(value).matches()) { - return true; - } - } - } - return false; - } - - /** - * Check if the key is defined in the config file and validate the value - * using the pattern defined for this key. - * - * @param key The key. - * @param value The value. - * @return valid or not. - */ - private boolean isValidMessung(String key, String value) { - for (EntryFormat ef: messungFormat) { - if (ef.getKey().equals(key.toLowerCase())) { - if (ef.getPattern().matcher(value).matches()) { - return true; - } - } - } - return false; - } - - /** - * Check if the key is defined in the config file and validate the value - * using the pattern defined for this key. - * - * @param key The key. - * @param value The value. - * @return valid or not. - */ - private boolean isValidProbe(String key, String value) { - for (EntryFormat ef: probenFormat) { - if (ef.getKey().equals(key.toLowerCase())) { - if (ef.getPattern().matcher(value).matches()) { - return true; - } - } - } - return false; - } - - /** - * @return the {@link LProbe} entity. - */ - @Override - public LProbe getProbe() { - return this.probe; - } - - /** - * @return List of {@link LMessung} entities. - */ - @Override - public List<LMessung> getMessungen() { - return this.messungen; - } - - /** - * @return List of {@link Ort} entities. - */ - @Override - public List<Ort> getOrte() { - return this.orte; - } - - /** - * @return List of {@link LOrt} entities. - */ - @Override - public List<LOrt> getLOrte() { - return this.lorte; - } - - /** - * @return List of {@link LKommentarP} entities. - */ - @Override - public List<LKommentarP> getProbenKommentare() { - return this.pKommentare; - } - - /** - * @return List of {@link LKommentarM} entities. - */ - @Override - public List<LKommentarM> getMessungsKommentare() { - return this.mKommentare; - } - - /** - * @return List of {@link LMesswert} entities. - */ - @Override - public List<LMesswert> getMesswerte() { - return this.messwerte; - } - - /** - * @return List of {@link LZusatzWert} entities. - */ - @Override - public List<LZusatzWert> getZusatzwerte() { - return this.zusatzwerte; - } - - /** - * Reset errors and warnings. - */ - @Override - public void reset() { - this.errors = new HashMap<String, List<ReportData>>(); - this.warnings = new HashMap<String, List<ReportData>>(); - this.probe = new LProbe(); - this.messungen = new ArrayList<LMessung>(); - this.messung = null; - this.lorte = new ArrayList<LOrt>(); - this.orte = new ArrayList<Ort>(); - this.ort.reset(); - this.messwerte = new ArrayList<LMesswert>(); - this.mKommentare = new ArrayList<LKommentarM>(); - this.pKommentare = new ArrayList<LKommentarP>(); - mapper.reset(); - } - - /** - * Add the current {@link LMessung} entity to the List and create a new one. - */ - public void newMessung() { - if (this.messung != null) { - this.messungen.add(this.messung); - } - LMessungId id = new LMessungId(); - id.setProbeId(this.probe.getProbeId()); - this.messung = new LMessung(); - this.messung.setProbeId(this.probe.getProbeId()); - this.messung.setId(id); - } - - /** - * Add the {@link Ort} and {@link LOrt} entities to the lists and create - * a new {@link OrtCreator}. - */ - public void newOrt() { - if (this.ort != null) { - Ort o = this.ort.toOrt(); - if (o != null) { - this.orte.add(o); - } - LOrt lo = this.ort.toLOrt(); - if (lo != null) { - this.lorte.add(lo); - } - } - this.ort.reset(); - this.ort.setProbeId(this.probe.getProbeId()); - } - - /** - * @return the warnings - */ - public Map<String, List<ReportData>> getWarnings() { - if (this.probe == null) { - return this.warnings; - } - String key = probe.getProbeId() == null ? "probeId" : probe.getProbeId(); - List<ReportData> warn = this.warnings.get(key); - if (warn == null) { - this.warnings.put(key, mapper.getWarnings()); - } - else { - warn.addAll(mapper.getWarnings()); - } - return this.warnings; - } - - /** - * @return the errors - */ - public Map<String, List<ReportData>> getErrors() { - if (this.probe == null) { - return this.errors; - } - String key = probe.getProbeId() == null ? "probeId" : probe.getProbeId(); - List<ReportData> err = this.errors.get(key); - if (err == null) { - this.errors.put(key, mapper.getErrors()); - } - else { - err.addAll(mapper.getErrors()); - } - return this.errors; - } - - @Override - public void finishOrt() { - if (orte.isEmpty()) { - return; - } - } -}
--- a/src/main/java/de/intevation/lada/data/importer/LAFWriter.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,381 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.data.importer; - -import java.math.BigInteger; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -import javax.ejb.TransactionAttribute; -import javax.ejb.TransactionAttributeType; -import javax.inject.Inject; -import javax.inject.Named; -import javax.persistence.EntityManager; -import javax.persistence.PersistenceException; -import javax.persistence.Query; - -import org.hibernate.HibernateException; -import org.postgresql.util.PSQLException; - -import de.intevation.lada.auth.AuthenticationResponse; -import de.intevation.lada.data.Repository; -import de.intevation.lada.model.LKommentarM; -import de.intevation.lada.model.LKommentarP; -import de.intevation.lada.model.LMessung; -import de.intevation.lada.model.LMesswert; -import de.intevation.lada.model.LOrt; -import de.intevation.lada.model.LProbe; -import de.intevation.lada.model.Ort; -import de.intevation.lada.validation.ValidationException; -import de.intevation.lada.validation.Validator; - -/** - * Writer to persist new entities in the database. - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -@Named("lafwriter") -public class LAFWriter -implements Writer -{ - @Inject - private EntityManager em; - - @Inject - @Named("lproberepository") - private Repository probeRepository; - @Inject - @Named("lmessungrepository") - private Repository messungRepository; - @Inject - @Named("lortrepository") - private Repository lortRepository; - @Inject - @Named("ortrepository") - private Repository ortRepository; - @Inject - @Named("lkommentarRepository") - private Repository pKommentarRepository; - @Inject - @Named("lkommentarmrepository") - private Repository mKommentarRepository; - @Inject - @Named("lmesswertrepository") - private Repository messwertRepository; - - private List<ReportData> errors; - private List<ReportData> warnings; - - /** - * Default constructor. - */ - public LAFWriter() { - errors = new ArrayList<ReportData>(); - warnings = new ArrayList<ReportData>(); - } - - /** - * Write a new {@link LProbe} object to the database using - * authorization and validation. - * - * @param auth The authentication information. - * @param probe The new {@link LProbe} object. - * @return success - */ - @Override - public boolean writeProbe(AuthenticationResponse auth, LProbe probe) { - if (!authorized(probe, auth)) { - errors.add(new ReportData("auth", "not authorized", 699)); - return false; - } - if (probe.getProbeId() == null) { - errors.add(new ReportData("probeId", "missing", 673)); - return false; - } - try { - persist(probe); - } - catch (PersistenceException e) { - errors.add(new ReportData("probe", "writing", 670)); - return false; - } - return true; - } - - /** - * Write new {@link LMessung} objects to the database using - * authorization and validation. - * - * @param auth The authentication information. - * @param messungen The new {@link LMessung} objects. - * @return success - */ - @Override - public boolean writeMessungen( - AuthenticationResponse auth, - List<LMessung> messungen - ) { - for(LMessung messung: messungen) { - messungRepository.create(messung); - } - return true; - } - - /** - * Write new {@link Ort} objects to the database. - * - * @param auth The authentication information. - * @param orte List of {@link Ort} objects. - * @return success - */ - @Override - public boolean writeOrte(AuthenticationResponse auth, List<Ort> orte) { - for (Ort ort :orte) { - ortRepository.create(ort); - } - return true; - } - - /** - * Write new {@link LOrt} objects to the database using validation. - * - * @param auth The authentication information. - * @param orte List of {@link LOrt} objects. - * @return success - */ - @Override - public boolean writeLOrte(AuthenticationResponse auth, List<LOrt> orte) { - for(LOrt ort: orte) { - lortRepository.create(ort); - } - return true; - } - - /** - * Write new {@link LKommentarP} objects to the database. - * - * @param auth The authentication information. - * @param kommentare List of {@link LKommentarP} objects. - * @return success - */ - @Override - public boolean writeProbenKommentare( - AuthenticationResponse auth, - List<LKommentarP> kommentare - ) { - for(LKommentarP kommentar: kommentare) { - pKommentarRepository.create(kommentar); - } - return true; - } - - /** - * Write new {@link LKommentarM} objects to the database. - * - * @param auth The authentication information. - * @param kommentare List of {@link LKommentarM} objects. - * @return success - */ - @Override - public boolean writeMessungKommentare( - AuthenticationResponse auth, - List<LKommentarM> kommentare - ) { - for(LKommentarM kommentar: kommentare) { - Query q = - em.createNativeQuery( - "select nextval('kommentar_m_id_seq')"); - BigInteger seqId = (BigInteger)q.getSingleResult(); - kommentar.getId().setKId(seqId.intValue()); - mKommentarRepository.create(kommentar); - } - return true; - } - - /** - * Write new {@link LMesswert} objects to the database using validation. - * - * @param auth The authentication information. - * @param werte List of {@link LMesswert} objects. - * @return success - */ - @Override - public boolean writeMesswerte( - AuthenticationResponse auth, - List<LMesswert> werte - ) { - for(LMesswert messwert: werte) { - messwertRepository.create(messwert); - } - return true; - } - - /** - * Persist a {@link LProbe} object. - * - * @param probe The {@link LProbe} object. - */ - @TransactionAttribute(TransactionAttributeType.REQUIRED) - private void persist(LProbe probe) - throws PersistenceException { - String queryColumns = "insert into l_probe (probe_id, ba_id, test," + - " datenbasis_id, netzbetreiber_id, mst_id, probenart_id, umw_id"; - String queryParameter = " values (:probe_id, :ba_id, :test," + - " :datenbasis_id, :netzbetreiber_id, :mst_id, :probenart_id," + - " :umw_id"; - if (probe.getErzeugerId() != null) { - queryColumns += ", erzeuger_id"; - queryParameter += ", :erzeuger_id"; - } - if (probe.getHauptprobenNr() != null) { - queryColumns += ", hauptproben_nr"; - queryParameter += ", :hauptproben_nr"; - } - if (probe.getLetzteAenderung() != null) { - queryColumns += ", letzte_aenderung"; - queryParameter += ", :letzte_aenderung"; - } - if (probe.getMedia() != null) { - queryColumns += ", media"; - queryParameter += ", :media"; - } - if (probe.getMediaDesk() != null) { - queryColumns += ", media_desk"; - queryParameter += ", :media_desk"; - } - if (probe.getMittelungsdauer() != null) { - queryColumns += ", mittelungsdauer"; - queryParameter += ", :mittelungsdauer"; - } - if (probe.getMpKat() != null) { - queryColumns += ", mp_kat"; - queryParameter += ", mp_kat"; - } - if (probe.getMplId() != null) { - queryColumns += ", mpl_id"; - queryParameter += ", :mpl_id"; - } - if (probe.getMprId() != null) { - queryColumns += ", mpr_id"; - queryParameter += ", :mpr_id"; - } - if (probe.getProbeNehmerId() != null) { - queryColumns += ", probe_nehmer_id"; - queryParameter += ", :probe_nehmer_id"; - } - if (probe.getProbeentnahmeBeginn() != null) { - queryColumns += ", probeentnahme_beginn"; - queryParameter += ", :probeentnahme_beginn"; - } - if (probe.getProbeentnahmeEnde() != null) { - queryColumns += ", probeentnahme_ende"; - queryParameter += ", :probeentnahme_ende"; - } - if (probe.getSolldatumBeginn() != null) { - queryColumns += ", solldatum_beginn"; - queryParameter += ", :solldatum_beginn"; - } - if (probe.getSolldatumEnde() != null) { - queryColumns += ", solldatum_ende"; - queryParameter += ", :solldatum_ende"; - } - queryColumns += ") " + queryParameter + ")"; - - Query insert = em.createNativeQuery(queryColumns); - insert.setParameter("probe_id", probe.getProbeId()); - insert.setParameter("ba_id", probe.getBaId()); - insert.setParameter("datenbasis_id", probe.getDatenbasisId()); - insert.setParameter("mst_id", probe.getMstId()); - insert.setParameter("netzbetreiber_id", probe.getNetzbetreiberId()); - insert.setParameter("probenart_id", probe.getProbenartId()); - insert.setParameter("test", probe.isTest()); - insert.setParameter("umw_id", probe.getUmwId()); - if (probe.getErzeugerId() != null) { - insert.setParameter("erzeuger_id", probe.getErzeugerId()); - } - if (probe.getHauptprobenNr() != null) { - insert.setParameter("hauptproben_nr", probe.getHauptprobenNr()); - } - if (probe.getLetzteAenderung() != null) { - insert.setParameter("letzte_aenderung", probe.getLetzteAenderung()); - } - if (probe.getMedia() != null) { - insert.setParameter("media", probe.getMedia()); - } - if (probe.getMediaDesk() != null) { - insert.setParameter("media_desk", probe.getMediaDesk()); - } - if (probe.getMittelungsdauer() != null) { - insert.setParameter("mittelungsdauer", probe.getMittelungsdauer()); - } - if (probe.getMpKat() != null) { - insert.setParameter("mp_kat", probe.getMpKat()); - } - if (probe.getMplId() != null) { - insert.setParameter("mpl_id", probe.getMplId()); - } - if (probe.getMprId() != null) { - insert.setParameter("mpr_id", probe.getMprId()); - } - if (probe.getProbeNehmerId() != null) { - insert.setParameter("probe_nehmer_id", probe.getProbeNehmerId()); - } - if (probe.getProbeentnahmeBeginn() != null) { - insert.setParameter("probeentnahme_beginn", probe.getProbeentnahmeBeginn()); - } - if (probe.getProbeentnahmeEnde() != null) { - insert.setParameter("probeentnahme_ende", probe.getProbeentnahmeEnde()); - } - if (probe.getSolldatumBeginn() != null) { - insert.setParameter("solldatum_beginn", probe.getSolldatumBeginn()); - } - if (probe.getSolldatumEnde() != null) { - insert.setParameter("solldatum_ende", probe.getSolldatumEnde()); - } - insert.executeUpdate(); - } - - /** - * Check if the user given in the authentication information is authorized - * to access the {@link LProbe} object. - * - * @param probe The {@link LProbe} object. - * @param auth The authentication information. - * @return access - */ - private boolean authorized(LProbe probe, AuthenticationResponse auth) { - if (auth.getNetzbetreiber().contains(probe.getNetzbetreiberId()) && - auth.getMst().contains(probe.getMstId())) { - return true; - } - return false; - } - - /** - * @return the errors - */ - public List<ReportData> getErrors() { - return errors; - } - - /** - * @return the warnings - */ - public List<ReportData> getWarnings() { - return warnings; - } - - /** - * Reset the errors and warnings. - */ - public void reset() { - this.warnings = new ArrayList<ReportData>(); - this.errors = new ArrayList<ReportData>(); - } -}
--- a/src/main/java/de/intevation/lada/data/importer/OrtCreator.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,727 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.data.importer; - -import java.util.List; - -import javax.ejb.Stateless; -import javax.inject.Inject; -import javax.inject.Named; - -import de.intevation.lada.data.QueryBuilder; -import de.intevation.lada.data.Repository; -import de.intevation.lada.model.LOrt; -import de.intevation.lada.model.Ort; -import de.intevation.lada.model.SStaat; -import de.intevation.lada.model.SVerwaltungseinheit; -import de.intevation.lada.rest.Response; - -/** - * Class to produce Ort/LOrt objects from a given set of attributes. - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -@Stateless -public class OrtCreator -{ - @Inject - @Named("ortrepository") - private Repository ortRepo; - - @Inject - @Named("readonlyrepository") - private Repository readonlyRepo; - - private String probeId; - private Integer ortId; - private String ortCode; - private String ortTyp; - private String zusatztext; - private String landLang; - private String landKurz; - private String landS; - private String gemSchluessel; - private String gemName; - private String koordArt; - private String koord; - private String koordS; - private String bezeichnung; - private String beschreibung; - private String nuts; - private String hoehe; - private String koordinaten; - private String koordinatenS; - - public OrtCreator() { - this.ortId = null; - } - - /** - * @return the probeId - */ - public String getProbeId() { - return probeId; - } - - /** - * @param probeId the probeId to set - */ - public void setProbeId(String probeId) { - this.probeId = probeId; - } - - /** - * @return the ortCode - */ - public String getOrtCode() { - return ortCode; - } - - /** - * @param ortCode the ortCode to set - */ - public void setOrtCode(String ortCode) { - this.ortCode = ortCode; - } - - /** - * @return the ortTyp - */ - public String getOrtTyp() { - return ortTyp; - } - - /** - * @param ortTyp the ortTyp to set - */ - public void setOrtTyp(String ortTyp) { - this.ortTyp = ortTyp; - } - - /** - * @return the zusatztext - */ - public String getZusatztext() { - return zusatztext; - } - - /** - * @param zusatztext the zusatztext to set - */ - public void setZusatztext(String zusatztext) { - this.zusatztext = zusatztext; - } - - /** - * @return the landLang - */ - public String getLandLang() { - return landLang; - } - - /** - * @param landLang the landLang to set - */ - public void setLandLang(String landLang) { - this.landLang = landLang; - } - - /** - * @return the landKurz - */ - public String getLandKurz() { - return landKurz; - } - - /** - * @param landKurz the landKurz to set - */ - public void setLandKurz(String landKurz) { - this.landKurz = landKurz; - } - - /** - * @return the landS - */ - public String getLandS() { - return landS; - } - - /** - * @param landS the landS to set - */ - public void setLandS(String landS) { - this.landS = landS; - } - - /** - * @return the gemSchluessel - */ - public String getGemSchluessel() { - return gemSchluessel; - } - - /** - * @param gemSchluessel the gemSchluessel to set - */ - public void setGemSchluessel(String gemSchluessel) { - this.gemSchluessel = gemSchluessel; - } - - /** - * @return the koordArt - */ - public String getKoordArt() { - return koordArt; - } - - /** - * @param koordArt the koordArt to set - */ - public void setKoordArt(String koordArt) { - this.koordArt = koordArt; - } - - /** - * @return the koord - */ - public String getKoord() { - return koord; - } - - /** - * @param koord the koord to set - */ - public void setKoord(String koord) { - this.koord = koord; - } - - /** - * @return the koordS - */ - public String getKoordS() { - return koordS; - } - - /** - * @param koordS the koordS to set - */ - public void setKoordS(String koordS) { - this.koordS = koordS; - } - - /** - * @return the nuts - */ - public String getNuts() { - return nuts; - } - - /** - * @param nuts the nuts to set - */ - public void setNuts(String nuts) { - this.nuts = nuts; - } - - /** - * @return the hoehe - */ - public String getHoehe() { - return hoehe; - } - - /** - * @param hoehe the hoehe to set - */ - public void setHoehe(String hoehe) { - this.hoehe = hoehe; - } - - /** - * @return the bezeichung - */ - public String getBezeichnung() { - return bezeichnung; - } - - /** - * @param bezeichnung the bezeichnung to set - */ - public void setBezeichnung(String bezeichnung) { - this.bezeichnung = bezeichnung; - } - - /** - * @return the gemName - */ - public String getGemName() { - return gemName; - } - - /** - * @param gemName the gemName to set - */ - public void setGemName(String gemName) { - this.gemName = gemName; - } - - /** - * @return the beschreibung - */ - public String getBeschreibung() { - return beschreibung; - } - - /** - * @param beschreibung the beschreibung to set - */ - public void setBeschreibung(String beschreibung) { - this.beschreibung = beschreibung; - } - - /** - * @return the koordinaten - */ - public String getKoordinaten() { - return koordinaten; - } - - /** - * @param koordinaten the koordinaten to set - */ - public void setKoordinaten(String koordinaten) { - this.koordinaten = koordinaten; - } - - /** - * @return the koordinatenS - */ - public String getKoordinatenS() { - return koordinatenS; - } - - /** - * @param koordinatenS the koordinatenS to set - */ - public void setKoordinatenS(String koordinatenS) { - this.koordinatenS = koordinatenS; - } - - /** - * Add an attribute to the OrtCreator. The creator is used to build the - * two objects Ort and LOrt. - * - * @param key The key mapping to a object member. - * @param value The value to set. - * @param ort The creator object. - * @return The updated creator object. - */ - public void addAttribute( - String key, - Object value - ) { - if ("ort_code".equals(key)) { - this.setOrtCode(value.toString()); - } - if ("ort_typ".equals(key)) { - this.setOrtTyp(value.toString()); - } - if ("ort_zusatz".equals(key)) { - this.setZusatztext(value.toString()); - } - if ("ort_land_lang".equals(key)) { - this.setLandLang(value.toString()); - } - if ("ort_land_kurz".equals(key)) { - this.setLandKurz(value.toString()); - } - if ("ort_land_s".equals(key)) { - this.setLandS(value.toString()); - } - if ("ort_gemeindeschluessel".equals(key)) { - this.setGemSchluessel(value.toString()); - } - if ("ort_bezeichnung".equals(key)) { - this.setBezeichnung(value.toString()); - } - if ("ort_beschreibung".equals(key)) { - this.setBeschreibung(value.toString()); - } - if ("ort_nuts_code".equals(key)) { - this.setNuts(value.toString()); - } - if ("ort_hoehe_land".equals(key)) { - this.setHoehe(value.toString()); - } - if ("ort_koordinaten".equals(key)) { - this.setKoordinaten(value.toString()); - } - if ("ort_koordinaten_s".equals(key)) { - this.setKoordinatenS(value.toString()); - } - } - - - /** - * Create the Ort object. - * - * @return The new Ort. - */ - public Ort toOrt() { - if (this.ortCode != null && this.ortCode.length() > 0) { - return null; - } - Ort ort = new Ort(); - ortRepo.create(ort); - this.ortId = ort.getOrtId(); - boolean koord = true; - if (this.koordinatenS != null && this.koordinatenS.length() > 0) { - ort = setKoordinatenS(ort); - koord = false; - if (this.koordinaten != null && this.koordinaten.length() > 0) { - //TODO: add warning. - } - } - else if (this.koordinaten != null && this.koordinaten.length() > 0) { - ort = setKoordinaten(ort); - koord = false; - } - if (this.gemSchluessel != null && - this.gemSchluessel.length() > 0){ - ort = setGemeindeS(ort, koord); - koord = false; - if(this.gemName != null && this.gemName.length() > 0) { - //TODO: add warning. - } - } - else if (this.gemName != null && this.gemName.length() > 0) { - ort = setGemeinde(ort, koord); - koord = false; - } - if(this.landS != null && this.landS.length() > 0) { - ort = setLandS(ort, koord); - koord = false; - if (this.landLang != null && this.landLang.length() > 0) { - //TODO: add warning. - } - if (this.landKurz != null && this.landKurz.length() > 0) { - //TODO: add warning. - } - } - else if (this.landKurz != null && this.landKurz.length() > 0) { - ort = setLandKurz(ort, koord); - koord = false; - if (this.landLang != null && this.landLang.length() > 0) { - //TODO: add warning. - } - } - else if (this.landLang != null && this.landLang.length() > 0) { - ort = setLandLang(ort, koord); - } - if (koord) { - //TODO: add warning. - return null; - } - if (this.nuts != null && this.nuts.length() > 0) { - ort.setNutsCode(nuts); - } - else if (ort.getGemId() != null && ort.getGemId().length() > 0) { - QueryBuilder<SVerwaltungseinheit> builder = - new QueryBuilder<SVerwaltungseinheit>( - readonlyRepo.getEntityManager(), SVerwaltungseinheit.class); - builder.and("gemId", ort.getGemId()); - Response response = readonlyRepo.filter(builder.getQuery()); - List<SVerwaltungseinheit> list = - (List<SVerwaltungseinheit>)response.getData(); - ort.setNutsCode(list.get(0).getNuts()); - } - ort.setBeschreibung(beschreibung); - if (this.hoehe != null) { - ort.setHoeheLand(Float.valueOf(hoehe)); - } - ortRepo.update(ort); - return ort; - } - - /** - * Find the SStaat object identified by the land_lang string and set a - * reference to the ort object. - * - * @param ort The ort object. - * @param koord Set the coordinates or not. - * @return The Ort object. - */ - private Ort setLandLang(Ort ort, boolean koord) { - QueryBuilder<SStaat> builder = - new QueryBuilder<SStaat>( - readonlyRepo.getEntityManager(), SStaat.class); - builder.and("staat", this.landLang); - Response response = readonlyRepo.filter(builder.getQuery()); - List<SStaat> list = (List<SStaat>)response.getData(); - if (list.isEmpty()) { - //TODO: add warning. - return ort; - } - ort.setStaatId(list.get(0).getStaatId()); - if (koord) { - ort.setKoordXExtern(list.get(0).getKoordXExtern()); - ort.setKoordYExtern(list.get(0).getKoordYExtern()); - } - return ort; - } - - /** - * Find the SStaat object identified by the land_kurz string and set a - * reference to the ort object. - * - * @param ort The ort object. - * @param koord Set the coordinates or not. - * @return The Ort object. - */ - private Ort setLandKurz(Ort ort, boolean koord) { - QueryBuilder<SStaat> builder = - new QueryBuilder<SStaat>( - readonlyRepo.getEntityManager(), SStaat.class); - builder.and("staat_kurz", this.landKurz); - Response response = readonlyRepo.filter(builder.getQuery()); - List<SStaat> list = (List<SStaat>)response.getData(); - if (list.isEmpty()) { - //TODO add warning. - return ort; - } - ort.setStaatId(list.get(0).getStaatId()); - if (koord) { - ort.setKoordXExtern(list.get(0).getKoordXExtern()); - ort.setKoordYExtern(list.get(0).getKoordYExtern()); - } - return ort; - } - - /** - * Find the SStaat object identified by the land_s id and set a - * reference to the ort object. - * - * @param ort The ort object. - * @param koord Set the coordinates or not. - * @return The Ort object. - */ - private Ort setLandS(Ort ort, boolean koord) { - ort.setStaatId(Integer.valueOf(this.landS)); - if (koord) { - QueryBuilder<SStaat> builder = - new QueryBuilder<SStaat>( - readonlyRepo.getEntityManager(), SStaat.class); - builder.and("staatId", this.landS); - Response response = readonlyRepo.filter(builder.getQuery()); - List<SStaat> list = (List<SStaat>)response.getData(); - if (list.isEmpty()) { - //TODO: add warning. - return ort; - } - ort.setKoordXExtern(list.get(0).getKoordXExtern()); - ort.setLongitude(Double.valueOf(list.get(0).getKoordXExtern())); - ort.setKoordYExtern(list.get(0).getKoordYExtern()); - ort.setLatitude(Double.valueOf(list.get(0).getKoordYExtern())); - } - return ort; - } - - /** - * Find the SVerwaltungseinheit object identified by the gem_name string - * and set a reference to the ort object. - * - * @param ort The ort object. - * @param koord Set the coordinates or not. - * @return The Ort object. - */ - private Ort setGemeinde(Ort ort, boolean koord) { - QueryBuilder<SVerwaltungseinheit> builder = - new QueryBuilder<SVerwaltungseinheit>( - readonlyRepo.getEntityManager(), SVerwaltungseinheit.class); - builder.and("bezeichnung", this.gemName); - Response response = readonlyRepo.filter(builder.getQuery()); - List<SVerwaltungseinheit> list = - (List<SVerwaltungseinheit>)response.getData(); - if (list.isEmpty()) { - //TODO: add warning. - return ort; - } - ort.setGemId(list.get(0).getGemId()); - if (koord) { - ort.setKoordXExtern(list.get(0).getKoordXExtern()); - ort.setKoordYExtern(list.get(0).getKoordYExtern()); - } - return ort; - } - - /** - * Find the SVerwaltungseinheit object identified by the gem_schluessel id - * and set a reference to the ort object. - * - * @param ort The ort object. - * @param koord Set the coordinates or not. - * @return The Ort object. - */ - private Ort setGemeindeS(Ort ort, boolean koord) { - ort.setGemId(this.gemSchluessel); - if (koord) { - QueryBuilder<SVerwaltungseinheit> builder = - new QueryBuilder<SVerwaltungseinheit>( - readonlyRepo.getEntityManager(), SVerwaltungseinheit.class); - builder.and("bezeichnung", this.gemName); - Response response = readonlyRepo.filter(builder.getQuery()); - List<SVerwaltungseinheit> list = - (List<SVerwaltungseinheit>)response.getData(); - if (list.isEmpty()) { - // TODO: add warning. - return ort; - } - ort.setKoordXExtern(list.get(0).getKoordXExtern()); - ort.setKoordYExtern(list.get(0).getKoordYExtern()); - } - return ort; - } - - /** - * Parse the coordinates and the the attributes to the new ort object. - * - * @param ort The ort object. - * @return The Ort object. - */ - private Ort setKoordinaten(Ort ort) { - String art = ""; - String x = ""; - String y = ""; - String tmp = ""; - if (this.koordinaten.startsWith("\"")) { - tmp = this.koordinaten.substring(1); - art = tmp.substring(0, tmp.indexOf("\"")); - tmp = tmp.substring(tmp.indexOf("\"") + 2); - } - else { - art = this.koordinaten.substring(0, this.koordinaten.indexOf(" ")); - tmp = this.koordinaten.substring( - 0, this.koordinaten.indexOf(" ") + 1); - } - if (tmp.startsWith("\"")) { - tmp = tmp.substring(1); - x = tmp.substring(0, tmp.indexOf("\"")); - tmp = tmp.substring(0, tmp.indexOf("\"") + 2); - } - else { - x = tmp.substring(0, tmp.indexOf(" ")); - tmp = tmp.substring(0, tmp.indexOf(" ") + 1); - } - if (tmp.startsWith("\"")) { - tmp = tmp.substring(1); - y = tmp.substring(0, tmp.indexOf("\"")); - } - else { - y = tmp; - } - ort.setKoordXExtern(x); - ort.setKoordYExtern(y); - return ort; - } - - /** - * Parse the coordinates and the the attributes to the new ort object. - * - * @param ort The ort object. - * @return The Ort object. - */ - private Ort setKoordinatenS(Ort ort) { - String art = ""; - String x = ""; - String y = ""; - String tmp = ""; - if (this.koordinatenS.startsWith("\"")) { - tmp = this.koordinatenS.substring(1); - art = tmp.substring(0, tmp.indexOf("\"")); - tmp = tmp.substring(tmp.indexOf("\"") + 2); - } - else { - art = this.koordinatenS.substring(0, this.koordinatenS.indexOf(" ")); - tmp = this.koordinatenS.substring( - this.koordinatenS.indexOf(" ") + 1); - } - if (tmp.startsWith("\"")) { - tmp = tmp.substring(1); - x = tmp.substring(0, tmp.indexOf("\"")); - tmp = tmp.substring(tmp.indexOf("\"") + 2); - } - else { - x = tmp.substring(0, tmp.indexOf(" ")); - tmp = tmp.substring(tmp.indexOf(" ") + 1); - } - if (tmp.startsWith("\"")) { - tmp = tmp.substring(1); - y = tmp.substring(0, tmp.indexOf("\"")); - } - else { - y = tmp; - } - ort.setKoordXExtern(x); - ort.setLongitude(Double.valueOf(x)); - ort.setKoordYExtern(y); - ort.setLatitude(Double.valueOf(y)); - return ort; - } - - /** - * Create the new LOrt object from the given attributes. - * - * @return The new LOrt object. - */ - public LOrt toLOrt() { - if (this.ortId == null && - (this.ortCode == null || this.ortCode.length() == 0) || - this.probeId == null) { - return null; - } - if(this.ortCode != null && this.ortCode.length() > 0) { - QueryBuilder<Ort> builder = - new QueryBuilder<Ort>(ortRepo.getEntityManager(), Ort.class); - builder.and("bezeichnung", this.ortCode); - Response response = ortRepo.filter(builder.getQuery()); - List<Ort> orte = (List<Ort>)response.getData(); - if (orte != null && !orte.isEmpty()) { - this.ortId = orte.get(0).getOrtId(); - } - } - LOrt ort = new LOrt(); - ort.setOrtId(this.ortId); - ort.setProbeId(this.probeId); - ort.setOrtsTyp(this.ortTyp); - ort.setOrtszusatztext(this.zusatztext); - return ort; - } - - public void reset() { - this.beschreibung = null; - this.bezeichnung = null; - this.gemName = null; - this.gemSchluessel = null; - this.hoehe = null; - this.koord = null; - this.koordArt = null; - this.koordinaten = null; - this.koordinatenS = null; - this.koordS = null; - this.landKurz = null; - this.landLang = null; - this.landS = null; - this.nuts = null; - this.ortCode = null; - this.ortId = null; - this.ortTyp = null; - this.probeId = null; - this.zusatztext = null; - } -}
--- a/src/main/java/de/intevation/lada/data/importer/Producer.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,46 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.data.importer; - -import java.util.List; -import java.util.Map; - -import de.intevation.lada.model.LKommentarM; -import de.intevation.lada.model.LKommentarP; -import de.intevation.lada.model.LMessung; -import de.intevation.lada.model.LMesswert; -import de.intevation.lada.model.LOrt; -import de.intevation.lada.model.LProbe; -import de.intevation.lada.model.LZusatzWert; -import de.intevation.lada.model.Ort; - -/** - * Defines the interface for producers that create lada entities from - * key-value pairs. - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -public interface Producer -{ - public void addData(String key, Object values) - throws LAFParserException; - public void finishOrt(); - public LProbe getProbe(); - public List<LMessung> getMessungen(); - public List<LOrt> getLOrte(); - public List<Ort> getOrte(); - public List<LKommentarP> getProbenKommentare(); - public List<LKommentarM> getMessungsKommentare(); - public List<LMesswert> getMesswerte(); - public List<LZusatzWert> getZusatzwerte(); - public void reset(); - public void newMessung(); - public void newOrt(); - public Map<String, List<ReportData>> getErrors(); - public Map<String, List<ReportData>> getWarnings(); -}
--- a/src/main/java/de/intevation/lada/data/importer/ReportData.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,89 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.data.importer; - -/** - * Container for error or warning messages send to the client. - * - * Errors and warnings are specified by the key-value pair that caused the problem and a code. - * The code can be - * 670: Parser error - * 671: existing - * 672: duplicated entry - * 673: missing - * 674: date error - * or any validation code. - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -public class ReportData -{ - private String key; - private String value; - private Integer code; - - /** - * Default constructor. - */ - public ReportData() { - } - - /** - * Constructor to create a {@link ReportData} object with data. - * @param key The key caused the error/warning. - * @param value The value caused the error/warning. - * @param code The code specifying the error/warning. - */ - public ReportData(String key, String value, Integer code) { - this.key = key; - this.value = value; - this.code = code; - } - - /** - * @return the key - */ - public String getKey() { - return key; - } - - /** - * @param key the key to set - */ - public void setKey(String key) { - this.key = key; - } - - /** - * @return the value - */ - public String getValue() { - return value; - } - - /** - * @param value the value to set - */ - public void setValue(String value) { - this.value = value; - } - - /** - * @return the code - */ - public Integer getCode() { - return code; - } - - /** - * @param code the code to set - */ - public void setCode(Integer code) { - this.code = code; - } -}
--- a/src/main/java/de/intevation/lada/data/importer/Writer.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,46 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.data.importer; - -import java.util.List; - -import de.intevation.lada.auth.AuthenticationResponse; -import de.intevation.lada.model.LKommentarM; -import de.intevation.lada.model.LKommentarP; -import de.intevation.lada.model.LMessung; -import de.intevation.lada.model.LMesswert; -import de.intevation.lada.model.LOrt; -import de.intevation.lada.model.LProbe; -import de.intevation.lada.model.Ort; - -/** - * Defines the interface for database object writers. - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -public interface Writer -{ - public boolean writeProbe(AuthenticationResponse auth, LProbe probe); - public boolean writeMessungen( - AuthenticationResponse auth, - List<LMessung> messungen); - public boolean writeLOrte(AuthenticationResponse auth, List<LOrt> orte); - public boolean writeOrte(AuthenticationResponse auth, List<Ort> orte); - public boolean writeProbenKommentare( - AuthenticationResponse auth, - List<LKommentarP> kommentare); - public boolean writeMessungKommentare( - AuthenticationResponse auth, - List<LKommentarM> kommentare); - public boolean writeMesswerte( - AuthenticationResponse auth, - List<LMesswert> werte); - public List<ReportData> getErrors(); - public List<ReportData> getWarnings(); - public void reset(); -}
--- a/src/main/java/de/intevation/lada/manage/DataManager.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,91 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.manage; - -import javax.ejb.EJBTransactionRolledbackException; -import javax.ejb.Stateless; -import javax.ejb.TransactionAttribute; -import javax.ejb.TransactionAttributeType; -import javax.inject.Inject; -import javax.inject.Named; -import javax.persistence.EntityExistsException; -import javax.persistence.EntityManager; -import javax.persistence.TransactionRequiredException; - - -/** - * This data manager provides the interface to persist, remove and update - * database objects. - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -@Stateless -@Named("datamanager") -public class DataManager -implements Manager -{ - @Inject - private EntityManager em; - - /** - * Create a new database object. - * - * @param object The new object. - */ - @Override - @TransactionAttribute(TransactionAttributeType.REQUIRED) - public void create(Object object) - throws EntityExistsException, - IllegalArgumentException, - EJBTransactionRolledbackException, - TransactionRequiredException { - em.merge(object); - } - - /** - * Persist a database object. - * - * @param object The new object. - */ - @Override - @TransactionAttribute(TransactionAttributeType.REQUIRED) - public void persist(Object object) - throws EntityExistsException, - IllegalArgumentException, - EJBTransactionRolledbackException, - TransactionRequiredException { - em.persist(object); - } - /** - * Update a database object. - * - * @param object The object to update. - */ - @Override - @TransactionAttribute(TransactionAttributeType.REQUIRED) - public void update(Object object) - throws EntityExistsException, - IllegalArgumentException, - EJBTransactionRolledbackException, - TransactionRequiredException { - em.merge(object); - } - - /** - * Delete a database object. - * - * @param object The object to delete. - */ - @Override - @TransactionAttribute(TransactionAttributeType.REQUIRED) - public void delete(Object object) - throws IllegalArgumentException, - TransactionRequiredException { - em.remove(em.contains(object) ? object : em.merge(object)); - } -}
--- a/src/main/java/de/intevation/lada/manage/Manager.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,45 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.manage; - -import javax.ejb.EJBTransactionRolledbackException; -import javax.ejb.Stateless; -import javax.ejb.TransactionAttribute; -import javax.ejb.TransactionAttributeType; -import javax.persistence.EntityExistsException; -import javax.persistence.TransactionRequiredException; - -/** - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -@Stateless -public interface Manager -{ - @TransactionAttribute(TransactionAttributeType.REQUIRED) - public void create(Object object) - throws EntityExistsException, - IllegalArgumentException, - EJBTransactionRolledbackException, - TransactionRequiredException; - - @TransactionAttribute(TransactionAttributeType.REQUIRED) - public void update(Object object) - throws EntityExistsException, - IllegalArgumentException, - EJBTransactionRolledbackException, - TransactionRequiredException; - - @TransactionAttribute(TransactionAttributeType.REQUIRED) - public void delete(Object object) - throws IllegalArgumentException, - TransactionRequiredException; - - void persist(Object object) throws EntityExistsException, - IllegalArgumentException, EJBTransactionRolledbackException, - TransactionRequiredException; -}
--- a/src/main/java/de/intevation/lada/model/Auth.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,93 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.model; - -// Generated 24.06.2013 16:31:53 by Hibernate Tools 3.4.0.CR1 - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.FetchType; -import javax.persistence.Id; -import javax.persistence.JoinColumn; -import javax.persistence.ManyToOne; -import javax.persistence.Table; - - -/** - * Auth generated by hbm2java - */ -@Entity -@Table(name = "auth", schema = "public") -public class Auth -implements java.io.Serializable -{ - - private int id; - private SMessStelle SMessStelle; - private SNetzBetreiber SNetzBetreiber; - private String ldapGroup; - - public Auth() { - } - - public Auth(int id, String ldapGroup) { - this.id = id; - this.ldapGroup = ldapGroup; - } - - public Auth( - int id, - SMessStelle SMessStelle, - SNetzBetreiber SNetzBetreiber, - String ldapGroup) { - this.id = id; - this.SMessStelle = SMessStelle; - this.SNetzBetreiber = SNetzBetreiber; - this.ldapGroup = ldapGroup; - } - - @Id - @Column(name = "id", unique = true, nullable = false) - public int getId() { - return this.id; - } - - public void setId(int id) { - this.id = id; - } - - @ManyToOne(fetch = FetchType.EAGER) - @JoinColumn(name = "mst_id") - public SMessStelle getSMessStelle() { - return this.SMessStelle; - } - - public void setSMessStelle(SMessStelle SMessStelle) { - this.SMessStelle = SMessStelle; - } - - @ManyToOne(fetch = FetchType.EAGER) - @JoinColumn(name = "netzbetreiber_id") - public SNetzBetreiber getSNetzBetreiber() { - return this.SNetzBetreiber; - } - - public void setSNetzBetreiber(SNetzBetreiber SNetzBetreiber) { - this.SNetzBetreiber = SNetzBetreiber; - } - - @Column(name = "ldap_group", nullable = false, length = 40) - public String getLdapGroup() { - return this.ldapGroup; - } - - public void setLdapGroup(String ldapGroup) { - this.ldapGroup = ldapGroup; - } - -}
--- a/src/main/java/de/intevation/lada/model/DeVg.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,206 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.model; - -import java.io.Serializable; -import javax.persistence.*; - -import org.hibernate.annotations.Type; - -import com.vividsolutions.jts.geom.MultiPolygon; - -import java.math.BigDecimal; -import java.util.Date; - - -/** - * The persistent class for the de_vg database table. - * - */ -@Entity -@Table(name="de_vg") -public class DeVg implements Serializable { - private static final long serialVersionUID = 1L; - - private Integer gid; - private String ags; - private String bemerk; - private String debkgId; - private String des; - private String gen; - private MultiPolygon geom; - private double gf; - private double isn; - private BigDecimal length; - private String nambild; - private String rauRs; - private String rs; - private String rsAlt; - private BigDecimal shapeArea; - private double use; - private Date wirksamkei; - - public DeVg() { - } - - @Id - @Column(name = "gid") - public Integer getGid() { - return this.gid; - } - - public void setGid(Integer gid) { - this.gid = gid; - } - - @Column(name = "ags") - public String getAgs() { - return this.ags; - } - - public void setAgs(String ags) { - this.ags = ags; - } - - @Column(name = "bemerk") - public String getBemerk() { - return this.bemerk; - } - - public void setBemerk(String bemerk) { - this.bemerk = bemerk; - } - - @Column(name = "debkg_id") - public String getDebkgId() { - return this.debkgId; - } - - public void setDebkgId(String debkgId) { - this.debkgId = debkgId; - } - - @Column(name = "des") - public String getDes() { - return this.des; - } - - public void setDes(String des) { - this.des = des; - } - - @Column(name = "gen") - public String getGen() { - return this.gen; - } - - public void setGen(String gen) { - this.gen = gen; - } - - @Column(name = "geom") - @Type(type = "org.hibernate.spatial.GeometryType") - public MultiPolygon getGeom() { - return this.geom; - } - - public void setGeom(MultiPolygon geom) { - this.geom = geom; - } - - @Column(name = "gf") - public double getGf() { - return this.gf; - } - - public void setGf(double gf) { - this.gf = gf; - } - - @Column(name = "isn") - public double getIsn() { - return this.isn; - } - - public void setIsn(double isn) { - this.isn = isn; - } - - @Column(name = "length") - public BigDecimal getLength() { - return this.length; - } - - public void setLength(BigDecimal length) { - this.length = length; - } - - @Column(name = "nambild") - public String getNambild() { - return this.nambild; - } - - public void setNambild(String nambild) { - this.nambild = nambild; - } - - @Column(name = "rau_rs") - public String getRauRs() { - return this.rauRs; - } - - public void setRauRs(String rauRs) { - this.rauRs = rauRs; - } - - @Column(name = "rs") - public String getRs() { - return this.rs; - } - - public void setRs(String rs) { - this.rs = rs; - } - - @Column(name = "rs_alt") - public String getRsAlt() { - return this.rsAlt; - } - - public void setRsAlt(String rsAlt) { - this.rsAlt = rsAlt; - } - - @Column(name = "shape_area") - public BigDecimal getShapeArea() { - return this.shapeArea; - } - - public void setShapeArea(BigDecimal shapeArea) { - this.shapeArea = shapeArea; - } - - @Column(name = "use") - public double getUse() { - return this.use; - } - - public void setUse(double use) { - this.use = use; - } - - @Column(name = "wirksamkei") - public Date getWirksamkei() { - return this.wirksamkei; - } - - public void setWirksamkei(Date wirksamkei) { - this.wirksamkei = wirksamkei; - } - -} \ No newline at end of file
--- a/src/main/java/de/intevation/lada/model/LKommentarM.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,127 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.model; - -// Generated 21.05.2013 16:58:30 by Hibernate Tools 3.4.0.CR1 - -import java.util.Date; -import javax.persistence.AttributeOverride; -import javax.persistence.AttributeOverrides; -import javax.persistence.Column; -import javax.persistence.EmbeddedId; -import javax.persistence.Entity; -import javax.persistence.Table; -import javax.persistence.Temporal; -import javax.persistence.TemporalType; - -/** - * LKommentarM generated by hbm2java - */ -@Entity -@Table(name = "l_kommentar_m", schema = "public") -public class LKommentarM implements java.io.Serializable { - - private LKommentarMId id; - private Integer kId; - private String probeId; - private Integer messungsId; - private String erzeuger; - private Date KDatum; - private String KText; - - public LKommentarM() { - } - - public LKommentarM(LKommentarMId id, String probeId, - Integer messungsId, String erzeuger, Date KDatum) { - this.id = id; - this.setProbeId(probeId); - this.messungsId = messungsId; - this.erzeuger = erzeuger; - this.KDatum = KDatum; - } - - public LKommentarM(LKommentarMId id, String probeId, - Integer messungsId, String erzeuger, Date KDatum, String KText) { - this.id = id; - this.probeId = probeId; - this.messungsId = messungsId; - this.erzeuger = erzeuger; - this.KDatum = KDatum; - this.KText = KText; - } - - @EmbeddedId - @AttributeOverrides({ - @AttributeOverride(name = "probeId", column = @Column(name = "probe_id", nullable = false, length = 20)), - @AttributeOverride(name = "messungsId", column = @Column(name = "messungs_id", nullable = false)), - @AttributeOverride(name = "KId", column = @Column(name = "k_id", nullable = false)) }) - public LKommentarMId getId() { - return this.id; - } - - public void setId(LKommentarMId id) { - this.id = id; - } - - @Column(name = "k_id", nullable = false, insertable = false, updatable = false) - public Integer getKId() { - return kId; - } - - public void setKId(Integer kId) { - this.kId = kId; - } - - @Column(name = "probe_id", nullable = false, insertable = false, updatable = false) - public String getProbeId() { - return probeId; - } - - public void setProbeId(String probeId) { - this.probeId = probeId; - } - - @Column(name = "messungs_id", nullable = false, insertable = false, updatable = false) - public Integer getMessungsId() { - return this.messungsId; - } - - public void setMessungsId(Integer messungsId) { - this.messungsId = messungsId; - } - - @Column(name = "erzeuger", nullable = false, length = 5) - public String getErzeuger() { - return this.erzeuger; - } - - public void setErzeuger(String erzeuger) { - this.erzeuger = erzeuger; - } - - @Temporal(TemporalType.TIMESTAMP) - @Column(name = "k_datum", nullable = false, length = 35) - public Date getKDatum() { - return this.KDatum; - } - - public void setKDatum(Date KDatum) { - this.KDatum = KDatum; - } - - @Column(name = "k_text", length = 1024) - public String getKText() { - return this.KText; - } - - public void setKText(String KText) { - this.KText = KText; - } - -}
--- a/src/main/java/de/intevation/lada/model/LKommentarMId.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,87 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.model; - -// Generated 21.05.2013 16:58:30 by Hibernate Tools 3.4.0.CR1 - -import javax.persistence.Column; -import javax.persistence.Embeddable; - -/** - * LKommentarMId generated by hbm2java - */ -@Embeddable -public class LKommentarMId implements java.io.Serializable { - - private String probeId; - private Integer messungsId; - private int KId; - - public LKommentarMId() { - } - - public LKommentarMId(String probeId, Integer messungsId, int KId) { - this.probeId = probeId; - this.messungsId = messungsId; - this.KId = KId; - } - - @Column(name = "probe_id", nullable = false, length = 20) - public String getProbeId() { - return this.probeId; - } - - public void setProbeId(String probeId) { - this.probeId = probeId; - } - - @Column(name = "messungs_id", nullable = false) - public Integer getMessungsId() { - return this.messungsId; - } - - public void setMessungsId(Integer messungsId) { - this.messungsId = messungsId; - } - - @Column(name = "k_id", nullable = false) - public int getKId() { - return this.KId; - } - - public void setKId(int KId) { - this.KId = KId; - } - - public boolean equals(Object other) { - if ((this == other)) - return true; - if ((other == null)) - return false; - if (!(other instanceof LKommentarMId)) - return false; - LKommentarMId castOther = (LKommentarMId) other; - - return ((this.getProbeId() == castOther.getProbeId()) || (this - .getProbeId() != null && castOther.getProbeId() != null && this - .getProbeId().equals(castOther.getProbeId()))) - && (this.getMessungsId() == castOther.getMessungsId()) - && (this.getKId() == castOther.getKId()); - } - - public int hashCode() { - int result = 17; - - result = 37 * result - + (getProbeId() == null ? 0 : this.getProbeId().hashCode()); - result = 37 * result + this.getMessungsId(); - result = 37 * result + this.getKId(); - return result; - } - -}
--- a/src/main/java/de/intevation/lada/model/LKommentarP.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,106 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.model; - -// Generated 21.05.2013 16:58:30 by Hibernate Tools 3.4.0.CR1 - -import java.util.Date; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.SequenceGenerator; -import javax.persistence.Table; -import javax.persistence.Temporal; -import javax.persistence.TemporalType; - -/** - * LKommentarP generated by hbm2java - */ -@Entity -@Table(name = "l_kommentar_p", schema = "public") -@SequenceGenerator(name = "ID_STORE", sequenceName = "l_kommentar_p_id_seq") -public class LKommentarP implements java.io.Serializable { - - private String probeId; - private int kId; - private String erzeuger; - private Date KDatum; - private String KText; - - public LKommentarP() { - } - - public LKommentarP(int kId, String probeId, - String erzeuger, Date KDatum) { - this.kId =kId; - this.probeId = probeId; - this.erzeuger = erzeuger; - this.KDatum = KDatum; - } - - public LKommentarP(int kId, String probeId, - String erzeuger, Date KDatum, String KText) { - this.kId = kId; - this.probeId = probeId; - this.erzeuger = erzeuger; - this.KDatum = KDatum; - this.KText = KText; - } - - @Id - @Column(name = "k_id", nullable = false, insertable = false, updatable = false) - @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "ID_STORE") - public int getkId() { - return kId; - } - - public void setkId(int kId) { - this.kId = kId; - } - - @Column(name = "probe_id", nullable = false, length = 20) - public String getProbeId() { - return this.probeId; - } - - public void setProbeId(String probeId) { - this.probeId = probeId; - } - - @Column(name = "erzeuger", nullable = false, length = 5) - public String getErzeuger() { - return this.erzeuger; - } - - public void setErzeuger(String erzeuger) { - this.erzeuger = erzeuger; - } - - @Temporal(TemporalType.TIMESTAMP) - @Column(name = "k_datum", nullable = false, length = 35) - public Date getKDatum() { - return this.KDatum; - } - - public void setKDatum(Date KDatum) { - this.KDatum = KDatum; - } - - @Column(name = "k_text", length = 1024) - public String getKText() { - return this.KText; - } - - public void setKText(String KText) { - this.KText = KText; - } - -}
--- a/src/main/java/de/intevation/lada/model/LMessung.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,161 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.model; - -// Generated 21.05.2013 16:58:30 by Hibernate Tools 3.4.0.CR1 - -import java.util.Date; -import javax.persistence.AttributeOverride; -import javax.persistence.AttributeOverrides; -import javax.persistence.Column; -import javax.persistence.EmbeddedId; -import javax.persistence.Entity; -import javax.persistence.Table; -import javax.persistence.Temporal; -import javax.persistence.TemporalType; - -/** - * LMessung generated by hbm2java - */ -@Entity -@Table(name = "l_messung", schema = "public") -public class LMessung implements java.io.Serializable { - - private LMessungId id; - private Integer messungsId; - private String probeId; - private String mmtId; - private String nebenprobenNr; - private Integer messdauer; - private Date messzeitpunkt; - private boolean fertig; - private Date letzteAenderung; - private boolean geplant; - - public LMessung() { - } - - public LMessung(LMessungId id, String probeId, String mmtId, - boolean fertig, boolean geplant) { - this.id = id; - this.probeId = probeId; - this.mmtId = mmtId; - this.fertig = fertig; - this.geplant = geplant; - } - - public LMessung(LMessungId id, String probeId, String mmtId, - String nebenprobenNr, Integer messdauer, Date messzeitpunkt, - boolean fertig, Date letzteAenderung, boolean geplant) { - this.id = id; - this.probeId = probeId; - this.mmtId = mmtId; - this.nebenprobenNr = nebenprobenNr; - this.messdauer = messdauer; - this.messzeitpunkt = messzeitpunkt; - this.fertig = fertig; - this.letzteAenderung = letzteAenderung; - this.geplant = geplant; - } - - @EmbeddedId - @AttributeOverrides({ - @AttributeOverride(name = "probeId", column = @Column(name = "probe_id", nullable = false, length = 20)), - @AttributeOverride(name = "messungsId", column = @Column(name = "messungs_id", nullable = false)) }) - public LMessungId getId() { - return this.id; - } - - public void setId(LMessungId id) { - this.id = id; - } - - @Column(name = "messungs_id", nullable = false, insertable = false, updatable = false) - public Integer getMessungsId() { - return messungsId; - } - - public void setMessungsId(Integer messungsId) { - this.messungsId = messungsId; - } - - @Column(name = "probe_id", nullable = false, insertable = false, updatable = false) - public String getProbeId() { - return this.probeId; - } - - public void setProbeId(String probeId) { - this.probeId = probeId; - } - - @Column(name = "mmt_id", nullable = false) - public String getMmtId() { - return this.mmtId; - } - - public void setMmtId(String mmtId) { - this.mmtId = mmtId; - } - - @Column(name = "nebenproben_nr", length = 10) - public String getNebenprobenNr() { - return this.nebenprobenNr; - } - - public void setNebenprobenNr(String nebenprobenNr) { - this.nebenprobenNr = nebenprobenNr; - } - - @Column(name = "messdauer") - public Integer getMessdauer() { - return this.messdauer; - } - - public void setMessdauer(Integer messdauer) { - this.messdauer = messdauer; - } - - @Temporal(TemporalType.TIMESTAMP) - @Column(name = "messzeitpunkt", length = 35) - public Date getMesszeitpunkt() { - return this.messzeitpunkt; - } - - public void setMesszeitpunkt(Date messzeitpunkt) { - this.messzeitpunkt = messzeitpunkt; - } - - @Column(name = "fertig", nullable = false) - public boolean isFertig() { - return this.fertig; - } - - public void setFertig(boolean fertig) { - this.fertig = fertig; - } - - @Temporal(TemporalType.TIMESTAMP) - @Column(name = "letzte_aenderung", length = 29) - public Date getLetzteAenderung() { - return this.letzteAenderung; - } - - public void setLetzteAenderung(Date letzteAenderung) { - this.letzteAenderung = letzteAenderung; - } - - @Column(name = "geplant", nullable = false) - public boolean isGeplant() { - return this.geplant; - } - - public void setGeplant(boolean geplant) { - this.geplant = geplant; - } - -}
--- a/src/main/java/de/intevation/lada/model/LMessungId.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,74 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.model; - -// Generated 21.05.2013 16:58:30 by Hibernate Tools 3.4.0.CR1 - -import javax.persistence.Column; -import javax.persistence.Embeddable; - -/** - * LMessungId generated by hbm2java - */ -@Embeddable -public class LMessungId implements java.io.Serializable { - - private String probeId; - private Integer messungsId; - - public LMessungId() { - } - - public LMessungId(String probeId, Integer messungsId) { - this.probeId = probeId; - this.messungsId = messungsId; - } - - @Column(name = "probe_id", nullable = false, length = 20) - public String getProbeId() { - return this.probeId; - } - - public void setProbeId(String probeId) { - this.probeId = probeId; - } - - @Column(name = "messungs_id", nullable = false) - public Integer getMessungsId() { - return this.messungsId; - } - - public void setMessungsId(Integer messungsId) { - this.messungsId = messungsId; - } - - public boolean equals(Object other) { - if ((this == other)) - return true; - if ((other == null)) - return false; - if (!(other instanceof LMessungId)) - return false; - LMessungId castOther = (LMessungId) other; - - return ((this.getProbeId() == castOther.getProbeId()) || (this - .getProbeId() != null && castOther.getProbeId() != null && this - .getProbeId().equals(castOther.getProbeId()))) - && (this.getMessungsId() == castOther.getMessungsId()); - } - - public int hashCode() { - int result = 17; - - result = 37 * result - + (getProbeId() == null ? 0 : this.getProbeId().hashCode()); - result = 37 * result + this.getMessungsId(); - return result; - } - -}
--- a/src/main/java/de/intevation/lada/model/LMesswert.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,178 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.model; - -// Generated 21.05.2013 16:58:30 by Hibernate Tools 3.4.0.CR1 - -import java.util.Date; - -import javax.persistence.AttributeOverride; -import javax.persistence.AttributeOverrides; -import javax.persistence.Column; -import javax.persistence.EmbeddedId; -import javax.persistence.Entity; -import javax.persistence.Table; -import javax.persistence.Temporal; -import javax.persistence.TemporalType; - -/** - * LMesswert generated by hbm2java - */ -@Entity -@Table(name = "l_messwert", schema = "public") -public class LMesswert implements java.io.Serializable { - - private LMesswertId id; - private String probeId; - private Integer messungsId; - private Integer mehId; - private Integer messgroesseId; - private String messwertNwg; - private float messwert; - private Float messfehler; - private Float nwgZuMesswert; - private Boolean grenzwertueberschreitung; - private Date letzteAenderung; - - public LMesswert() { - } - - public LMesswert(LMesswertId id, String probeId, Integer messungsId, - Integer mehId, Integer messgroesseId, float messwert - ) { - this.id = id; - this.probeId = probeId; - this.messungsId = messungsId; - this.mehId = mehId; - this.messgroesseId = messgroesseId; - this.messwert = messwert; - } - - public LMesswert(LMesswertId id, String probeId, Integer messungsId, - Integer mehId, Integer messgroesseId, String messwertNwg, - float messwert, Float messfehler, Float nwgZuMesswert, - Boolean grenzwertueberschreitung, Date letzteAenderung - ) { - this.id = id; - this.probeId = probeId; - this.messungsId = messungsId; - this.mehId = mehId; - this.messgroesseId = messgroesseId; - this.messwertNwg = messwertNwg; - this.messwert = messwert; - this.messfehler = messfehler; - this.nwgZuMesswert = nwgZuMesswert; - this.grenzwertueberschreitung = grenzwertueberschreitung; - this.letzteAenderung = letzteAenderung; - } - - @EmbeddedId - @AttributeOverrides({ - @AttributeOverride(name = "probeId", column = @Column(name = "probe_id", nullable = false, length = 20)), - @AttributeOverride(name = "messungsId", column = @Column(name = "messungs_id", nullable = false)), - @AttributeOverride(name = "messgroesseId", column = @Column(name = "messgroesse_id", nullable = false)) }) - public LMesswertId getId() { - return this.id; - } - - public void setId(LMesswertId id) { - this.id = id; - } - - @Column(name = "probe_id", nullable = false, insertable = false, updatable = false) - public String getProbeId() { - return this.probeId; - } - - public void setProbeId(String probeId) { - this.probeId = probeId; - } - - @Column(name = "messungs_id", nullable = false, insertable = false, updatable= false) - public Integer getMessungsId() { - return this.messungsId; - } - - public void setMessungsId(Integer messungsId) { - this.messungsId = messungsId; - } - - @Column(name = "meh_id", nullable = false) - public Integer getMehId() { - return this.mehId; - } - - public void setMehId(Integer mehId) { - this.mehId = mehId; - } - - @Column(name = "messgroesse_id", nullable = false, insertable = false, updatable = false) - public Integer getMessgroesseId() { - return this.messgroesseId; - } - - public void setMessgroesseId(Integer messgroesseId) { - this.messgroesseId = messgroesseId; - } - - @Column(name = "messwert_nwg", length = 1) - public String getMesswertNwg() { - return this.messwertNwg; - } - - public void setMesswertNwg(String messwertNwg) { - this.messwertNwg = messwertNwg; - } - - @Column(name = "messwert", nullable = false, precision = 8, scale = 8) - public float getMesswert() { - return this.messwert; - } - - public void setMesswert(float messwert) { - this.messwert = messwert; - } - - @Column(name = "messfehler", precision = 8, scale = 8) - public Float getMessfehler() { - return this.messfehler; - } - - public void setMessfehler(Float messfehler) { - this.messfehler = messfehler; - } - - @Column(name = "nwg_zu_messwert", precision = 8, scale = 8) - public Float getNwgZuMesswert() { - return this.nwgZuMesswert; - } - - public void setNwgZuMesswert(Float nwgZuMesswert) { - this.nwgZuMesswert = nwgZuMesswert; - } - - @Column(name = "grenzwertueberschreitung") - public Boolean getGrenzwertueberschreitung() { - return this.grenzwertueberschreitung; - } - - public void setGrenzwertueberschreitung(Boolean grenzwertueberschreitung) { - this.grenzwertueberschreitung = grenzwertueberschreitung; - } - - @Temporal(TemporalType.TIMESTAMP) - @Column(name = "letzte_aenderung", length = 29) - public Date getLetzteAenderung() { - return this.letzteAenderung; - } - - public void setLetzteAenderung(Date letzteAenderung) { - this.letzteAenderung = letzteAenderung; - } - -}
--- a/src/main/java/de/intevation/lada/model/LMesswertId.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,87 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.model; - -// Generated 21.05.2013 16:58:30 by Hibernate Tools 3.4.0.CR1 - -import javax.persistence.Column; -import javax.persistence.Embeddable; - -/** - * LMesswertId generated by hbm2java - */ -@Embeddable -public class LMesswertId implements java.io.Serializable { - - private String probeId; - private Integer messungsId; - private int messgroesseId; - - public LMesswertId() { - } - - public LMesswertId(String probeId, Integer messungsId, int messgroesseId) { - this.probeId = probeId; - this.messungsId = messungsId; - this.messgroesseId = messgroesseId; - } - - @Column(name = "probe_id", nullable = false, length = 20) - public String getProbeId() { - return this.probeId; - } - - public void setProbeId(String probeId) { - this.probeId = probeId; - } - - @Column(name = "messungs_id", nullable = false) - public Integer getMessungsId() { - return this.messungsId; - } - - public void setMessungsId(Integer messungsId) { - this.messungsId = messungsId; - } - - @Column(name = "messgroesse_id", nullable = false) - public int getMessgroesseId() { - return this.messgroesseId; - } - - public void setMessgroesseId(int messgroesseId) { - this.messgroesseId = messgroesseId; - } - - public boolean equals(Object other) { - if ((this == other)) - return true; - if ((other == null)) - return false; - if (!(other instanceof LMesswertId)) - return false; - LMesswertId castOther = (LMesswertId) other; - - return ((this.getProbeId() == castOther.getProbeId()) || (this - .getProbeId() != null && castOther.getProbeId() != null && this - .getProbeId().equals(castOther.getProbeId()))) - && (this.getMessungsId() == castOther.getMessungsId()) - && (this.getMessgroesseId() == castOther.getMessgroesseId()); - } - - public int hashCode() { - int result = 17; - - result = 37 * result - + (getProbeId() == null ? 0 : this.getProbeId().hashCode()); - result = 37 * result + this.getMessungsId(); - result = 37 * result + this.getMessgroesseId(); - return result; - } - -}
--- a/src/main/java/de/intevation/lada/model/LOrt.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,125 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.model; - -// Generated 21.05.2013 16:58:30 by Hibernate Tools 3.4.0.CR1 - -import java.util.Date; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.SequenceGenerator; -import javax.persistence.Table; -import javax.persistence.Temporal; -import javax.persistence.TemporalType; -import javax.persistence.Transient; - -/** - * LOrt generated by hbm2java - */ -@Entity -@Table(name = "l_ort", schema = "public") -public class LOrt implements java.io.Serializable { - - private int POrtId; - private int ortId; - private String probeId; - private String ortsTyp; - private String ortszusatztext; - private Date letzteAenderung; - private boolean readonly; - - public LOrt() { - } - - public LOrt(int POrtId, int ortId, String probeId) { - this.POrtId = POrtId; - this.ortId = ortId; - this.probeId = probeId; - } - - public LOrt(int POrtId, int ortId, String probeId, String ortsTyp, - String ortszusatztext, Date letzteAenderung) { - this.POrtId = POrtId; - this.ortId = ortId; - this.probeId = probeId; - this.ortsTyp = ortsTyp; - this.ortszusatztext = ortszusatztext; - this.letzteAenderung = letzteAenderung; - } - - @Id - @Column(name = "p_ort_id", unique = true, nullable = false) - @SequenceGenerator(name = "LORT_ID_STORE", sequenceName = "l_ort_id_seq", allocationSize = 1) - @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "LORT_ID_STORE") - public int getPOrtId() { - return this.POrtId; - } - - public void setPOrtId(int POrtId) { - this.POrtId = POrtId; - } - - @Column(name = "ort_id", nullable = false) - public int getOrtId() { - return this.ortId; - } - - public void setOrtId(int ortId) { - this.ortId = ortId; - } - - @Column(name = "probe_id", nullable = false) - public String getProbeId() { - return this.probeId; - } - - public void setProbeId(String probeId) { - this.probeId = probeId; - } - - @Column(name = "orts_typ", length = 1) - public String getOrtsTyp() { - return this.ortsTyp; - } - - public void setOrtsTyp(String ortsTyp) { - this.ortsTyp = ortsTyp; - } - - @Column(name = "ortszusatztext", length = 100) - public String getOrtszusatztext() { - return this.ortszusatztext; - } - - public void setOrtszusatztext(String ortszusatztext) { - this.ortszusatztext = ortszusatztext; - } - - @Temporal(TemporalType.TIMESTAMP) - @Column(name = "letzte_aenderung", length = 29) - public Date getLetzteAenderung() { - return this.letzteAenderung; - } - - public void setLetzteAenderung(Date letzteAenderung) { - this.letzteAenderung = letzteAenderung; - } - - @Transient - public boolean isReadonly() { - return readonly; - } - - public void setReadonly(boolean readonly) { - this.readonly = readonly; - } - -}
--- a/src/main/java/de/intevation/lada/model/LProbe.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,295 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.model; - -// Generated 21.05.2013 16:58:30 by Hibernate Tools 3.4.0.CR1 - -import java.util.Date; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; -import javax.persistence.Temporal; -import javax.persistence.TemporalType; - -/** - * LProbe generated by hbm2java - */ -@Entity -@Table(name = "l_probe", schema = "public") -public class LProbe implements java.io.Serializable { - - private String probeId; - private String mstId; - private String umwId; - private boolean test; - private String hauptprobenNr; - private String baId; - private String mediaDesk; - private String media; - private Integer probenartId; - private Integer datenbasisId; - private Date probeentnahmeBeginn; - private Date probeentnahmeEnde; - private Long mittelungsdauer; - private Date letzteAenderung; - private Integer erzeugerId; - private Integer probeNehmerId; - private Character mpKat; - private String mplId; - private Integer mprId; - private Date solldatumBeginn; - private Date solldatumEnde; - private String netzbetreiberId; - - public LProbe() { - } - - public LProbe(String probeId, boolean test) { - this.probeId = probeId; - this.test = test; - } - - public LProbe(String probeId, String mstId, String umwId, boolean test, - String hauptprobenNr, String baId, String mediaDesk, String media, - Integer probenartId, Integer datenbasisId, - Date probeentnahmeBeginn, Date probeentnahmeEnde, - Long mittelungsdauer, Date letzteAenderung, Integer erzeugerId, - Integer probeNehmerId, Character mpKat, String mplId, - Integer mprId, Date solldatumBeginn, Date solldatumEnde, String netzbetreiberId) { - this.probeId = probeId; - this.mstId = mstId; - this.umwId = umwId; - this.test = test; - this.hauptprobenNr = hauptprobenNr; - this.baId = baId; - this.mediaDesk = mediaDesk; - this.media = media; - this.setProbenartId(probenartId); - this.setDatenbasisId(datenbasisId); - this.probeentnahmeBeginn = probeentnahmeBeginn; - this.probeentnahmeEnde = probeentnahmeEnde; - this.mittelungsdauer = mittelungsdauer; - this.letzteAenderung = letzteAenderung; - this.erzeugerId = erzeugerId; - this.probeNehmerId = probeNehmerId; - this.mpKat = mpKat; - this.mplId = mplId; - this.mprId = mprId; - this.solldatumBeginn = solldatumBeginn; - this.solldatumEnde = solldatumEnde; - this.netzbetreiberId = netzbetreiberId; - } - - @Id - @GeneratedValue(strategy=GenerationType.IDENTITY) - @Column(name = "probe_id", unique = true, nullable = false, length = 20) - public String getProbeId() { - return this.probeId; - } - - public void setProbeId(String probeId) { - this.probeId = probeId; - } - - @Column(name = "test", nullable = false) - public boolean isTest() { - return this.test; - } - - public void setTest(boolean test) { - this.test = test; - } - - @Column(name = "hauptproben_nr", length = 20) - public String getHauptprobenNr() { - return this.hauptprobenNr; - } - - public void setHauptprobenNr(String hauptprobenNr) { - this.hauptprobenNr = hauptprobenNr; - } - - @Column(name = "ba_id", length = 1) - public String getBaId() { - return this.baId; - } - - public void setBaId(String baId) { - this.baId = baId; - } - - @Column(name = "media_desk", length = 100) - public String getMediaDesk() { - return this.mediaDesk; - } - - public void setMediaDesk(String mediaDesk) { - this.mediaDesk = mediaDesk; - } - - @Column(name = "media", length = 100) - public String getMedia() { - return this.media; - } - - public void setMedia(String media) { - this.media = media; - } - - @Temporal(TemporalType.TIMESTAMP) - @Column(name = "probeentnahme_beginn", length = 35) - public Date getProbeentnahmeBeginn() { - return this.probeentnahmeBeginn; - } - - public void setProbeentnahmeBeginn(Date probeentnahmeBeginn) { - this.probeentnahmeBeginn = probeentnahmeBeginn; - } - - @Temporal(TemporalType.TIMESTAMP) - @Column(name = "probeentnahme_ende", length = 35) - public Date getProbeentnahmeEnde() { - return this.probeentnahmeEnde; - } - - public void setProbeentnahmeEnde(Date probeentnahmeEnde) { - this.probeentnahmeEnde = probeentnahmeEnde; - } - - @Column(name = "mittelungsdauer") - public Long getMittelungsdauer() { - return this.mittelungsdauer; - } - - public void setMittelungsdauer(Long mittelungsdauer) { - this.mittelungsdauer = mittelungsdauer; - } - - @Temporal(TemporalType.TIMESTAMP) - @Column(name = "letzte_aenderung", length = 29) - public Date getLetzteAenderung() { - return this.letzteAenderung; - } - - public void setLetzteAenderung(Date letzteAenderung) { - this.letzteAenderung = letzteAenderung; - } - - @Column(name = "erzeuger_id") - public Integer getErzeugerId() { - return this.erzeugerId; - } - - public void setErzeugerId(Integer erzeugerId) { - this.erzeugerId = erzeugerId; - } - - @Column(name = "probe_nehmer_id") - public Integer getProbeNehmerId() { - return this.probeNehmerId; - } - - public void setProbeNehmerId(Integer probeNehmerId) { - this.probeNehmerId = probeNehmerId; - } - - @Column(name = "mp_kat", length = 1) - public Character getMpKat() { - return this.mpKat; - } - - public void setMpKat(Character mpKat) { - this.mpKat = mpKat; - } - - @Column(name = "mpl_id", length = 3) - public String getMplId() { - return this.mplId; - } - - public void setMplId(String mplId) { - this.mplId = mplId; - } - - @Column(name = "mpr_id") - public Integer getMprId() { - return this.mprId; - } - - public void setMprId(Integer mprId) { - this.mprId = mprId; - } - - @Temporal(TemporalType.TIMESTAMP) - @Column(name = "solldatum_beginn", length = 29) - public Date getSolldatumBeginn() { - return this.solldatumBeginn; - } - - public void setSolldatumBeginn(Date solldatumBeginn) { - this.solldatumBeginn = solldatumBeginn; - } - - @Temporal(TemporalType.TIMESTAMP) - @Column(name = "solldatum_ende", length = 29) - public Date getSolldatumEnde() { - return this.solldatumEnde; - } - - public void setSolldatumEnde(Date solldatumEnde) { - this.solldatumEnde = solldatumEnde; - } - - public void setMstId(String mstId) { - this.mstId = mstId; - } - @Column(name = "mst_id") - public String getMstId() { - return this.mstId; - } - - public void setUmwId(String umwId) { - this.umwId = umwId; - } - - @Column(name = "umw_id") - public String getUmwId() { - return this.umwId; - } - - @Column(name = "probenart_id") - public Integer getProbenartId() { - return probenartId; - } - - public void setProbenartId(Integer probenartId) { - this.probenartId = probenartId; - } - - @Column(name = "datenbasis_id") - public Integer getDatenbasisId() { - return datenbasisId; - } - - public void setDatenbasisId(Integer datenbasisId) { - this.datenbasisId = datenbasisId; - } - - @Column(name = "netzbetreiber_id") - public String getNetzbetreiberId() { - return netzbetreiberId; - } - - public void setNetzbetreiberId(String netzbetreiberId) { - this.netzbetreiberId = netzbetreiberId; - } -}
--- a/src/main/java/de/intevation/lada/model/LProbeInfo.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,310 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.model; - -import java.io.Serializable; -import javax.persistence.*; -import java.sql.Timestamp; - - -/** - * The persistent class for the l_probe_info database table. - * - */ -@Entity -@Table(name="l_probe_info") -public class LProbeInfo implements Serializable { - private static final long serialVersionUID = 1L; - - @EmbeddedId - private LProbeInfoId lprobeInfoId; - - @Column(name="ba_id") - private String baId; - - @Column(name="datenbasis_id") - private Integer datenbasisId; - - @Column(name="erzeuger_id") - private Integer erzeugerId; - - @Column(name="hauptproben_nr") - private String hauptprobenNr; - - @Column(name="letzte_aenderung") - private Timestamp letzteAenderung; - - @Column(name="media") - private String media; - - @Column(name="media_desk") - private String mediaDesk; - - @Column(name="mittelungsdauer") - private Long mittelungsdauer; - - @Column(name="mp_kat") - private Character mpKat; - - @Column(name="mpl_id") - private String mplId; - - @Column(name="mpr_id") - private Integer mprId; - - @Column(name="mst_id") - private String mstId; - - @Column(name="netzbetreiber_id") - private String netzbetreiberId; - - @Column(name="probe_id", insertable = false, updatable = false) - private String probeId; - - @Column(name="probe_nehmer_id") - private Integer probeNehmerId; - - @Column(name="probeentnahme_beginn") - private Timestamp probeentnahmeBeginn; - - @Column(name="probeentnahme_ende") - private Timestamp probeentnahmeEnde; - - @Column(name="probenart_id") - private Integer probenartId; - - @Column(name="solldatum_beginn") - private Timestamp solldatumBeginn; - - @Column(name="solldatum_ende") - private Timestamp solldatumEnde; - - @Column(name="test") - private Boolean test; - - @Column(name="umw_id") - private String umwId; - - @Column(name="readonly") - private Boolean readonly; - - public LProbeInfo() { - } - - public String getBaId() { - return this.baId; - } - - public void setBaId(String baId) { - this.baId = baId; - } - - public Integer getDatenbasisId() { - return this.datenbasisId; - } - - public void setDatenbasisId(Integer datenbasisId) { - this.datenbasisId = datenbasisId; - } - - public Integer getErzeugerId() { - return this.erzeugerId; - } - - public void setErzeugerId(Integer erzeugerId) { - this.erzeugerId = erzeugerId; - } - - public String getHauptprobenNr() { - return this.hauptprobenNr; - } - - public void setHauptprobenNr(String hauptprobenNr) { - this.hauptprobenNr = hauptprobenNr; - } - - public Timestamp getLetzteAenderung() { - return this.letzteAenderung; - } - - public void setLetzteAenderung(Timestamp letzteAenderung) { - this.letzteAenderung = letzteAenderung; - } - - public String getMedia() { - return this.media; - } - - public void setMedia(String media) { - this.media = media; - } - - public String getMediaDesk() { - return this.mediaDesk; - } - - public void setMediaDesk(String mediaDesk) { - this.mediaDesk = mediaDesk; - } - - public Long getMittelungsdauer() { - return this.mittelungsdauer; - } - - public void setMittelungsdauer(Long mittelungsdauer) { - this.mittelungsdauer = mittelungsdauer; - } - - public Character getMpKat() { - return this.mpKat; - } - - public void setMpKat(Character mpKat) { - this.mpKat = mpKat; - } - - public String getMplId() { - return this.mplId; - } - - public void setMplId(String mplId) { - this.mplId = mplId; - } - - public Integer getMprId() { - return this.mprId; - } - - public void setMprId(Integer mprId) { - this.mprId = mprId; - } - - public String getMstId() { - return this.mstId; - } - - public void setMstId(String mstId) { - this.mstId = mstId; - } - - public String getNetzbetreiberId() { - return this.netzbetreiberId; - } - - public void setNetzbetreiberId(String netzbetreiberId) { - this.netzbetreiberId = netzbetreiberId; - } - - public String getProbeId() { - return this.probeId; - } - - public void setProbeId(String probeId) { - this.probeId = probeId; - } - - public Integer getProbeNehmerId() { - return this.probeNehmerId; - } - - public void setProbeNehmerId(Integer probeNehmerId) { - this.probeNehmerId = probeNehmerId; - } - - public Timestamp getProbeentnahmeBeginn() { - return this.probeentnahmeBeginn; - } - - public void setProbeentnahmeBeginn(Timestamp probeentnahmeBeginn) { - this.probeentnahmeBeginn = probeentnahmeBeginn; - } - - public Timestamp getProbeentnahmeEnde() { - return this.probeentnahmeEnde; - } - - public void setProbeentnahmeEnde(Timestamp probeentnahmeEnde) { - this.probeentnahmeEnde = probeentnahmeEnde; - } - - public Integer getProbenartId() { - return this.probenartId; - } - - public void setProbenartId(Integer probenartId) { - this.probenartId = probenartId; - } - - public Timestamp getSolldatumBeginn() { - return this.solldatumBeginn; - } - - public void setSolldatumBeginn(Timestamp solldatumBeginn) { - this.solldatumBeginn = solldatumBeginn; - } - - public Timestamp getSolldatumEnde() { - return this.solldatumEnde; - } - - public void setSolldatumEnde(Timestamp solldatumEnde) { - this.solldatumEnde = solldatumEnde; - } - - public Boolean getTest() { - return this.test; - } - - public void setTest(Boolean test) { - this.test = test; - } - - public String getUmwId() { - return this.umwId; - } - - public void setUmwId(String umwId) { - this.umwId = umwId; - } - - public Boolean getReadonly() { - return readonly; - } - - public void setReadonly(Boolean readonly) { - this.readonly = readonly; - } - - public LProbe toLProbe() { - LProbe probe = new LProbe(); - probe.setProbeId(probeId); - probe.setMstId(mstId); - probe.setUmwId(umwId); - probe.setTest(test); - probe.setHauptprobenNr(hauptprobenNr); - probe.setBaId(baId); - probe.setMediaDesk(mediaDesk); - probe.setMedia(media); - probe.setProbenartId(probenartId); - probe.setDatenbasisId(datenbasisId); - probe.setProbeentnahmeBeginn(probeentnahmeBeginn); - probe.setProbeentnahmeEnde(probeentnahmeEnde); - probe.setMittelungsdauer(mittelungsdauer); - probe.setLetzteAenderung(letzteAenderung); - probe.setErzeugerId(erzeugerId); - probe.setProbeNehmerId(probeNehmerId); - probe.setMpKat(mpKat); - probe.setMplId(mplId); - probe.setMprId(mprId); - probe.setSolldatumBeginn(solldatumBeginn); - probe.setSolldatumEnde(solldatumEnde); - probe.setNetzbetreiberId(netzbetreiberId); - - return probe; - } -} \ No newline at end of file
--- a/src/main/java/de/intevation/lada/model/LProbeInfoId.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,61 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.model; -import java.io.Serializable; - -import javax.persistence.Column; -import javax.persistence.Embeddable; - - -@Embeddable -public class LProbeInfoId -implements Serializable -{ - @Column(name = "probe_id", nullable = false) - private String probeId; - - public LProbeInfoId() { - } - - public LProbeInfoId(String probeId) { - this.probeId = probeId; - } - - public String getProbeId() { - return this.probeId; - } - - public void setProbeId(String probeId) { - this.probeId = probeId; - } - - @Override - public boolean equals(Object other) { - if ((this == other)) - return true; - if ((other == null)) - return false; - if (!(other instanceof LProbeInfoId)) - return false; - LProbeInfoId castOther = (LProbeInfoId) other; - - return ((this.getProbeId() == castOther.getProbeId()) || (this - .getProbeId() != null && castOther.getProbeId() != null && this - .getProbeId().equals(castOther.getProbeId()))); - } - - @Override - public int hashCode() { - int result = 17; - - result = 37 * result - + (getProbeId() == null ? 0 : this.getProbeId().hashCode()); - result = 37 * result; - return result; - } -}
--- a/src/main/java/de/intevation/lada/model/LStatus.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,141 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.model; - -// Generated 21.05.2013 16:58:30 by Hibernate Tools 3.4.0.CR1 - -import java.util.Date; -import javax.persistence.AttributeOverride; -import javax.persistence.AttributeOverrides; -import javax.persistence.Column; -import javax.persistence.EmbeddedId; -import javax.persistence.Entity; -import javax.persistence.SequenceGenerator; -import javax.persistence.Table; -import javax.persistence.Temporal; -import javax.persistence.TemporalType; - -/** - * LStatus generated by hbm2java - */ -@Entity -@Table(name = "l_status", schema = "public") -@SequenceGenerator(name = "STATUS_ID_STORE", sequenceName = "status_id_seq") -public class LStatus implements java.io.Serializable { - - private LStatusId id; - private Integer sId; - private String probeId; - private String erzeuger; - private Integer messungsId; - private Short status; - private Date SDatum; - private String SKommentar; - - public LStatus() { - } - - public LStatus(LStatusId id, String probeId, String erzeuger, - Integer messungsId, Date SDatum) { - this.id = id; - this.setProbeId(probeId); - this.erzeuger = erzeuger; - this.messungsId = messungsId; - this.SDatum = SDatum; - } - - public LStatus(LStatusId id, String probeId, String erzeuger, - Integer messungsId, Short status, Date SDatum, String SKommentar - ) { - this.id = id; - this.setProbeId(probeId); - this.erzeuger = erzeuger; - this.messungsId = messungsId; - this.status = status; - this.SDatum = SDatum; - this.SKommentar = SKommentar; - } - - @EmbeddedId - @AttributeOverrides({ - @AttributeOverride(name = "probeId", column = @Column(name = "probe_id", nullable = false, length = 20)), - @AttributeOverride(name = "messungsId", column = @Column(name = "messungs_id", nullable = false)), - @AttributeOverride(name = "SId", column = @Column(name = "s_id", nullable = false)) }) - public LStatusId getId() { - return this.id; - } - - public void setId(LStatusId id) { - this.id = id; - } - - @Column(name = "s_id", nullable = false, insertable = false, updatable = false) - public Integer getSId() { - return sId; - } - - public void setSId(Integer sId) { - this.sId = sId; - } - - @Column(name = "probe_id", nullable = false, insertable = false, updatable = false) - public String getProbeId() { - return probeId; - } - - public void setProbeId(String probeId) { - this.probeId = probeId; - } - - @Column(name = "erzeuger", nullable = false) - public String getErzeuger() { - return this.erzeuger; - } - - public void setErzeuger(String erzeuger) { - this.erzeuger = erzeuger; - } - - @Column(name = "messungs_id", nullable = false, insertable = false, updatable = false) - public Integer getMessungsId() { - return this.messungsId; - } - - public void setMessungsId(Integer messungsId) { - this.messungsId = messungsId; - } - - @Column(name = "status") - public Short getStatus() { - return this.status; - } - - public void setStatus(Short status) { - this.status = status; - } - - @Temporal(TemporalType.TIMESTAMP) - @Column(name = "s_datum", nullable = false, length = 35) - public Date getSDatum() { - return this.SDatum; - } - - public void setSDatum(Date SDatum) { - this.SDatum = SDatum; - } - - @Column(name = "s_kommentar", length = 1024) - public String getSKommentar() { - return this.SKommentar; - } - - public void setSKommentar(String SKommentar) { - this.SKommentar = SKommentar; - } - -}
--- a/src/main/java/de/intevation/lada/model/LStatusId.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,90 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.model; - -// Generated 21.05.2013 16:58:30 by Hibernate Tools 3.4.0.CR1 - -import javax.persistence.Column; -import javax.persistence.Embeddable; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; - -/** - * LStatusId generated by hbm2java - */ -@Embeddable -public class LStatusId implements java.io.Serializable { - - private String probeId; - private Integer messungsId; - private short SId; - - public LStatusId() { - } - - public LStatusId(String probeId, Integer messungsId, short SId) { - this.probeId = probeId; - this.messungsId = messungsId; - this.SId = SId; - } - - @Column(name = "probe_id", nullable = false, length = 20) - public String getProbeId() { - return this.probeId; - } - - public void setProbeId(String probeId) { - this.probeId = probeId; - } - - @Column(name = "messungs_id", nullable = false) - public Integer getMessungsId() { - return this.messungsId; - } - - public void setMessungsId(Integer messungsId) { - this.messungsId = messungsId; - } - - @Column(name = "s_id", nullable = false) - @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "STATUS_ID_STORE") - public short getSId() { - return this.SId; - } - - public void setSId(short SId) { - this.SId = SId; - } - - public boolean equals(Object other) { - if ((this == other)) - return true; - if ((other == null)) - return false; - if (!(other instanceof LStatusId)) - return false; - LStatusId castOther = (LStatusId) other; - - return ((this.getProbeId() == castOther.getProbeId()) || (this - .getProbeId() != null && castOther.getProbeId() != null && this - .getProbeId().equals(castOther.getProbeId()))) - && (this.getMessungsId() == castOther.getMessungsId()) - && (this.getSId() == castOther.getSId()); - } - - public int hashCode() { - int result = 17; - - result = 37 * result - + (getProbeId() == null ? 0 : this.getProbeId().hashCode()); - result = 37 * result + this.getMessungsId(); - result = 37 * result + this.getSId(); - return result; - } - -}
--- a/src/main/java/de/intevation/lada/model/LZusatzWert.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,126 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.model; - -// Generated 21.05.2013 16:58:30 by Hibernate Tools 3.4.0.CR1 - -import java.util.Date; -import javax.persistence.AttributeOverride; -import javax.persistence.AttributeOverrides; -import javax.persistence.Column; -import javax.persistence.EmbeddedId; -import javax.persistence.Entity; -import javax.persistence.Table; -import javax.persistence.Temporal; -import javax.persistence.TemporalType; - -/** - * LZusatzWert generated by hbm2java - */ -@Entity -@Table(name = "l_zusatz_wert", schema = "public") -public class LZusatzWert implements java.io.Serializable { - - private LZusatzWertId id; - private String probeId; - private String pzsId; - private Float nwgZuMesswert; - private Float messwertPzs; - private Float messfehler; - private Date letzteAenderung; - - public LZusatzWert() { - } - - public LZusatzWert(LZusatzWertId id, String probeId, - String pzsId) { - this.id = id; - this.probeId = probeId; - this.pzsId = pzsId; - } - - public LZusatzWert(LZusatzWertId id, String probeId, - SProbenZusatz SProbenZusatz, Float nwgZuMesswert, Float messwertPzs, - Float messfehler, Date letzteAenderung) { - this.id = id; - this.probeId = probeId; - this.pzsId = pzsId; - this.nwgZuMesswert = nwgZuMesswert; - this.messwertPzs = messwertPzs; - this.messfehler = messfehler; - this.letzteAenderung = letzteAenderung; - } - - @EmbeddedId - @AttributeOverrides({ - @AttributeOverride(name = "probeId", column = @Column(name = "probe_id", nullable = false, length = 20)), - @AttributeOverride(name = "pzsId", column = @Column(name = "pzs_id", nullable = false, length = 3)) }) - public LZusatzWertId getId() { - return this.id; - } - - public void setId(LZusatzWertId id) { - this.id = id; - } - - @Column(name = "probe_id", nullable = false, insertable = false, updatable = false) - public String getProbeId() { - return this.probeId; - } - - public void setProbeId(String probeId) { - this.probeId = probeId; - } - - @Column(name = "pzs_id", nullable = false, insertable = false, updatable = false) - public String getPzsId() { - return this.pzsId; - } - - public void setPzsId(String pzsId) { - this.pzsId = pzsId; - } - - @Column(name = "nwg_zu_messwert", precision = 8, scale = 8) - public Float getNwgZuMesswert() { - return this.nwgZuMesswert; - } - - public void setNwgZuMesswert(Float nwgZuMesswert) { - this.nwgZuMesswert = nwgZuMesswert; - } - - @Column(name = "messwert_pzs", precision = 8, scale = 8) - public Float getMesswertPzs() { - return this.messwertPzs; - } - - public void setMesswertPzs(Float messwertPzs) { - this.messwertPzs = messwertPzs; - } - - @Column(name = "messfehler", precision = 8, scale = 8) - public Float getMessfehler() { - return this.messfehler; - } - - public void setMessfehler(Float messfehler) { - this.messfehler = messfehler; - } - - @Temporal(TemporalType.TIMESTAMP) - @Column(name = "letzte_aenderung", length = 29) - public Date getLetzteAenderung() { - return this.letzteAenderung; - } - - public void setLetzteAenderung(Date letzteAenderung) { - this.letzteAenderung = letzteAenderung; - } - -}
--- a/src/main/java/de/intevation/lada/model/LZusatzWertId.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,77 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.model; - -// Generated 21.05.2013 16:58:30 by Hibernate Tools 3.4.0.CR1 - -import javax.persistence.Column; -import javax.persistence.Embeddable; - -/** - * LZusatzWertId generated by hbm2java - */ -@Embeddable -public class LZusatzWertId implements java.io.Serializable { - - private String probeId; - private String pzsId; - - public LZusatzWertId() { - } - - public LZusatzWertId(String probeId, String pzsId) { - this.probeId = probeId; - this.pzsId = pzsId; - } - - @Column(name = "probe_id", nullable = false, length = 20) - public String getProbeId() { - return this.probeId; - } - - public void setProbeId(String probeId) { - this.probeId = probeId; - } - - @Column(name = "pzs_id", nullable = false, length = 3) - public String getPzsId() { - return this.pzsId; - } - - public void setPzsId(String pzsId) { - this.pzsId = pzsId; - } - - public boolean equals(Object other) { - if ((this == other)) - return true; - if ((other == null)) - return false; - if (!(other instanceof LZusatzWertId)) - return false; - LZusatzWertId castOther = (LZusatzWertId) other; - - return ((this.getProbeId() == castOther.getProbeId()) || (this - .getProbeId() != null && castOther.getProbeId() != null && this - .getProbeId().equals(castOther.getProbeId()))) - && ((this.getPzsId() == castOther.getPzsId()) || (this - .getPzsId() != null && castOther.getPzsId() != null && this - .getPzsId().equals(castOther.getPzsId()))); - } - - public int hashCode() { - int result = 17; - - result = 37 * result - + (getProbeId() == null ? 0 : this.getProbeId().hashCode()); - result = 37 * result - + (getPzsId() == null ? 0 : this.getPzsId().hashCode()); - return result; - } - -}
--- a/src/main/java/de/intevation/lada/model/Ort.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,203 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.model; - -// Generated 21.05.2013 16:58:30 by Hibernate Tools 3.4.0.CR1 - -import java.util.Date; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.SequenceGenerator; -import javax.persistence.Table; -import javax.persistence.Temporal; -import javax.persistence.TemporalType; - -/** - * Ort generated by hbm2java - */ -@Entity -@Table(name = "ort", schema = "public") -public class Ort implements java.io.Serializable { - - private int ortId; - private String OTyp; - private String bezeichnung; - private String beschreibung; - private Character unscharf; - private String nutsCode; - private String koordXExtern; - private String koordYExtern; - private Float hoeheLand; - private Date letzteAenderung; - private Double latitude; - private Double longitude; - private int staatId; - private String gemId; - - public Ort() { - } - - public Ort(int ortId) { - this.ortId = ortId; - } - - public Ort(int ortId, String OTyp, String bezeichnung, - String beschreibung, Character unscharf, String nutsCode, - String koordXExtern, String koordYExtern, Float hoeheLand, - Date letzteAenderung, Double latitude, Double longitude, - int staatId, String gemId) { - this.ortId = ortId; - this.OTyp = OTyp; - this.bezeichnung = bezeichnung; - this.beschreibung = beschreibung; - this.unscharf = unscharf; - this.nutsCode = nutsCode; - this.koordXExtern = koordXExtern; - this.koordYExtern = koordYExtern; - this.hoeheLand = hoeheLand; - this.letzteAenderung = letzteAenderung; - this.latitude = latitude; - this.longitude = longitude; - this.staatId = staatId; - this.gemId = gemId; - } - - @Id - @Column(name = "ort_id", unique = true, nullable = false) - @SequenceGenerator(name = "ORT_ID_STORE", sequenceName = "ort_ort_id_seq", allocationSize = 1) - @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "ORT_ID_STORE") - public int getOrtId() { - return this.ortId; - } - - public void setOrtId(int ortId) { - this.ortId = ortId; - } - - @Column(name = "o_typ", length = 1) - public String getOTyp() { - return this.OTyp; - } - - public void setOTyp(String OTyp) { - this.OTyp = OTyp; - } - - @Column(name = "bezeichnung", length = 10) - public String getBezeichnung() { - return this.bezeichnung; - } - - public void setBezeichnung(String bezeichnung) { - this.bezeichnung = bezeichnung; - } - - @Column(name = "beschreibung", length = 100) - public String getBeschreibung() { - return this.beschreibung; - } - - public void setBeschreibung(String beschreibung) { - this.beschreibung = beschreibung; - } - - @Column(name = "unscharf", length = 1) - public Character getUnscharf() { - return this.unscharf; - } - - public void setUnscharf(Character unscharf) { - this.unscharf = unscharf; - } - - @Column(name = "nuts_code", length = 10) - public String getNutsCode() { - return this.nutsCode; - } - - public void setNutsCode(String nutsCode) { - this.nutsCode = nutsCode; - } - - @Column(name = "koord_x_extern", length = 22) - public String getKoordXExtern() { - return this.koordXExtern; - } - - public void setKoordXExtern(String koordXExtern) { - this.koordXExtern = koordXExtern; - } - - @Column(name = "koord_y_extern", length = 22) - public String getKoordYExtern() { - return this.koordYExtern; - } - - public void setKoordYExtern(String koordYExtern) { - this.koordYExtern = koordYExtern; - } - - @Column(name = "hoehe_land", precision = 8, scale = 8) - public Float getHoeheLand() { - return this.hoeheLand; - } - - public void setHoeheLand(Float hoeheLand) { - this.hoeheLand = hoeheLand; - } - - @Temporal(TemporalType.TIMESTAMP) - @Column(name = "letzte_aenderung", length = 29) - public Date getLetzteAenderung() { - return this.letzteAenderung; - } - - public void setLetzteAenderung(Date letzteAenderung) { - this.letzteAenderung = letzteAenderung; - } - - @Column(name = "latitude", precision = 17, scale = 17) - public Double getLatitude() { - return this.latitude; - } - - public void setLatitude(Double latitude) { - this.latitude = latitude; - } - - @Column(name = "longitude", precision = 17, scale = 17) - public Double getLongitude() { - return this.longitude; - } - - public void setLongitude(Double longitude) { - this.longitude = longitude; - } - - @Column(name = "gem_id") - public String getGemId() { - return this.gemId; - } - - public void setGemId(String gemId) { - this.gemId= gemId; - } - - @Column(name = "staat_id") - public int getStaatId() { - return this.staatId; - } - - public void setStaatId(int staatId) { - this.staatId= staatId; - } -}
--- a/src/main/java/de/intevation/lada/model/SDatenbasis.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,69 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.model; - -// Generated 21.05.2013 16:58:30 by Hibernate Tools 3.4.0.CR1 - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -/** - * SDatenbasis generated by hbm2java - */ -@Entity -@Table(name = "s_datenbasis", schema = "public") -public class SDatenbasis implements java.io.Serializable { - - private short datenbasisId; - private String beschreibung; - private String datenbasis; - - public SDatenbasis() { - } - - public SDatenbasis(short datenbasisId) { - this.datenbasisId = datenbasisId; - } - - public SDatenbasis(short datenbasisId, String beschreibung, - String datenbasis) { - this.datenbasisId = datenbasisId; - this.beschreibung = beschreibung; - this.datenbasis = datenbasis; - } - - @Id - @Column(name = "datenbasis_id", unique = true, nullable = false) - public short getDatenbasisId() { - return this.datenbasisId; - } - - public void setDatenbasisId(short datenbasisId) { - this.datenbasisId = datenbasisId; - } - - @Column(name = "beschreibung", length = 30) - public String getBeschreibung() { - return this.beschreibung; - } - - public void setBeschreibung(String beschreibung) { - this.beschreibung = beschreibung; - } - - @Column(name = "datenbasis", length = 6) - public String getDatenbasis() { - return this.datenbasis; - } - - public void setDatenbasis(String datenbasis) { - this.datenbasis = datenbasis; - } -}
--- a/src/main/java/de/intevation/lada/model/SKoordinatenArt.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,70 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.model; - -// Generated 21.05.2013 16:58:30 by Hibernate Tools 3.4.0.CR1 - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -/** - * SKoordinatenArt generated by hbm2java - */ -@Entity -@Table(name = "s_koordinaten_art", schema = "public") -public class SKoordinatenArt implements java.io.Serializable { - - private short kdaId; - private String koordinatenart; - private String idfGeoKey; - - public SKoordinatenArt() { - } - - public SKoordinatenArt(short kdaId) { - this.kdaId = kdaId; - } - - public SKoordinatenArt(short kdaId, String koordinatenart, - String idfGeoKey) { - this.kdaId = kdaId; - this.koordinatenart = koordinatenart; - this.idfGeoKey = idfGeoKey; - } - - @Id - @Column(name = "kda_id", unique = true, nullable = false) - public short getKdaId() { - return this.kdaId; - } - - public void setKdaId(short kdaId) { - this.kdaId = kdaId; - } - - @Column(name = "koordinatenart", length = 50) - public String getKoordinatenart() { - return this.koordinatenart; - } - - public void setKoordinatenart(String koordinatenart) { - this.koordinatenart = koordinatenart; - } - - @Column(name = "idf_geo_key", length = 1) - public String getIdfGeoKey() { - return this.idfGeoKey; - } - - public void setIdfGeoKey(String idfGeoKey) { - this.idfGeoKey = idfGeoKey; - } - -}
--- a/src/main/java/de/intevation/lada/model/SMessEinheit.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,91 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.model; - -// Generated 21.05.2013 16:58:30 by Hibernate Tools 3.4.0.CR1 - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -/** - * SMessEinheit generated by hbm2java - */ -@Entity -@Table(name = "s_mess_einheit", schema = "public") -public class SMessEinheit implements java.io.Serializable { - - private short mehId; - private String beschreibung; - private String einheit; - private String eudfMesseinheitId; - private Long umrechnungsFaktorEudf; - - public SMessEinheit() { - } - - public SMessEinheit(short mehId) { - this.mehId = mehId; - } - - public SMessEinheit(short mehId, String beschreibung, String einheit, - String eudfMesseinheitId, Long umrechnungsFaktorEudf) { - this.mehId = mehId; - this.beschreibung = beschreibung; - this.einheit = einheit; - this.eudfMesseinheitId = eudfMesseinheitId; - this.umrechnungsFaktorEudf = umrechnungsFaktorEudf; - } - - @Id - @Column(name = "meh_id", unique = true, nullable = false) - public short getMehId() { - return this.mehId; - } - - public void setMehId(short mehId) { - this.mehId = mehId; - } - - @Column(name = "beschreibung", length = 50) - public String getBeschreibung() { - return this.beschreibung; - } - - public void setBeschreibung(String beschreibung) { - this.beschreibung = beschreibung; - } - - @Column(name = "einheit", length = 12) - public String getEinheit() { - return this.einheit; - } - - public void setEinheit(String einheit) { - this.einheit = einheit; - } - - @Column(name = "eudf_messeinheit_id", length = 8) - public String getEudfMesseinheitId() { - return this.eudfMesseinheitId; - } - - public void setEudfMesseinheitId(String eudfMesseinheitId) { - this.eudfMesseinheitId = eudfMesseinheitId; - } - - @Column(name = "umrechnungs_faktor_eudf") - public Long getUmrechnungsFaktorEudf() { - return this.umrechnungsFaktorEudf; - } - - public void setUmrechnungsFaktorEudf(Long umrechnungsFaktorEudf) { - this.umrechnungsFaktorEudf = umrechnungsFaktorEudf; - } -}
--- a/src/main/java/de/intevation/lada/model/SMessMethode.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,75 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.model; - -// Generated 24.06.2013 16:31:53 by Hibernate Tools 3.4.0.CR1 - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - - -/** - * SMessMethode generated by hbm2java - */ -@Entity -@Table(name = "s_mess_methode" - , schema = "public") -public class SMessMethode -implements java.io.Serializable -{ - - private String mmtId; - private String beschreibung; - private String messmethode; - - public SMessMethode() { - } - - public SMessMethode(String mmtId) { - this.mmtId = mmtId; - } - - public SMessMethode( - String mmtId, - String beschreibung, - String messmethode) { - this.mmtId = mmtId; - this.beschreibung = beschreibung; - this.messmethode = messmethode; - } - - @Id - @Column(name = "mmt_id", unique = true, nullable = false, length = 2) - public String getMmtId() { - return this.mmtId; - } - - public void setMmtId(String mmtId) { - this.mmtId = mmtId; - } - - @Column(name = "beschreibung", length = 300) - public String getBeschreibung() { - return this.beschreibung; - } - - public void setBeschreibung(String beschreibung) { - this.beschreibung = beschreibung; - } - - @Column(name = "messmethode", length = 50) - public String getMessmethode() { - return this.messmethode; - } - - public void setMessmethode(String messmethode) { - this.messmethode = messmethode; - } -}
--- a/src/main/java/de/intevation/lada/model/SMessStelle.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,103 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.model; - -// Generated 21.05.2013 16:58:30 by Hibernate Tools 3.4.0.CR1 - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -/** - * SMessStelle generated by hbm2java - */ -@Entity -@Table(name = "s_mess_stelle", schema = "public") -public class SMessStelle implements java.io.Serializable { - - private String mstId; - private String netzbetreiberId; - private String beschreibung; - private String messStelle; - private String mstTyp; - private String amtskennung; - - public SMessStelle() { - } - - public SMessStelle(String mstId) { - this.mstId = mstId; - } - - public SMessStelle(String mstId, String netzbetreiberId, - String beschreibung, String messStelle, String mstTyp, - String amtskennung) { - this.mstId = mstId; - this.netzbetreiberId = netzbetreiberId; - this.beschreibung = beschreibung; - this.messStelle = messStelle; - this.mstTyp = mstTyp; - this.amtskennung = amtskennung; - } - - @Id - @Column(name = "mst_id", unique = true, nullable = false, length = 5) - public String getMstId() { - return this.mstId; - } - - public void setMstId(String mstId) { - this.mstId = mstId; - } - - @Column(name = "netzbetreiber_id", length = 2) - public String getNetzbetreiberId() { - return this.netzbetreiberId; - } - - public void setNetzbetreiberId(String netzbetreiberId) { - this.netzbetreiberId = netzbetreiberId; - } - - @Column(name = "beschreibung", length = 300) - public String getBeschreibung() { - return this.beschreibung; - } - - public void setBeschreibung(String beschreibung) { - this.beschreibung = beschreibung; - } - - @Column(name = "mess_stelle", length = 60) - public String getMessStelle() { - return this.messStelle; - } - - public void setMessStelle(String messStelle) { - this.messStelle = messStelle; - } - - @Column(name = "mst_typ", length = 1) - public String getMstTyp() { - return this.mstTyp; - } - - public void setMstTyp(String mstTyp) { - this.mstTyp = mstTyp; - } - - @Column(name = "amtskennung", length = 6) - public String getAmtskennung() { - return this.amtskennung; - } - - public void setAmtskennung(String amtskennung) { - this.amtskennung = amtskennung; - } -}
--- a/src/main/java/de/intevation/lada/model/SMessgroesse.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,127 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.model; - -// Generated 21.05.2013 16:58:30 by Hibernate Tools 3.4.0.CR1 - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -/** - * SMessgroesse generated by hbm2java - */ -@Entity -@Table(name = "s_messgroesse", schema = "public") -public class SMessgroesse implements java.io.Serializable { - - private int messgroesseId; - private String beschreibung; - private String messgroesse; - private String defaultFarbe; - private String idfNuklidKey; - private Character istLeitnuklid; - private Long eudfNuklidId; - private String kennungBvl; - - public SMessgroesse() { - } - - public SMessgroesse(int messgroesseId, String messgro0esse) { - this.messgroesseId = messgroesseId; - this.messgroesse = messgro0esse; - } - - public SMessgroesse(int messgroesseId, String beschreibung, - String messgro0esse, String defaultFarbe, String idfNuklidKey, - Character istLeitnuklid, Long eudfNuklidId, String kennungBvl) { - this.messgroesseId = messgroesseId; - this.beschreibung = beschreibung; - this.messgroesse = messgro0esse; - this.defaultFarbe = defaultFarbe; - this.idfNuklidKey = idfNuklidKey; - this.istLeitnuklid = istLeitnuklid; - this.eudfNuklidId = eudfNuklidId; - this.kennungBvl = kennungBvl; - } - - @Id - @Column(name = "messgroesse_id", unique = true, nullable = false) - public int getMessgroesseId() { - return this.messgroesseId; - } - - public void setMessgroesseId(int messgroesseId) { - this.messgroesseId = messgroesseId; - } - - @Column(name = "beschreibung", length = 300) - public String getBeschreibung() { - return this.beschreibung; - } - - public void setBeschreibung(String beschreibung) { - this.beschreibung = beschreibung; - } - - @Column(name = "messgroesse", nullable = false, length = 50) - public String getMessgroesse() { - return this.messgroesse; - } - - public void setMessgroesse(String messgro0esse) { - this.messgroesse = messgro0esse; - } - - @Column(name = "default_farbe", length = 9) - public String getDefaultFarbe() { - return this.defaultFarbe; - } - - public void setDefaultFarbe(String defaultFarbe) { - this.defaultFarbe = defaultFarbe; - } - - @Column(name = "idf_nuklid_key", length = 6) - public String getIdfNuklidKey() { - return this.idfNuklidKey; - } - - public void setIdfNuklidKey(String idfNuklidKey) { - this.idfNuklidKey = idfNuklidKey; - } - - @Column(name = "ist_leitnuklid", length = 1) - public Character getIstLeitnuklid() { - return this.istLeitnuklid; - } - - public void setIstLeitnuklid(Character istLeitnuklid) { - this.istLeitnuklid = istLeitnuklid; - } - - @Column(name = "eudf_nuklid_id") - public Long getEudfNuklidId() { - return this.eudfNuklidId; - } - - public void setEudfNuklidId(Long eudfNuklidId) { - this.eudfNuklidId = eudfNuklidId; - } - - @Column(name = "kennung_bvl", length = 7) - public String getKennungBvl() { - return this.kennungBvl; - } - - public void setKennungBvl(String kennungBvl) { - this.kennungBvl = kennungBvl; - } - -}
--- a/src/main/java/de/intevation/lada/model/SNetzBetreiber.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,101 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.model; - -import java.io.Serializable; -import javax.persistence.*; - - -/** - * The persistent class for the s_netz_betreiber database table. - * - */ -@Entity -@Table(name="s_netz_betreiber") -public class SNetzBetreiber implements Serializable { - private static final long serialVersionUID = 1L; - - @Id - @Column(name="netzbetreiber_id") - private String netzbetreiberId; - - private String aktiv; - - @Column(name="idf_netzbetreiber") - private String idfNetzbetreiber; - - @Column(name="is_bmn") - private String isBmn; - - private String mailverteiler; - - private String netzbetreiber; - - @Column(name="zust_mst_id") - private String zustMstId; - - public SNetzBetreiber() { - } - - public String getNetzbetreiberId() { - return this.netzbetreiberId; - } - - public void setNetzbetreiberId(String netzbetreiberId) { - this.netzbetreiberId = netzbetreiberId; - } - - public String getAktiv() { - return this.aktiv; - } - - public void setAktiv(String aktiv) { - this.aktiv = aktiv; - } - - public String getIdfNetzbetreiber() { - return this.idfNetzbetreiber; - } - - public void setIdfNetzbetreiber(String idfNetzbetreiber) { - this.idfNetzbetreiber = idfNetzbetreiber; - } - - public String getIsBmn() { - return this.isBmn; - } - - public void setIsBmn(String isBmn) { - this.isBmn = isBmn; - } - - public String getMailverteiler() { - return this.mailverteiler; - } - - public void setMailverteiler(String mailverteiler) { - this.mailverteiler = mailverteiler; - } - - public String getNetzbetreiber() { - return this.netzbetreiber; - } - - public void setNetzbetreiber(String netzbetreiber) { - this.netzbetreiber = netzbetreiber; - } - - public String getZustMstId() { - return this.zustMstId; - } - - public void setZustMstId(String zustMstId) { - this.zustMstId = zustMstId; - } - -} \ No newline at end of file
--- a/src/main/java/de/intevation/lada/model/SPflichtMessgroesse.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,81 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.model; - -import java.io.Serializable; -import javax.persistence.*; - - -/** - * The persistent class for the s_pflicht_messgroesse database table. - * - */ -@Entity -@Table(name="s_pflicht_messgroesse") -public class SPflichtMessgroesse implements Serializable { - private static final long serialVersionUID = 1L; - - @Id - private Integer id; - - @Column(name="datenbasis_id") - private Integer datenbasisId; - - @Column(name="messgroesse_id") - private Integer messgroesseId; - - @Column(name="mmt_id") - private String mmtId; - - @Column(name="umw_id") - private String umwId; - - public SPflichtMessgroesse() { - } - - public Integer getId() { - return this.id; - } - - public void setId(Integer id) { - this.id = id; - } - - public Integer getDatenbasisId() { - return this.datenbasisId; - } - - public void setDatenbasisId(Integer datenbasisId) { - this.datenbasisId = datenbasisId; - } - - public Integer getMessgroesseId() { - return this.messgroesseId; - } - - public void setMessgroesseId(Integer messgroesseId) { - this.messgroesseId = messgroesseId; - } - - public String getMmtId() { - return this.mmtId; - } - - public void setMmtId(String mmtId) { - this.mmtId = mmtId; - } - - public String getUmwId() { - return this.umwId; - } - - public void setUmwId(String umwId) { - this.umwId = umwId; - } - -} \ No newline at end of file
--- a/src/main/java/de/intevation/lada/model/SProbenZusatz.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,95 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.model; - -// Generated 21.05.2013 16:58:30 by Hibernate Tools 3.4.0.CR1 - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; -import javax.persistence.UniqueConstraint; - -/** - * SProbenZusatz generated by hbm2java - */ -@Entity -@Table(name = "s_proben_zusatz", schema = "public", uniqueConstraints = @UniqueConstraint(columnNames = "eudf_keyword")) -public class SProbenZusatz implements java.io.Serializable { - - private String pzsId; - private Short mehId; - private String beschreibung; - private String zusatzwert; - private String eudfKeyword; - - public SProbenZusatz() { - } - - public SProbenZusatz(String pzsId, String beschreibung, String zusatzwert) { - this.pzsId = pzsId; - this.beschreibung = beschreibung; - this.zusatzwert = zusatzwert; - } - - public SProbenZusatz(String pzsId, Short mehId, String beschreibung, - String zusatzwert, String eudfKeyword) { - this.pzsId = pzsId; - this.mehId = mehId; - this.beschreibung = beschreibung; - this.zusatzwert = zusatzwert; - this.eudfKeyword = eudfKeyword; - } - - @Id - @Column(name = "pzs_id", unique = true, nullable = false, length = 3) - public String getPzsId() { - return this.pzsId; - } - - public void setPzsId(String pzsId) { - this.pzsId = pzsId; - } - - @Column(name = "meh_id") - public Short getMehId() { - return this.mehId; - } - - public void setMehId(Short mehId) { - this.mehId = mehId; - } - - @Column(name = "beschreibung", nullable = false, length = 50) - public String getBeschreibung() { - return this.beschreibung; - } - - public void setBeschreibung(String beschreibung) { - this.beschreibung = beschreibung; - } - - @Column(name = "zusatzwert", nullable = false, length = 7) - public String getZusatzwert() { - return this.zusatzwert; - } - - public void setZusatzwert(String zusatzwert) { - this.zusatzwert = zusatzwert; - } - - @Column(name = "eudf_keyword", unique = true, length = 40) - public String getEudfKeyword() { - return this.eudfKeyword; - } - - public void setEudfKeyword(String eudfKeyword) { - this.eudfKeyword = eudfKeyword; - } - -}
--- a/src/main/java/de/intevation/lada/model/SProbenart.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,83 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.model; - -// Generated 21.05.2013 16:58:30 by Hibernate Tools 3.4.0.CR1 - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -/** - * SProbenart generated by hbm2java - */ -@Entity -@Table(name = "s_probenart", schema = "public") -public class SProbenart implements java.io.Serializable { - - private short probenartId; - private String beschreibung; - private String probenart; - private String probenartEudfId; - - public SProbenart() { - } - - public SProbenart(short probenartId, String probenart, - String probenartEudfId) { - this.probenartId = probenartId; - this.probenart = probenart; - this.probenartEudfId = probenartEudfId; - } - - public SProbenart(short probenartId, String beschreibung, String probenart, - String probenartEudfId) { - this.probenartId = probenartId; - this.beschreibung = beschreibung; - this.probenart = probenart; - this.probenartEudfId = probenartEudfId; - } - - @Id - @Column(name = "probenart_id", unique = true, nullable = false) - public short getProbenartId() { - return this.probenartId; - } - - public void setProbenartId(short probenartId) { - this.probenartId = probenartId; - } - - @Column(name = "beschreibung", length = 30) - public String getBeschreibung() { - return this.beschreibung; - } - - public void setBeschreibung(String beschreibung) { - this.beschreibung = beschreibung; - } - - @Column(name = "probenart", nullable = false, length = 5) - public String getProbenart() { - return this.probenart; - } - - public void setProbenart(String probenart) { - this.probenart = probenart; - } - - @Column(name = "probenart_eudf_id", nullable = false, length = 1) - public String getProbenartEudfId() { - return this.probenartEudfId; - } - - public void setProbenartEudfId(String probenartEudfId) { - this.probenartEudfId = probenartEudfId; - } -}
--- a/src/main/java/de/intevation/lada/model/SStaat.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,144 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.model; - -// Generated 21.05.2013 16:58:30 by Hibernate Tools 3.4.0.CR1 - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.FetchType; -import javax.persistence.Id; -import javax.persistence.JoinColumn; -import javax.persistence.ManyToOne; -import javax.persistence.Table; - -/** - * SStaat generated by hbm2java - */ -@Entity -@Table(name = "s_staat", schema = "public") -public class SStaat implements java.io.Serializable { - - private short staatId; - private SKoordinatenArt SKoordinatenArt; - private String staat; - private short hklId; - private String staatIso; - private String staatKurz; - private Character eu; - private String koordXExtern; - private String koordYExtern; - - public SStaat() { - } - - public SStaat(short staatId, String staat, short hklId, String staatIso) { - this.staatId = staatId; - this.staat = staat; - this.hklId = hklId; - this.staatIso = staatIso; - } - - public SStaat(short staatId, SKoordinatenArt SKoordinatenArt, String staat, - short hklId, String staatIso, String staatKurz, Character eu, - String koordXExtern, String koordYExtern) { - this.staatId = staatId; - this.SKoordinatenArt = SKoordinatenArt; - this.staat = staat; - this.hklId = hklId; - this.staatIso = staatIso; - this.staatKurz = staatKurz; - this.eu = eu; - this.koordXExtern = koordXExtern; - this.koordYExtern = koordYExtern; - } - - @Id - @Column(name = "staat_id", unique = true, nullable = false) - public short getStaatId() { - return this.staatId; - } - - public void setStaatId(short staatId) { - this.staatId = staatId; - } - - @ManyToOne(fetch = FetchType.EAGER) - @JoinColumn(name = "kda_id") - public SKoordinatenArt getSKoordinatenArt() { - return this.SKoordinatenArt; - } - - public void setSKoordinatenArt(SKoordinatenArt SKoordinatenArt) { - this.SKoordinatenArt = SKoordinatenArt; - } - - @Column(name = "staat", nullable = false, length = 50) - public String getStaat() { - return this.staat; - } - - public void setStaat(String staat) { - this.staat = staat; - } - - @Column(name = "hkl_id", nullable = false) - public short getHklId() { - return this.hklId; - } - - public void setHklId(short hklId) { - this.hklId = hklId; - } - - @Column(name = "staat_iso", nullable = false, length = 2) - public String getStaatIso() { - return this.staatIso; - } - - public void setStaatIso(String staatIso) { - this.staatIso = staatIso; - } - - @Column(name = "staat_kurz", length = 5) - public String getStaatKurz() { - return this.staatKurz; - } - - public void setStaatKurz(String staatKurz) { - this.staatKurz = staatKurz; - } - - @Column(name = "eu", length = 1) - public Character getEu() { - return this.eu; - } - - public void setEu(Character eu) { - this.eu = eu; - } - - @Column(name = "koord_x_extern", length = 22) - public String getKoordXExtern() { - return this.koordXExtern; - } - - public void setKoordXExtern(String koordXExtern) { - this.koordXExtern = koordXExtern; - } - - @Column(name = "koord_y_extern", length = 22) - public String getKoordYExtern() { - return this.koordYExtern; - } - - public void setKoordYExtern(String koordYExtern) { - this.koordYExtern = koordYExtern; - } - -}
--- a/src/main/java/de/intevation/lada/model/SUmwelt.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,86 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.model; - -// Generated 21.05.2013 16:58:30 by Hibernate Tools 3.4.0.CR1 - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.FetchType; -import javax.persistence.Id; -import javax.persistence.JoinColumn; -import javax.persistence.ManyToOne; -import javax.persistence.Table; -import javax.persistence.UniqueConstraint; - -/** - * SUmwelt generated by hbm2java - */ -@Entity -@Table(name = "s_umwelt", schema = "public", uniqueConstraints = @UniqueConstraint(columnNames = "umwelt_bereich")) -public class SUmwelt implements java.io.Serializable { - - private String umwId; - private SMessEinheit SMessEinheit; - private String beschreibung; - private String umweltBereich; - - public SUmwelt() { - } - - public SUmwelt(String umwId, String umweltBereich) { - this.umwId = umwId; - this.umweltBereich = umweltBereich; - } - - public SUmwelt(String umwId, SMessEinheit SMessEinheit, - String beschreibung, String umweltBereich) { - this.umwId = umwId; - this.SMessEinheit = SMessEinheit; - this.beschreibung = beschreibung; - this.umweltBereich = umweltBereich; - } - - @Id - @Column(name = "umw_id", unique = true, nullable = false, length = 3) - public String getUmwId() { - return this.umwId; - } - - public void setUmwId(String umwId) { - this.umwId = umwId; - } - - @ManyToOne(fetch = FetchType.EAGER) - @JoinColumn(name = "meh_id") - public SMessEinheit getSMessEinheit() { - return this.SMessEinheit; - } - - public void setSMessEinheit(SMessEinheit SMessEinheit) { - this.SMessEinheit = SMessEinheit; - } - - @Column(name = "beschreibung", length = 300) - public String getBeschreibung() { - return this.beschreibung; - } - - public void setBeschreibung(String beschreibung) { - this.beschreibung = beschreibung; - } - - @Column(name = "umwelt_bereich", unique = true, nullable = false, length = 80) - public String getUmweltBereich() { - return this.umweltBereich; - } - - public void setUmweltBereich(String umweltBereich) { - this.umweltBereich = umweltBereich; - } -}
--- a/src/main/java/de/intevation/lada/model/SVerwaltungseinheit.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,225 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.model; - -// Generated 21.05.2013 16:58:30 by Hibernate Tools 3.4.0.CR1 - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -/** - * SVerwaltungseinheit generated by hbm2java - */ -@Entity -@Table(name = "s_verwaltungseinheit", schema = "public") -public class SVerwaltungseinheit implements java.io.Serializable { - - private String gemId; - private String bundesland; - private Short kdaId; - private String kreis; - private String nuts; - private String regbezirk; - private String bezeichnung; - private char isBundesland; - private char isGemeinde; - private char isLandkreis; - private char isRegbezirk; - private String koordXExtern; - private String koordYExtern; - private String plz; - private Double longitude; - private Double latitude; - - public SVerwaltungseinheit() { - } - - public SVerwaltungseinheit(String gemId, String bundesland, - String bezeichnung, char isBundesland, char isGemeinde, - char isLandkreis, char isRegbezirk) { - this.gemId = gemId; - this.bundesland = bundesland; - this.bezeichnung = bezeichnung; - this.isBundesland = isBundesland; - this.isGemeinde = isGemeinde; - this.isLandkreis = isLandkreis; - this.isRegbezirk = isRegbezirk; - } - - public SVerwaltungseinheit(String gemId, String bundesland, Short kdaId, - String kreis, String nuts, String regbezirk, String bezeichnung, - char isBundesland, char isGemeinde, char isLandkreis, - char isRegbezirk, String koordXExtern, - String koordYExtern, String plz, - Double longitude, Double latitude) { - this.gemId = gemId; - this.bundesland = bundesland; - this.kdaId = kdaId; - this.kreis = kreis; - this.nuts = nuts; - this.regbezirk = regbezirk; - this.bezeichnung = bezeichnung; - this.isBundesland = isBundesland; - this.isGemeinde = isGemeinde; - this.isLandkreis = isLandkreis; - this.isRegbezirk = isRegbezirk; - this.koordXExtern = koordXExtern; - this.koordYExtern = koordYExtern; - this.plz = plz; - this.longitude = longitude; - this.latitude = latitude; - } - - @Id - @Column(name = "gem_id", unique = true, nullable = false, length = 8) - public String getGemId() { - return this.gemId; - } - - public void setGemId(String gemId) { - this.gemId = gemId; - } - - @Column(name = "bundesland", nullable = false, length = 8) - public String getBundesland() { - return this.bundesland; - } - - public void setBundesland(String bundesland) { - this.bundesland = bundesland; - } - - @Column(name = "kda_id") - public Short getKdaId() { - return this.kdaId; - } - - public void setKdaId(Short kdaId) { - this.kdaId = kdaId; - } - - @Column(name = "kreis", length = 8) - public String getKreis() { - return this.kreis; - } - - public void setKreis(String kreis) { - this.kreis = kreis; - } - - @Column(name = "nuts", length = 10) - public String getNuts() { - return this.nuts; - } - - public void setNuts(String nuts) { - this.nuts = nuts; - } - - @Column(name = "regbezirk", length = 8) - public String getRegbezirk() { - return this.regbezirk; - } - - public void setRegbezirk(String regbezirk) { - this.regbezirk = regbezirk; - } - - @Column(name = "bezeichnung", nullable = false, length = 80) - public String getBezeichnung() { - return this.bezeichnung; - } - - public void setBezeichnung(String bezeichnung) { - this.bezeichnung = bezeichnung; - } - - @Column(name = "is_bundesland", nullable = false, length = 1) - public char getIsBundesland() { - return this.isBundesland; - } - - public void setIsBundesland(char isBundesland) { - this.isBundesland = isBundesland; - } - - @Column(name = "is_gemeinde", nullable = false, length = 1) - public char getIsGemeinde() { - return this.isGemeinde; - } - - public void setIsGemeinde(char isGemeinde) { - this.isGemeinde = isGemeinde; - } - - @Column(name = "is_landkreis", nullable = false, length = 1) - public char getIsLandkreis() { - return this.isLandkreis; - } - - public void setIsLandkreis(char isLandkreis) { - this.isLandkreis = isLandkreis; - } - - @Column(name = "is_regbezirk", nullable = false, length = 1) - public char getIsRegbezirk() { - return this.isRegbezirk; - } - - public void setIsRegbezirk(char isRegbezirk) { - this.isRegbezirk = isRegbezirk; - } - - @Column(name = "koord_x_extern", length = 22) - public String getKoordXExtern() { - return this.koordXExtern; - } - - public void setKoordXExtern(String koordXExtern) { - this.koordXExtern = koordXExtern; - } - - @Column(name = "koord_y_extern", length = 22) - public String getKoordYExtern() { - return this.koordYExtern; - } - - public void setKoordYExtern(String koordYExtern) { - this.koordYExtern = koordYExtern; - } - - @Column(name = "plz", length = 6) - public String getPlz() { - return this.plz; - } - - public void setPlz(String plz) { - this.plz = plz; - } - - @Column(name = "longitude", precision = 17, scale = 17) - public Double getLongitude() { - return this.longitude; - } - - public void setLongitude(Double longitude) { - this.longitude = longitude; - } - - @Column(name = "latitude", precision = 17, scale = 17) - public Double getLatitude() { - return this.latitude; - } - - public void setLatitude(Double latitude) { - this.latitude = latitude; - } - -}
--- a/src/main/java/de/intevation/lada/model/query/QueryConfig.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,119 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.model.query; - -import java.util.List; - -import de.intevation.lada.model.LProbeInfo; - -/** - * Container for SQL query configuration. - * - * The server can filter {@link LProbeInfo} objects by configurable SQL queries - * as described in the project wiki (<link>https://bfs-intern.intevation.de/Server/Suche</link>). - * This container is used to store the config at runtime. - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -public class QueryConfig -{ - int id; - String name; - String description; - String sql; - List<QueryFilter> filters; - List<ResultConfig> results; - - public QueryConfig() - { - } - - /** - * @return the id - */ - public int getId() { - return id; - } - - /** - * @param id the id to set - */ - public void setId(int id) { - this.id = id; - } - - /** - * @return the name - */ - public String getName() { - return name; - } - - /** - * @param name the name to set - */ - public void setName(String name) { - this.name = name; - } - - /** - * @return the description - */ - public String getDescription() { - return description; - } - - /** - * @param description the description to set - */ - public void setDescription(String description) { - this.description = description; - } - - /** - * @return the sql - */ - public String getSql() { - return sql; - } - - /** - * @param sql the sql to set - */ - public void setSql(String sql) { - this.sql = sql; - } - - /** - * @return the filter - */ - public List<QueryFilter> getFilters() { - return filters; - } - - /** - * @param filters the filter to set - */ - public void setFilters(List<QueryFilter> filters) { - this.filters = filters; - } - - /** - * @return the results - */ - public List<ResultConfig> getResults() { - return results; - } - - /** - * @param results the results to set - */ - public void setResults(List<ResultConfig> results) { - this.results = results; - } -}
--- a/src/main/java/de/intevation/lada/model/query/QueryFilter.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,97 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.model.query; - -/** - * Container for data filter. - * Stores filter defined in the SQL query configuration. - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -public class QueryFilter -{ - private String dataIndex; - private String type; - private String label; - private boolean multiSelect; - - /** - * Default constructor. - */ - public QueryFilter() { - } - - /** - * Constructor to create a filled filter. - * - * @param dataIndex The dataIndex. - * @param type The filter type. - * @param label The label. - */ - public QueryFilter(String dataIndex, String type, String label) { - this.dataIndex = dataIndex; - this.type = type; - this.label = label; - } - - /** - * @return The dataIndex - */ - public String getDataIndex() { - return dataIndex; - } - - /** - * @param dataIndex THe dataIndex to set. - */ - public void setDataIndex(String dataIndex) { - this.dataIndex = dataIndex; - } - - /** - * @return The filter type. - */ - public String getType() { - return type; - } - - /** - * @param type The filter type to set. - */ - public void setType(String type) { - this.type = type; - } - - /** - * @return The label. - */ - public String getLabel() { - return label; - } - - /** - * @param label The label to set. - */ - public void setLabel(String label) { - this.label = label; - } - - /** - * @return the multiSelect - */ - public boolean isMultiSelect() { - return multiSelect; - } - - /** - * @param multiSelect the multiSelect to set - */ - public void setMultiSelect(boolean multiSelect) { - this.multiSelect = multiSelect; - } -}
--- a/src/main/java/de/intevation/lada/model/query/ResultConfig.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,120 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.model.query; - -/** - * Container for result configurations. - * Provides config for the client like column header, column with and data index. - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -public class ResultConfig -{ - String dataIndex; - String header; - Integer flex; - Integer width; - - /** - * Default constructor. - */ - public ResultConfig() { - } - - /** - * @param dataIndex The dataIndex - * @param header The column header - * @param flex Flexible with - * @param width Width in px. - */ - public ResultConfig(String dataIndex, String header, Integer flex, Integer width) { - this.dataIndex= dataIndex; - this.header= header; - this.flex = flex; - this.width = width; - } - - /** - * @param dataIndex The dataIndex - * @param header The column header - * @param flex Flexible with - */ - public ResultConfig(String dataIndex, String header, Integer flex) { - this.dataIndex= dataIndex; - this.header= header; - this.flex = flex; - this.width = null; - } - - /** - * @param dataIndex The dataIndex - * @param header The column header - */ - public ResultConfig(String dataIndex, String header) { - this.dataIndex= dataIndex; - this.header= header; - this.flex = 0; - this.width = null; - } - - /** - * @return the dataIndex - */ - public String getDataIndex() { - return dataIndex; - } - - /** - * @param dataIndex the dataIndex to set - */ - public void setDataIndex(String dataIndex) { - this.dataIndex = dataIndex; - } - - /** - * @return the header - */ - public String getHeader() { - return header; - } - - /** - * @param header the header to set - */ - public void setHeader(String header) { - this.header = header; - } - - /** - * @return the width - */ - public Integer getWidth() { - return width; - } - - /** - * @param width the width to set - */ - public void setWidth(Integer width) { - this.width = width; - } - - /** - * @return the flex - */ - public Integer getFlex() { - return flex; - } - - /** - * @param flex the flex to set - */ - public void setFlex(Integer flex) { - this.flex = flex; - } -}
--- a/src/main/java/de/intevation/lada/rest/AuthInfoService.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,82 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.rest; - -import javax.enterprise.context.RequestScoped; -import javax.inject.Inject; -import javax.inject.Named; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.HttpHeaders; - -import de.intevation.lada.auth.Authentication; -import de.intevation.lada.auth.AuthenticationException; -import de.intevation.lada.auth.Authorization; -import de.intevation.lada.model.LProbe; - -/** - * This class produces a RESTful service to get information about - * access of probe objects. - * - * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a> - */ -@Path("/authinfo") -@RequestScoped -public class AuthInfoService -{ - /** - * The authorization module. - */ - @Inject - @Named("ldapauth") - private Authentication authentication; - - @Inject - @Named("dataauthorization") - private Authorization authorization; - - /** - * Request information about access to probe objects - * - * @param id The {@link LProbe} id. - * @param headers The HTTP header containing authorization information. - * @return Response object. - */ - @GET - @Path("/{id}") - @Produces("text/json") - public Response get( - @PathParam("id") String id, - @Context HttpHeaders headers - ) { - try { - if (!authentication.isAuthorizedUser(headers)) { - return new Response(false, 699, null); - } - boolean isOwner = false; - boolean isReadonly = true; - if (authentication.hasAccess(headers, id)) { - isOwner = true; - } - if (!authorization.isReadOnly(id)) { - isReadonly = false; - } - Response response = new Response( - true, - 200, - "{isOwner: " + isOwner + ", readonly:" + isReadonly + "}"); - return response; - } - catch(AuthenticationException ae) { - return new Response(false, 699, null); - } - } -}
--- a/src/main/java/de/intevation/lada/rest/InfoService.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,130 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.rest; - -import java.util.List; - -import javax.enterprise.context.RequestScoped; -import javax.inject.Inject; -import javax.inject.Named; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.UriInfo; - -import de.intevation.lada.auth.Authentication; -import de.intevation.lada.auth.AuthenticationException; -import de.intevation.lada.auth.AuthenticationResponse; -import de.intevation.lada.data.QueryBuilder; -import de.intevation.lada.data.Repository; -import de.intevation.lada.model.SNetzBetreiber; - -class Info { - String user; - String groups; - String version; - public Info(String user, String groups, String version) { - this.user = user; - this.groups = groups; - this.version = version; - } - public String getUser() { - return user; - } - public void setUser(String user) { - this.user = user; - } - public String getGroups() { - return groups; - } - public void setGroups(String groups) { - this.groups = groups; - } - public String getVersion() { - return version; - } - public void setVersion(String version) { - this.version = version; - } -} - -/** - * This class produces a RESTful service to read information about the user and - * server - * - * @author <a href="mailto:torsten.irlaender@intevation.de">Torsten Irländer</a> - */ -@Path("/info") -@RequestScoped -public class InfoService -{ - /** - * The authorization module. - */ - @Inject - @Named("ldapauth") - private Authentication authentication; - - @Inject - @Named("readonlyrepository") - private Repository readonlyRepo; - - /** - * Request User and Server information. - * - * @param info The URL query parameters. - * @param headers The HTTP header containing authorization information. - * @return Response object. - */ - @GET - @Produces("text/json") - public Response filter( - @Context UriInfo info, - @Context HttpHeaders headers - ) { - try { - if (!authentication.isAuthorizedUser(headers)) { - return new Response(false, 699, null); - } - String user = authentication.getUserName(headers); - AuthenticationResponse ar = authentication.authorizedGroups(headers); - List<String> groups = ar.getNetzbetreiber(); - QueryBuilder<SNetzBetreiber> builder = - new QueryBuilder<SNetzBetreiber>( - readonlyRepo.getEntityManager(), SNetzBetreiber.class); - for (String g : groups) { - builder.or("netzbetreiberId", g); - } - Response nResponse = readonlyRepo.filter(builder.getQuery()); - List<SNetzBetreiber> netzbetr = (List<SNetzBetreiber>)nResponse.getData(); - String gString = ""; - boolean first = true; - for(SNetzBetreiber nb : netzbetr) { - if (first) { - gString += nb.getNetzbetreiber(); - first = false; - } - else { - gString += ", " + nb.getNetzbetreiber(); - } - } - //TODO: This is the best way to get the version. - // Should read the version from MANIFEST.MF but does not work (returns null). - //String version = getClass().getPackage().getImplementationVersion(); - String version = System.getProperty("de.intevation.lada.server.version"); - - Response response = new Response(true, 200, new Info(user, gString, version)); - return response; - } - catch(AuthenticationException ae) { - return new Response(false, 699, null); - } - } -}
--- a/src/main/java/de/intevation/lada/rest/JaxRsActivator.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,25 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.rest; - -import javax.ws.rs.ApplicationPath; -import javax.ws.rs.core.Application; - -/** - * A class extending {@link Application} and annotated with @ApplicationPath is the Java EE 6 - * "no XML" approach to activating JAX-RS. - * - * <p> - * Resources are served relative to the servlet path specified in the {@link ApplicationPath} - * annotation. - * </p> - */ -@ApplicationPath("/rest") -public class JaxRsActivator extends Application { - /* class body intentionally left blank */ -}
--- a/src/main/java/de/intevation/lada/rest/LAFExportService.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,105 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.rest; - -import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; - -import javax.enterprise.context.RequestScoped; -import javax.inject.Inject; -import javax.inject.Named; -import javax.ws.rs.Consumes; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.Response.ResponseBuilder; -import javax.ws.rs.core.Response.Status; - -import de.intevation.lada.auth.Authentication; -import de.intevation.lada.auth.AuthenticationException; -import de.intevation.lada.auth.AuthenticationResponse; -import de.intevation.lada.auth.Authorization; -import de.intevation.lada.data.exporter.Exporter; - -/** -* This class produces a RESTful service to export a LAF file. -* -* @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> -*/ -@Path("/export") -@RequestScoped -public class LAFExportService -{ - @Inject - @Named("ldapauth") - private Authentication authentication; - - @Inject - @Named("dataauthorization") - private Authorization authorization; - - @Inject - @Named("lafexporter") - private Exporter exporter; - - /** - * Export LProbe objects. - * - * The service takes form url encoded POST data containing probe ids and - * exports the LProbe objects filtered by these ids. - * - * @param proben Form data (url encoded) string with probe ids. - * @param header The HTTP header containing authorization information. - * @return The LAF file to export. - */ - @POST - @Path("/laf") - @Consumes("application/x-www-form-urlencoded") - @Produces("text/plain") - public Response download( - String proben, - @Context HttpHeaders header - ) { - try { - String[] raw = proben.split("&"); - List<String> probeIds = new ArrayList<String>(); - for (int i = 0; i < raw.length; i++) { - String[] probe = raw[i].split("="); - probeIds.add(probe[1]); - } - String fileName = "export.laf"; - AuthenticationResponse auth = authentication.authorizedGroups(header); - if (!authentication.isAuthorizedUser(header)) { - ResponseBuilder response = Response.status(Status.FORBIDDEN); - return response.build(); - } - for (int i = 0; i < probeIds.size(); i++) { - String probeId = probeIds.get(i); - if (!authentication.hasAccess(header, probeId) && - !authorization.isReadOnly(probeId)) { - probeIds.remove(probeId); - } - } - InputStream exported = exporter.export(probeIds, auth); - ResponseBuilder response = Response.ok((Object)exported); - response.header( - "Content-Disposition", - "attachment; filename=\"" + fileName + "\""); - return response.build(); - - } - catch(AuthenticationException ae) { - ResponseBuilder response = Response.status(Status.FORBIDDEN); - return response.build(); - } - } -}
--- a/src/main/java/de/intevation/lada/rest/LAFImportService.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,114 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.rest; - -import java.io.IOException; -import java.io.InputStream; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.enterprise.context.RequestScoped; -import javax.inject.Inject; -import javax.inject.Named; -import javax.ws.rs.Consumes; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.MultivaluedMap; - -import org.apache.commons.io.IOUtils; -import org.jboss.resteasy.plugins.providers.multipart.InputPart; -import org.jboss.resteasy.plugins.providers.multipart.MultipartFormDataInput; - -import de.intevation.lada.auth.Authentication; -import de.intevation.lada.auth.AuthenticationException; -import de.intevation.lada.auth.AuthenticationResponse; -import de.intevation.lada.data.importer.Importer; - -/** -* This class produces a RESTful service to import a LAF file. -* -* @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> -*/ -@Path("/import") -@RequestScoped -public class LAFImportService -{ - @Inject - @Named("ldapauth") - private Authentication authentication; - - @Inject - @Named("lafimporter") - private Importer importer; - - /** - * Import LProbe object. - * See - * http://howtodoinjava.com/2013/05/21/jax-rs-resteasy-file-upload-httpclient-example/ - * for more details on the implementation. - * - * @param input MulitpartFormDataInput containing the file to upload. - * @param header The HTTP header containing authorization information. - * @return Response object. - */ - @POST - @Path("/laf") - @Produces("application/json") - @Consumes("multipart/form-data") - public Response upload(MultipartFormDataInput input, @Context HttpHeaders header) { - try { - AuthenticationResponse auth = authentication.authorizedGroups(header); - if (!authentication.isAuthorizedUser(header)) { - return new Response(false, 698, null); - } - - String name = ""; - String content = ""; - try { - List<InputPart> parts = input.getParts(); - for (InputPart part: parts) { - InputStream inStream = part.getBody(InputStream.class, null); - MultivaluedMap<String, String> headers = part.getHeaders(); - String[] cDisp = headers.getFirst("content-disposition").split(";"); - for (String fName : cDisp) { - if (fName.trim().startsWith("filename")) { - String[] fileName = fName.split("="); - name = fileName[1].trim().replace("\"", ""); - } - } - content = IOUtils.toString(inStream); - } - } - catch (IOException e) { - importer.reset(); - return new Response(false, 603, null); - } - - boolean success = importer.importData(content, auth); - Map<String, Object> respData = new HashMap<String,Object>(); - respData.put("errors", importer.getErrors()); - respData.put("warnings", importer.getWarnings()); - respData.put("filename", name); - int code = 200; - if (!success) { - code = 670; - } - Response response = new Response(success, code, respData); - importer.reset(); - return response; - } - catch(AuthenticationException ae) { - importer.reset(); - return new Response(false, 699, null); - } - } -}
--- a/src/main/java/de/intevation/lada/rest/LKommentarMService.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,205 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.rest; - -import java.math.BigInteger; -import java.util.ArrayList; -import java.util.List; - -import javax.enterprise.context.RequestScoped; -import javax.inject.Inject; -import javax.inject.Named; -import javax.persistence.Query; -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.MultivaluedMap; -import javax.ws.rs.core.UriInfo; - -import de.intevation.lada.auth.Authentication; -import de.intevation.lada.auth.AuthenticationException; -import de.intevation.lada.data.QueryBuilder; -import de.intevation.lada.data.Repository; -import de.intevation.lada.model.LKommentarM; -import de.intevation.lada.model.LKommentarMId; -import de.intevation.lada.model.LMessung; -import de.intevation.lada.model.LProbe; - -/** - * This class produces a RESTful service to read, write and update - * LKommentarM objects. - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -@Path("/messkommentare") -@RequestScoped -public class LKommentarMService -{ - /** - * The Repository for SMessStelle. - */ - @Inject - @Named("lkommentarmrepository") - private Repository repository; - - /** - * The authorization module. - */ - @Inject - @Named("ldapauth") - private Authentication authentication; - - /** - * Request LKommentarM via a filter. - * - * Query parameters are used for the filter in form of key-value pairs. - * - * @param info The URL query parameters. - * @param headers The HTTP header containing authorization information. - * @return Response object. - */ - @GET - @Produces("text/json") - public Response filter( - @Context UriInfo info, - @Context HttpHeaders headers - ) { - try { - if (!authentication.isAuthorizedUser(headers)) { - return new Response(false, 699, new ArrayList<LKommentarM>()); - } - MultivaluedMap<String, String> params = info.getQueryParameters(); - if (params.isEmpty() || - !params.containsKey("probeId") || - !params.containsKey("messungsId") - ) { - return new Response(false, 609, new ArrayList<LKommentarM>()); - } - String probeId = params.getFirst("probeId"); - QueryBuilder<LKommentarM> builder = - new QueryBuilder<LKommentarM>( - repository.getEntityManager(), LKommentarM.class); - builder.and("probeId", probeId) - .and("messungsId", params.getFirst("messungsId")); - return repository.filter(builder.getQuery()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<LKommentarM>()); - } - } - - /** - * Update LKommentarM objects. - * - * @param kommentar The LKommentarM object to update. - * @param headers The HTTP header containing authorization information. - * @return Response object. - */ - @PUT - @Path("/{kId}/{messungsId}/{probeId}") - @Produces("text/json") - @Consumes("application/json") - public Response update( - LKommentarM kommentar, - @Context HttpHeaders headers - ) { - try { - String probeId = kommentar.getProbeId(); - if (authentication.hasAccess(headers, probeId)) { - return repository.update(kommentar); - } - return new Response(false, 698, new ArrayList<LKommentarM>()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<LKommentarM>()); - } - } - - /** - * Create a new LKommentarM object. - * - * @param kommentar The new LKommentarM object. - * @param headers The HTTP header containing authorization information. - * @return Response object. - */ - @POST - @Produces("text/json") - @Consumes("application/json") - public Response create( - LKommentarM kommentar, - @Context HttpHeaders headers - ) { - try { - String probeId = kommentar.getProbeId(); - if (authentication.hasAccess(headers, probeId)) { - LKommentarMId id = new LKommentarMId(); - Query q = - repository.getEntityManager().createNativeQuery( - "select nextval('kommentar_m_id_seq')"); - BigInteger seqId = (BigInteger)q.getSingleResult(); - id.setKId(seqId.intValue()); - id.setMessungsId(kommentar.getMessungsId()); - id.setProbeId(probeId); - kommentar.setId(id); - return repository.create(kommentar); - } - return new Response(false, 698, new ArrayList<LKommentarM>()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<LKommentarM>()); - } - } - - /** - * Delete a LKommentarM object. - * - * @param kId The object id. - * @param messungsId The {@link LMessung} id. - * @param probeId The {@link LProbe} id - * @param headers The HTTP header containing authorization information. - * @return Response object. - */ - @DELETE - @Path("/{kId}/{messungsId}/{probeId}") - public Response delete( - @PathParam("kId") String kId, - @PathParam("messungsId") String messungsId, - @PathParam("probeId") String probeId, - @Context HttpHeaders headers - ) { - try { - if (authentication.hasAccess(headers, probeId)) { - QueryBuilder<LKommentarM> builder = - new QueryBuilder<LKommentarM>( - repository.getEntityManager(), - LKommentarM.class); - builder.and("KId", kId) - .and("messungsId", messungsId) - .and("probeId", probeId); - Response response = repository.filter(builder.getQuery()); - List<LKommentarM> list = (List<LKommentarM>)response.getData(); - if (!list.isEmpty()) { - repository.delete(list.get(0)); - return new Response(true, 200, null); - } - return new Response(false, 600, null); - } - return new Response(false, 698, new ArrayList<LKommentarM>()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<LKommentarM>()); - } - } -}
--- a/src/main/java/de/intevation/lada/rest/LKommentarService.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,191 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.rest; - -import java.util.ArrayList; -import java.util.List; -import java.util.logging.Logger; - -import javax.enterprise.context.RequestScoped; -import javax.inject.Inject; -import javax.inject.Named; -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.MultivaluedMap; -import javax.ws.rs.core.UriInfo; - -import de.intevation.lada.auth.Authentication; -import de.intevation.lada.auth.AuthenticationException; -import de.intevation.lada.data.QueryBuilder; -import de.intevation.lada.data.Repository; -import de.intevation.lada.model.LKommentarP; - -/** - * This class produces a RESTful service to read, write and update - * LKommentarP objects. - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -@Path("/kommentare") -@RequestScoped -public class LKommentarService -{ - /** - * The Repository. - */ - @Inject - @Named("lkommentarRepository") - private Repository repository; - - /** - * The authorization module. - */ - @Inject - @Named("ldapauth") - private Authentication authentication; - - /** - * The logger for this class - */ - @Inject - private Logger logger; - - /** - * Delete a LKommentarP object identified by 'probeId' and 'kId'. - * - * @param kId The object id. - * @param probeId The LProbe object id. - * @param headers The HTTP headers containing authorization information. - * @return Response object. - */ - @DELETE - @Path("/{kId}/{probeId}") - @Produces("text/json") - public Response delete( - @PathParam("kId") String kId, - @PathParam("probeId") String probeId, - @Context HttpHeaders headers - ) { - try { - if (!authentication.isAuthorizedUser(headers)) { - return new Response(false, 699, new ArrayList<LKommentarP>()); - } - if (authentication.hasAccess(headers, probeId)) { - QueryBuilder<LKommentarP> builder = - new QueryBuilder<LKommentarP>( - repository.getEntityManager(), LKommentarP.class); - builder.and("probeId", probeId).and("kId", kId); - Response response = repository.filter(builder.getQuery()); - List<LKommentarP> list = (List<LKommentarP>)response.getData(); - if (!list.isEmpty()) { - repository.delete(list.get(0)); - return new Response(true, 200, null); - } - return new Response(false, 600, null); - } - return new Response(false, 698, new ArrayList<LKommentarP>()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<LKommentarP>()); - } - } - - /** - * Request a list of LKommentarP objects filtered by LProbe id. - * - * @param info The URL parameters - * @param headers The HTTP header containing authorization information. - * @return Response object. - */ - @GET - @Produces("text/json") - public Response filter( - @Context UriInfo info, - @Context HttpHeaders headers - ) { - try { - if (!authentication.isAuthorizedUser(headers)) { - return new Response(false, 699, new ArrayList<LKommentarP>()); - } - MultivaluedMap<String, String> params = info.getQueryParameters(); - if (params.isEmpty() || !params.containsKey("probeId")) { - return new Response(false, 609, new ArrayList<LKommentarP>()); - } - String probeId = params.getFirst("probeId"); - QueryBuilder<LKommentarP> builder = - new QueryBuilder<LKommentarP>( - repository.getEntityManager(), LKommentarP.class); - builder.and("probeId", probeId); - return repository.filter(builder.getQuery()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<LKommentarP>()); - } - } - - /** - * Update a LKommentarP object. - * - * @param kommentar The LKommentarP object to update. - * @param headers The HTTP header containing authorization information. - * @return Response object. - */ - @PUT - @Path("/{kId}/{probeId}") - @Produces("text/json") - @Consumes("application/json") - public Response update( - LKommentarP kommentar, - @Context HttpHeaders headers - ) { - try { - String probeId = kommentar.getProbeId(); - if (authentication.hasAccess(headers, probeId)) { - return repository.update(kommentar); - } - return new Response(false, 698, new ArrayList<LKommentarP>()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<LKommentarP>()); - } - } - - /** - * Create a new LKommentarP object. - * - * @param kommentar The new LKommentarP object. - * @param headers The HTTP header containing authorization information. - * @return Response object. - */ - @POST - @Consumes("application/json") - @Produces("text/json") - public Response create( - LKommentarP kommentar, - @Context HttpHeaders headers - ) { - try { - String probeId = kommentar.getProbeId(); - if (authentication.hasAccess(headers, probeId)) { - return repository.create(kommentar); - } - return new Response(false, 698, new ArrayList<LKommentarP>()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<LKommentarP>()); - } - } -} \ No newline at end of file
--- a/src/main/java/de/intevation/lada/rest/LMessungService.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,222 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.rest; - -import java.math.BigInteger; -import java.util.ArrayList; -import java.util.List; - -import javax.enterprise.context.RequestScoped; -import javax.inject.Inject; -import javax.inject.Named; -import javax.persistence.Query; -import javax.ws.rs.Consumes; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.DELETE; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.PathParam; -import javax.ws.rs.core.MultivaluedMap; -import javax.ws.rs.core.UriInfo; - -import de.intevation.lada.auth.Authentication; -import de.intevation.lada.auth.AuthenticationException; -import de.intevation.lada.data.QueryBuilder; -import de.intevation.lada.data.Repository; -import de.intevation.lada.model.LMessung; -import de.intevation.lada.model.LMessungId; - -/** -* This class produces a RESTful service to read, write and update -* LMessung objects. -* -* @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> -*/ -@Path("/messung") -@RequestScoped -public class LMessungService -{ - /** - * The Repository for LMessung. - */ - @Inject - @Named("lmessungrepository") - private Repository repository; - - /** - * The authorization module. - */ - @Inject - @Named("ldapauth") - private Authentication authentication; - - /** - * Request LMessung via a filter. - * - * Query parameters are used for the filter in form of key-value pairs. - * This filter can take the three parameters - * probe=$PROBEID (String) - * - * @param info The URL query parameters. - * @return JSON Object via Rest service. - */ - @GET - @Produces("text/json") - public Response filter( - @Context UriInfo info, - @Context HttpHeaders headers - ) { - try { - if (!authentication.isAuthorizedUser(headers)) { - return new Response(false, 699, new ArrayList<LMessung>()); - } - MultivaluedMap<String, String> params = info.getQueryParameters(); - if (params.isEmpty() || !(params.containsKey("probeId"))) { - return new Response(false, 609, new ArrayList<LMessung>()); - } - String probeId = params.getFirst("probeId"); - QueryBuilder<LMessung> builder = - new QueryBuilder<LMessung>( - repository.getEntityManager(), - LMessung.class); - builder.and("probeId", probeId); - return repository.filter(builder.getQuery()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<LMessung>()); - } - } - - /** - * Update a LMessung object. - * - * @param messung The LMessung object to update. - * @param headers The HTTP header containing authorization information. - * @return Response object. - */ - @PUT - @Path("/{messungId}/{probeId}") - @Produces("text/json") - @Consumes("application/json") - public Response update( - LMessung messung, - @Context HttpHeaders headers - ) { - try { - String probeId = messung.getProbeId(); - int messungsId = messung.getId().getMessungsId(); - if (authentication.hasAccess(headers, probeId) && - !isReadOnly(probeId, messungsId, messung)) { - return repository.update(messung); - } - return new Response(false, 698, new ArrayList<LMessung>()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<LMessung>()); - } - } - - /** - * Create a new LMessung object. - * - * @param messung The new LMessung object. - * @param headers The HTTP header containing authorization information. - * @return Response object. - */ - @POST - @Produces("text/json") - @Consumes("application/json") - public Response create( - LMessung messung, - @Context HttpHeaders headers - ) { - try { - String probeId = messung.getProbeId(); - if (authentication.hasAccess(headers, probeId)) { - Query q = repository.getEntityManager().createNativeQuery( - "select nextval('messung_id_seq')"); - BigInteger seqId = (BigInteger)q.getSingleResult(); - LMessungId id = new LMessungId(); - id.setProbeId(probeId); - id.setMessungsId(seqId.intValue()); - messung.setId(id); - return repository.create(messung); - } - return new Response(false, 698, new ArrayList<LMessung>()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<LMessung>()); - } - } - - private boolean isReadOnly(String probeId, Integer messungsId, LMessung messung) { - QueryBuilder<LMessung> builder = - new QueryBuilder<LMessung>( - repository.getEntityManager(), - LMessung.class); - builder.and("probeId", probeId) - .and("messungsId", String.valueOf(messungsId)); - Response response = repository.filter(builder.getQuery()); - List<LMessung> messungen = (List<LMessung>) response.getData(); - if (messungen.isEmpty()) { - return true; - } - if (messungen.size() > 1) { - return true; - } - - if (messungen.get(0).isFertig() && !messung.isFertig()) { - return false; - } - return messungen.get(0).isFertig(); - } - - /** - * Delete a LMessung object identified by 'probeId' and 'messungsId'. - * - * @param messungsId The object id. - * @param probeId The LProbe object id. - * @param headers The HTTP headers containing authorization information. - * @return Response object. - */ - @DELETE - @Path("/{messungsId}/{probeId}") - @Produces("text/json") - public Response delete( - @PathParam("messungsId") String messungsId, - @PathParam("probeId") String probeId, - @Context HttpHeaders headers - ) { - try { - if (!authentication.isAuthorizedUser(headers)) { - return new Response(false, 699, new ArrayList<LMessung>()); - } - if (authentication.hasAccess(headers, probeId)) { - QueryBuilder<LMessung> builder = - new QueryBuilder<LMessung>( - repository.getEntityManager(), LMessung.class); - builder.and("probeId", probeId).and("messungsId", messungsId); - Response response = repository.filter(builder.getQuery()); - List<LMessung> list = (List<LMessung>)response.getData(); - if (!list.isEmpty()) { - repository.delete(list.get(0)); - return new Response(true, 200, null); - } - return new Response(false, 600, null); - } - return new Response(false, 698, new ArrayList<LMessung>()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<LMessung>()); - } - } -}
--- a/src/main/java/de/intevation/lada/rest/LMesswertService.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,225 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.rest; - -import java.util.ArrayList; -import java.util.List; - -import javax.enterprise.context.RequestScoped; -import javax.inject.Inject; -import javax.inject.Named; -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.MultivaluedMap; -import javax.ws.rs.core.UriInfo; - -import de.intevation.lada.auth.Authentication; -import de.intevation.lada.auth.AuthenticationException; -import de.intevation.lada.data.QueryBuilder; -import de.intevation.lada.data.Repository; -import de.intevation.lada.model.LMessung; -import de.intevation.lada.model.LMesswert; -import de.intevation.lada.model.LMesswertId; -import de.intevation.lada.model.LProbe; - -/** - * This class produces a RESTful service to read, write and update - * the contents of LMesswert objects. - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -@Path("/messwert") -@RequestScoped -public class LMesswertService -{ - /** - * The Repository for LMesswert. - */ - @Inject - @Named("lmesswertrepository") - private Repository repository; - - @Inject - @Named("lmessungrepository") - private Repository messungRepository; - - /** - * The authorization module. - */ - @Inject - @Named("ldapauth") - private Authentication authentication; - - /** - * Request LMessert via a filter. - * - * Query parameters are used for the filter in form of key-value pairs. - * - * @param info The URL query parameters. - * @param headers The HTTP header containing authorization information. - * @return JSON Object via Rest service. - */ - @GET - @Produces("text/json") - public Response filter( - @Context UriInfo info, - @Context HttpHeaders headers - ) { - try { - if (!authentication.isAuthorizedUser(headers)) { - return new Response(false, 699, new ArrayList<LMesswert>()); - } - MultivaluedMap<String, String> params = info.getQueryParameters(); - if (params.isEmpty() || - !params.containsKey("probeId") || - !params.containsKey("messungsId")) { - return new Response(false, 609, new ArrayList<LMesswert>()); - } - String probeId = params.getFirst("probeId"); - QueryBuilder<LMesswert> builder = - new QueryBuilder<LMesswert>( - repository.getEntityManager(), LMesswert.class); - builder.and("probeId", probeId) - .and("messungsId", params.getFirst("messungsId")); - return repository.filter(builder.getQuery()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<LMesswert>()); - } - } - - /** - * Update a LMesswert object. - * - * @param messwert The LMesswert object to update. - * @param headers The HTTP header containing authorization information. - * @return Response object. - */ - @PUT - @Path("/{messgroesseId}/{messungsId}/{probeId}") - @Produces("text/json") - @Consumes("application/json") - public Response update( - LMesswert messwert, - @Context HttpHeaders headers - ) { - try { - String probeId = messwert.getProbeId(); - Integer messungsId = messwert.getMessungsId(); - if (authentication.hasAccess(headers, probeId) && - !isReadOnly(probeId, messungsId)) { - return repository.update(messwert); - } - return new Response(false, 698, new ArrayList<LMesswert>()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<LMesswert>()); - } - } - - /** - * Create a new LMesswert object. - * - * @param messwert The new LMesswert object. - * @param headers The HTTP header containing authorization information. - * @return Response object. - */ - @POST - @Produces("text/json") - @Consumes("application/json") - public Response create( - LMesswert messwert, - @Context HttpHeaders headers - ) { - try { - String probeId = messwert.getProbeId(); - Integer messungsId = messwert.getMessungsId(); - if (authentication.hasAccess(headers, probeId) && - !isReadOnly(probeId, messungsId)) { - LMesswertId id = new LMesswertId(); - id.setMessgroesseId(messwert.getMessgroesseId()); - id.setMessungsId(messungsId); - id.setProbeId(probeId); - messwert.setId(id); - return repository.create(messwert); - } - return new Response(false, 698, new ArrayList<LMesswert>()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<LMesswert>()); - } - } - - /** - * Delete a LMesswert object. - * - * @param messgroesseId The messgroesse id. - * @param messungsId The {@link LMessung} id. - * @param probeId The {@link LProbe} id - * @param headers The HTTP header containing authorization information. - * @return Response object. - */ - @DELETE - @Produces("text/json") - @Path("/{messgroesseId}/{messungsId}/{probeId}") - public Response delete( - @PathParam("messgroesseId") String messgroesseId, - @PathParam("messungsId") String messungsId, - @PathParam("probeId") String probeId, - @Context HttpHeaders headers - ) { - try { - if (authentication.hasAccess(headers, probeId)) { - QueryBuilder<LMesswert> builder = - new QueryBuilder<LMesswert>( - repository.getEntityManager(), - LMesswert.class); - builder.and("messgroesseId", messgroesseId) - .and("messungsId", messungsId) - .and("probeId", probeId); - Response response = repository.filter(builder.getQuery()); - List<LMesswert> list = (List<LMesswert>)response.getData(); - if (!list.isEmpty()) { - repository.delete(list.get(0)); - return new Response(true, 200, null); - } - return new Response(false, 600, null); - } - return new Response(false, 698, new ArrayList<LMesswert>()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<LMesswert>()); - } - } - - private boolean isReadOnly(String probeId, Integer messungsId) { - QueryBuilder<LMessung> builder = - new QueryBuilder<LMessung>( - messungRepository.getEntityManager(), - LMessung.class); - builder.and("probeId", probeId) - .and("messungsId", String.valueOf(messungsId)); - Response response = messungRepository.filter(builder.getQuery()); - List<LMessung> messungen = (List<LMessung>) response.getData(); - if (messungen.isEmpty()) { - return true; - } - if (messungen.size() > 1) { - return true; - } - return messungen.get(0).isFertig(); - } -}
--- a/src/main/java/de/intevation/lada/rest/LOrtService.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,202 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.rest; - -import java.util.ArrayList; -import java.util.List; - -import javax.enterprise.context.RequestScoped; -import javax.inject.Inject; -import javax.inject.Named; -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.MultivaluedMap; -import javax.ws.rs.core.UriInfo; - -import de.intevation.lada.auth.Authentication; -import de.intevation.lada.auth.AuthenticationException; -import de.intevation.lada.auth.Authorization; -import de.intevation.lada.data.QueryBuilder; -import de.intevation.lada.data.Repository; -import de.intevation.lada.model.LOrt; -import de.intevation.lada.model.LProbe; - -/** - * This class produces a RESTful service to read, write and update - * LOrt objects. - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -@Path("/ort") -@RequestScoped -public class LOrtService -{ - - /** - * The repository for LOrt. - */ - @Inject - @Named("lortrepository") - private Repository repository; - - /** - * The authorization module. - */ - @Inject - @Named("ldapauth") - private Authentication authentication; - - @Inject - @Named("dataauthorization") - private Authorization authorization; - - /** - * Request LOrt via a filter. - * - * Query parameters are used for the filter in form of key-value pairs. - * - * @param info The URL query parameters. - * @param headers The HTTP header containing authorization information. - * @return Response object. - */ - @GET - @Produces("text/json") - public Response filter( - @Context UriInfo info, - @Context HttpHeaders headers - ) { - try { - if (!authentication.isAuthorizedUser(headers)) { - return new Response(false, 699, new ArrayList<LOrt>()); - } - MultivaluedMap<String, String> params = info.getQueryParameters(); - if (params.isEmpty() || - !params.containsKey("probeId")) { - return new Response(false, 609, new ArrayList<LOrt>()); - } - String probeId = params.getFirst("probeId"); - QueryBuilder<LOrt> builder = - new QueryBuilder<LOrt>( - repository.getEntityManager(), LOrt.class); - builder.and("probeId", probeId); - Response response = repository.filter(builder.getQuery()); - List<LOrt> list = (List<LOrt>) response.getData(); - boolean readonly = authorization.isReadOnly(probeId); - for (LOrt ort: list) { - ort.setReadonly(readonly); - } - response.setData(list); - return response; - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<LOrt>()); - } - } - - /** - * Update LOrt objects. - * - * @param ort The LOrt object to update. - * @param headers The HTTP header containing authorization information. - * @return Response object. - */ - @PUT - @Path("/{portId}/{probeId}") - @Produces("text/json") - @Consumes("application/json") - public Response update( - LOrt ort, - @Context HttpHeaders headers - ) { - try { - String probeId = ort.getProbeId(); - if (authentication.hasAccess(headers, probeId) && - !authorization.isReadOnly(probeId)) { - return repository.update(ort); - } - return new Response(false, 698, new ArrayList<LOrt>()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<LOrt>()); - } - } - - /** - * Create a new LOrt object. - * - * @param ort The new LOrt object. - * @param headers The HTTP header containing authorization information. - * @return Response object. - */ - @POST - @Produces("text/json") - @Consumes("application/json") - public Response create( - LOrt ort, - @Context HttpHeaders headers - ) { - try { - String probeId = ort.getProbeId(); - if (authentication.hasAccess(headers, probeId) && - !authorization.isReadOnly(probeId)) { - return repository.create(ort); - } - return new Response(false, 698, new ArrayList<LOrt>()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<LOrt>()); - } - } - - /** - * Delete a LOrt object. - * - * @param ortId The {@link LOrt} id. - * @param probeId The {@link LProbe} id. - * @param headers The HTTP header containing authorization information. - * @return Response object. - */ - @DELETE - @Produces("text/json") - @Path("/{ortId}/{probeId}") - public Response delete( - @PathParam("ortId") String ortId, - @PathParam("probeId") String probeId, - @Context HttpHeaders headers - ) { - try { - QueryBuilder<LOrt> builder = - new QueryBuilder<LOrt>( - repository.getEntityManager(), - LOrt.class); - builder.and("POrtId", ortId).and("probeId", probeId); - Response response = repository.filter(builder.getQuery()); - List<LOrt> list = (List<LOrt>)response.getData(); - if (!list.isEmpty()) { - LOrt ort = list.get(0); - if (authentication.hasAccess(headers, ort.getProbeId())) { - repository.delete(list.get(0)); - return new Response(true, 200, null); - } - return new Response(false, 698, null); - } - return new Response(false, 600, null); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<LOrt>()); - } - } -}
--- a/src/main/java/de/intevation/lada/rest/LProbeService.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,274 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.rest; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.logging.Logger; - -import javax.enterprise.context.RequestScoped; -import javax.inject.Inject; -import javax.inject.Named; -import javax.ws.rs.Consumes; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.MultivaluedMap; -import javax.ws.rs.core.UriInfo; - -import org.json.JSONArray; -import org.json.JSONException; -import org.json.JSONObject; - -import de.intevation.lada.auth.Authentication; -import de.intevation.lada.auth.AuthenticationException; -import de.intevation.lada.auth.AuthenticationResponse; -import de.intevation.lada.auth.Authorization; -import de.intevation.lada.data.LProbeRepository; -import de.intevation.lada.data.QueryBuilder; -import de.intevation.lada.data.Repository; -import de.intevation.lada.model.LProbe; -import de.intevation.lada.model.LProbeInfo; -import de.intevation.lada.utils.QueryTools; -import de.intevation.lada.validation.ValidationException; -import de.intevation.lada.validation.Validator; - -/** -* This class produces a RESTful service to read, write and update -* LProbe objects. -* -* @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> -*/ -@Path("/proben") -@RequestScoped -public class LProbeService { - - /** - * The Repository for LProbe. - */ - @Inject - @Named("lproberepository") - private Repository repository; - - @Inject - @Named("lmessungrepository") - private Repository messungRepository; - - /** - * The authorization module. - */ - @Inject - @Named("ldapauth") - private Authentication authentication; - - @Inject - @Named("dataauthorization") - private Authorization authorization; - - @Inject - @Named("lprobevalidator") - private Validator validator; - - /** - * The logger for this class. - */ - @Inject - private Logger log; - - /** - * Request a LProbe via its id. - * - * @param id The LProbe id - * @param header THe HTTP header containing authorization information. - * @return Response object. - */ - @GET - @Path("/{id}") - @Produces("text/json") - public Response findById( - @PathParam("id") String id, - @Context HttpHeaders header - ) { - try { - AuthenticationResponse auth = - authentication.authorizedGroups(header); - Response response = - repository.findById(LProbeInfo.class, id); - @SuppressWarnings("unchecked") - List<LProbeInfo> probe = (List<LProbeInfo>)response.getData(); - if (probe.isEmpty()) { - return new Response(false, 601, new ArrayList<LProbeInfo>()); - } - LProbeInfo p = probe.get(0); - try { - Map<String, Integer> warn = - validator.validate(p.toLProbe(), false); - response.setWarnings(warn); - } - catch (ValidationException e) { - response.setErrors(e.getErrors()); - response.setWarnings(e.getWarnings()); - } - - String nbId = probe.get(0).getNetzbetreiberId(); - String mstId = probe.get(0).getMstId(); - if (auth.getNetzbetreiber().contains(nbId) || - probe.get(0).getReadonly()) { - if (auth.getMst().contains(mstId)) { - return response; - } - p.setReadonly(true); - return response; - } - return new Response(false, 698, new ArrayList<LProbe>()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<LProbe>()); - } - } - - /** - * Request LProbe via a filter. - * - * Query parameters are used for the filter in form of key-value pairs. - * This filter can take the three parameters - * mstId=$MSTID (String) - * umwId=$UWBID (String) - * begin=$PROBEENTNAHMEBEGIN (Timestamp) - * - * @param info The URL query parameters. - * @param header The HTTP header containing authorization information. - * @return Response object. - */ - @GET - @Produces("text/json") - public Response filter( - @Context UriInfo info, - @Context HttpHeaders header - ) { - try { - AuthenticationResponse auth = - authentication.authorizedGroups(header); - MultivaluedMap<String, String> params = info.getQueryParameters(); - if (params.isEmpty() || !params.containsKey("qid")) { - QueryBuilder<LProbeInfo> builder = - new QueryBuilder<LProbeInfo>( - repository.getEntityManager(), - LProbeInfo.class); - builder.or("readonly", true); - List<String> netzbetreiberIds = auth.getNetzbetreiber(); - for (String netzbetreiberId: netzbetreiberIds) { - builder.or("netzbetreiberId", netzbetreiberId); - } - return repository.filter(builder.getQuery()); - } - String qid = params.getFirst("qid"); - JSONObject query = QueryTools.getQueryById(qid); - List<String> filters = new ArrayList<String>(); - List<String> results = new ArrayList<String>(); - String sql = ""; - try { - sql = query.getString("sql"); - JSONArray jFilters = query.getJSONArray("filters"); - for (int i = 0; i < jFilters.length(); i++) { - JSONObject jFilter = jFilters.getJSONObject(i); - filters.add(jFilter.getString("dataIndex")); - } - JSONArray jResults = query.getJSONArray("result"); - for (int i = 0; i < jResults.length(); i++) { - JSONObject jResult = jResults.getJSONObject(i); - results.add(jResult.getString("dataIndex")); - } - } - catch (JSONException e) { - return new Response(false, 603, new ArrayList<LProbeInfo>()); - } - - if (sql == null || sql.length() == 0) { - return new Response(false, 603, new ArrayList<LProbeInfo>()); - } - LProbeRepository lpr = (LProbeRepository)repository; - String subselect = "(select * from l_probe_info where "; - List<String> netzbetreiberIds = auth.getNetzbetreiber(); - boolean first = true; - for (String netzbetreiberId: netzbetreiberIds) { - if (first) { - subselect += "netzbetreiber_id = '" + netzbetreiberId + "' "; - first = false; - } - else { - subselect += "or netzbetreiber_id = '" + netzbetreiberId + "' "; - } - } - subselect += "or readonly = true) as lp"; - sql = sql.replace("l_probe", subselect); - List<String> msts = auth.getMst(); - return lpr.filterFree(sql, filters, results, params, msts); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<LProbe>()); - } - } - - /** - * Update a LProbe object. - * - * @param probe A LProbeInfo object wrapping the LProbe object. - * @param header The HTTP header containing authorization information. - * @return Response object. - */ - @PUT - @Path("/{id}") - @Produces("text/json") - @Consumes("application/json") - public Response update(LProbeInfo probe, @Context HttpHeaders header) { - try { - if(authentication.hasAccess(header, probe.getProbeId())) { - LProbe p = probe.toLProbe(); - p.setProbeId(probe.getProbeId()); - return repository.update(p); - } - return new Response(false, 698, new ArrayList<LProbeInfo>()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<LProbeInfo>()); - } - } - - /** - * Create a new LProbe object. - * - * @param probe A LProbeInfo object wrapping the LProbe object. - * @param header The HTTP header containing authorization information. - * @return Response object. - */ - @POST - @Produces("text/json") - @Consumes("application/json") - public Response create(LProbeInfo probe, @Context HttpHeaders header) { - try { - AuthenticationResponse auth = - authentication.authorizedGroups(header); - if (auth.getNetzbetreiber().contains(probe.getNetzbetreiberId()) && - auth.getMst().contains(probe.getMstId())) { - LProbe p = probe.toLProbe(); - return repository.create(p); - } - return new Response(false, 698, new ArrayList<LProbeInfo>()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<LProbeInfo>()); - } - } -}
--- a/src/main/java/de/intevation/lada/rest/LStatusService.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,197 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.rest; - -import java.util.ArrayList; -import java.util.List; - -import javax.enterprise.context.RequestScoped; -import javax.inject.Inject; -import javax.inject.Named; -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.MultivaluedMap; -import javax.ws.rs.core.UriInfo; - -import de.intevation.lada.auth.Authentication; -import de.intevation.lada.auth.AuthenticationException; -import de.intevation.lada.data.QueryBuilder; -import de.intevation.lada.data.Repository; -import de.intevation.lada.model.LMessung; -import de.intevation.lada.model.LProbe; -import de.intevation.lada.model.LStatus; -import de.intevation.lada.model.LStatusId; - -/** - * This class produces a RESTful service to read, write and update - * LStatus objects. - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -@Path("/status") -@RequestScoped -public class LStatusService -{ - /** - * The Repository for LStatus. - */ - @Inject - @Named("lstatusrepository") - private Repository repository; - - /** - * The authorization module. - */ - @Inject - @Named("ldapauth") - private Authentication authentication; - - /** - * Request LStatus via a filter. - * - * Query parameters are used for the filter in form of key-value pairs. - * - * @param info The URL query parameters. - * @param headers The HTTP header containing authorization information. - * @return Response object. - */ - @GET - @Produces("text/json") - public Response filter( - @Context UriInfo info, - @Context HttpHeaders headers - ) { - try { - if (!authentication.isAuthorizedUser(headers)) { - return new Response(false, 699, new ArrayList<LStatus>()); - } - MultivaluedMap<String, String> params = info.getQueryParameters(); - if (params.isEmpty() || - !params.containsKey("probeId") || - !params.containsKey("messungsId")) { - return new Response(false, 609, new ArrayList<LStatus>()); - } - String probeId = params.getFirst("probeId"); - QueryBuilder<LStatus> builder = - new QueryBuilder<LStatus>( - repository.getEntityManager(), LStatus.class); - builder.and("probeId", probeId) - .and("messungsId", params.getFirst("messungsId")); - return repository.filter(builder.getQuery()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<LStatus>()); - } - } - - /** - * Update a LStatus object. - * - * @param status The LStatus object to update. - * @param headers The HTTP header containing authorization information. - * @return Response object. - */ - @PUT - @Produces("text/json") - @Consumes("application/json") - public Response update( - LStatus status, - @Context HttpHeaders headers - ) { - try { - String probeId = status.getProbeId(); - if (authentication.hasAccess(headers, probeId)) { - return repository.update(status); - } - return new Response(false, 698, new ArrayList<LStatus>()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<LStatus>()); - } - } - - /** - * Create a new LStatus object. - * - * @param status The new LStatus object. - * @param headers The HTTP header containing authorization information. - * @return Response object. - */ - @POST - @Produces("text/json") - @Consumes("application/json") - public Response create( - LStatus status, - @Context HttpHeaders headers - ) { - try { - String probeId = status.getProbeId(); - if (authentication.hasAccess(headers, probeId)) { - LStatusId id = new LStatusId(); - id.setMessungsId(status.getMessungsId()); - id.setProbeId(probeId); - status.setId(id); - return repository.create(status); - } - return new Response(false, 698, new ArrayList<LStatus>()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<LStatus>()); - } - } - - /** - * Delete a LStatus object. - * - * @param statusId The object id. - * @param messungsId The {@link LMessung} id. - * @param probeId The {@link LProbe} id - * @param headers The HTTP header containing authorization information. - * @return Response object. - */ - @DELETE - @Produces("text/json") - @Path("/{statusId}/{messungsId}/{probeId}") - public Response delete( - @PathParam("statusId") String statusId, - @PathParam("messungsId") String messungsId, - @PathParam("probeId") String probeId, - @Context HttpHeaders headers - ) { - try { - if (authentication.hasAccess(headers, probeId)) { - QueryBuilder<LStatus> builder = - new QueryBuilder<LStatus>( - repository.getEntityManager(), - LStatus.class); - builder.and("SId", statusId) - .and("messungsId", messungsId) - .and("probeId", probeId); - Response response = repository.filter(builder.getQuery()); - List<LStatus> list = (List<LStatus>)response.getData(); - if (!list.isEmpty()) { - repository.delete(list.get(0)); - return new Response(true, 200, null); - } - return new Response(false, 600, null); - } - return new Response(false, 698, new ArrayList<LStatus>()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<LStatus>()); - } - } -}
--- a/src/main/java/de/intevation/lada/rest/LZusatzwertService.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,183 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.rest; - -import java.util.ArrayList; -import java.util.List; - -import javax.enterprise.context.RequestScoped; -import javax.inject.Inject; -import javax.inject.Named; -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.MultivaluedMap; -import javax.ws.rs.core.UriInfo; - -import de.intevation.lada.auth.Authentication; -import de.intevation.lada.auth.AuthenticationException; -import de.intevation.lada.data.QueryBuilder; -import de.intevation.lada.data.Repository; -import de.intevation.lada.model.LZusatzWert; - -/** - * This class produces a RESTful service to read, write and update - * LZusatzwert objects. - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -@Path("/zusatzwert") -@RequestScoped -public class LZusatzwertService -{ - /** - * The Repository for LZusatzwert. - */ - @Inject - @Named("lzusatzwertrepository") - private Repository repository; - - /** - * The authorization module. - */ - @Inject - @Named("ldapauth") - private Authentication authentication; - - /** - * Request LZusatzwert via a filter. - * - * Query parameters are used for the filter in form of key-value pairs. - * - * @param info The URL query parameters. - * @param headers The HTTP header containing authorization information. - * @return Response object. - */ - @GET - @Produces("text/json") - public Response filter( - @Context UriInfo info, - @Context HttpHeaders headers - ) { - try { - if (!authentication.isAuthorizedUser(headers)) { - return new Response(false, 699, new ArrayList<LZusatzWert>()); - } - MultivaluedMap<String, String> params = info.getQueryParameters(); - if (params.isEmpty() || !params.containsKey("probeId")) { - return new Response(false, 609, new ArrayList<LZusatzWert>()); - } - String probeId = params.getFirst("probeId"); - QueryBuilder<LZusatzWert> builder = - new QueryBuilder<LZusatzWert>( - repository.getEntityManager(), LZusatzWert.class); - builder.and("probeId", probeId); - return repository.filter(builder.getQuery()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<LZusatzWert>()); - } - } - - /** - * Update a LZusatzwert object. - * - * @param zusatzwert The LZusatzwert object to update. - * @param headers The HTTP header containing authorization information. - * @return Response object. - */ - @PUT - @Produces("text/json") - @Path("/{pzsId}/{probeId}") - @Consumes("application/json") - public Response update( - LZusatzWert zusatzwert, - @Context HttpHeaders headers - ) { - try { - String probeId = zusatzwert.getProbeId(); - if (authentication.hasAccess(headers, probeId)) { - return repository.update(zusatzwert); - } - return new Response(false, 698, new ArrayList<LZusatzWert>()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<LZusatzWert>()); - } - } - - /** - * Create a new LZusatzwert object. - * - * @param zusatzwert The new LZusatzwert object. - * @param headers THe HTTP header containing authorization information. - * @return Response object. - */ - @POST - @Produces("text/json") - @Consumes("application/json") - public Response create( - LZusatzWert zusatzwert, - @Context HttpHeaders headers - ) { - try { - String probeId = zusatzwert.getProbeId(); - if (authentication.hasAccess(headers, probeId)) { - return repository.create(zusatzwert); - } - return new Response(false, 698, new ArrayList<LZusatzWert>()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<LZusatzWert>()); - } - } - - /** - * Delete a LZusatzwert object. - * - * @param pzsId The object id. - * @param probeId The LProbe id. - * @param headers The HTTP header containing authorization information. - * @return Response object. - */ - @DELETE - @Path("/{pzsId}/{probeId}") - public Response delete( - @PathParam("pzsId") String pzsId, - @PathParam("probeId") String probeId, - @Context HttpHeaders headers - ) { - try { - if (authentication.hasAccess(headers, probeId)) { - QueryBuilder<LZusatzWert> builder = - new QueryBuilder<LZusatzWert>( - repository.getEntityManager(), - LZusatzWert.class); - builder.and("pzsId", pzsId).and("probeId", probeId); - Response response = repository.filter(builder.getQuery()); - List<LZusatzWert> list = (List<LZusatzWert>)response.getData(); - if (!list.isEmpty()) { - repository.delete(list.get(0)); - return new Response(true, 200, null); - } - return new Response(false, 600, null); - } - return new Response(false, 698, new ArrayList<LZusatzWert>()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<LZusatzWert>()); - } - } -}
--- a/src/main/java/de/intevation/lada/rest/OrtService.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,175 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.rest; - -import java.util.ArrayList; - -import javax.enterprise.context.RequestScoped; -import javax.inject.Inject; -import javax.inject.Named; -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.HttpHeaders; - -import de.intevation.lada.auth.Authentication; -import de.intevation.lada.auth.AuthenticationException; -import de.intevation.lada.data.Repository; -import de.intevation.lada.model.Ort; - -/** -* This class produces a RESTful service to read, write and update -* Ort objects. -* -* @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> -*/ -@Path("/ortinfo") -@RequestScoped -public class OrtService -{ - /** - * The Repository for Ort. - */ - @Inject - @Named("ortrepository") - private Repository repository; - - /** - * The authorization module. - */ - @Inject - @Named("ldapauth") - private Authentication authentication; - - /** - * Request a Ort object via its id. - * - * @param id The Ort id - * @param headers The HTTP header containing authorization information. - * @return Response object. - */ - @GET - @Path("/{id}") - @Produces("text/json") - public Response findById( - @PathParam("id") String id, - @Context HttpHeaders headers - ) { - try { - if (authentication.isAuthorizedUser(headers)) { - return repository.findById(Ort.class, id); - } - return new Response(false, 699, new ArrayList<Ort>()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<Ort>()); - } - } - - /** - * Request all Ort objects - * - * @param headers The HTTP header containing authorization information. - * @return JSON Object via Rest service. - */ - @GET - @Produces("text/json") - public Response filter(@Context HttpHeaders headers) { - try { - if (authentication.isAuthorizedUser(headers)) { - return repository.findAll(Ort.class); - } - return new Response(false, 699, new ArrayList<Ort>()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<Ort>()); - } - } - - /** - * Update a Ort object. - * - * @param ort The Ort object to update. - * @param headers The HTTP header containing authorization information. - * @return Response object. - */ - @PUT - @Produces("text/json") - @Path("/{ortId}") - @Consumes("application/json") - public Response update(Ort ort, @Context HttpHeaders headers) { - try { - if (authentication.isAuthorizedUser(headers)) { - return repository.update(ort); - } - return new Response(false, 699, new ArrayList<Ort>()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<Ort>()); - } - } - - /** - * Create a new Ort object. - * - * @param ort The new Ort object. - * @param headers The HTTP header containing authorization information. - * @return Response object. - */ - @POST - @Produces("text/json") - @Consumes("application/json") - public Response create(Ort ort, @Context HttpHeaders headers) { - try { - if (authentication.isAuthorizedUser(headers)) { - return repository.create(ort); - } - return new Response(false, 699, new ArrayList<Ort>()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<Ort>()); - } - } - - /** - * Delete a Ort object. - * - * @param ortId The object od. - * @param headers The HTTP header containing authorization information. - * @return Response object. - */ - @DELETE - @Produces("text/json") - @Path("/{ortId}/{probeId}") - public Response delete( - @PathParam("ortId") String ortId, - @Context HttpHeaders headers - ) { - try { - if (authentication.isAuthorizedUser(headers)) { - Response response = repository.findById(Ort.class, ortId); - Ort ort = (Ort)response.getData(); - if (ort != null) { - repository.delete(ort); - return new Response(true, 200, null); - } - return new Response(false, 600, null); - } - return new Response(false, 699, new ArrayList<Ort>()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<Ort>()); - } - } -}
--- a/src/main/java/de/intevation/lada/rest/QueryService.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,88 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.rest; - -import java.util.ArrayList; -import java.util.List; - -import javax.enterprise.context.RequestScoped; -import javax.inject.Inject; -import javax.inject.Named; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.UriInfo; - -import de.intevation.lada.auth.Authentication; -import de.intevation.lada.auth.AuthenticationException; -import de.intevation.lada.model.LOrt; -import de.intevation.lada.model.query.QueryConfig; -import de.intevation.lada.utils.QueryTools; - -/** - * This class produces a RESTful service to read, write and update - * LOrt objects. - * - * @author <a href="mailto:torsten.irlaender@intevation.de">Torsten Irländer</a> - */ -@Path("/query") -@RequestScoped -public class QueryService -{ - /** - * The authorization module. - */ - @Inject - @Named("ldapauth") - private Authentication authentication; - - /** - * Request SQL-Queries - * - * Query parameters are used for the filter in form of key-value pairs. - * - * @param info The URL query parameters. - * @param headers The HTTP header containing authorization information. - * @return Response object. - */ - @GET - @Produces("text/json") - public Response get( - @Context UriInfo info, - @Context HttpHeaders headers - ) { - try { - if (!authentication.isAuthorizedUser(headers)) { - return new Response(false, 699, new ArrayList<LOrt>()); - } - Response response = new Response(true, 200, this.loadQueryConfig()); - return response; - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<LOrt>()); - } - } - - private List<QueryConfig> loadQueryConfig() { - /* Typicall available fields - {header: 'Datenbasis', dataIndex: 'datenbasisId', width: 70}, - {header: 'MPL', dataIndex: 'mplId', width: 50}, - {header: 'UWB', dataIndex: 'umwId', width: 50}, - {header: 'MMT', dataIndex: 'messmethode'}, - {header: 'HPNR', dataIndex: 'hauptprobenNr'}, - {header: 'NPNR', dataIndex: 'nebenprobenNr'}, - {header: 'E.Gemeinde', dataIndex: 'bezeichnung', flex: 1}, - {header: 'Ursprungsgemeinde', dataIndex: 'kreis', flex: 1}, - {header: 'ProbeID', dataIndex: 'probeId'}, - {header: 'MST', dataIndex: 'mstId', width: 50} - */ - return QueryTools.getConfig(); - } -}
--- a/src/main/java/de/intevation/lada/rest/Response.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,165 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.rest; - -import java.util.HashMap; -import java.util.Map; -import java.util.logging.Logger; - -import javax.inject.Inject; - -/** -* Response object storing information about success, warnings, errors and -* the data object. This class is used as return value in REST services. -* -* @author <a href="mailto:torsten@intevation.de">Torsten Irländer</a> -*/ -@SuppressWarnings("serial") -public class Response implements java.io.Serializable { - - - /** - * The logger for this class. - */ - @Inject - private Logger log; - - private Boolean success; - private String message; - private Object data; - private Map<String, String> errors; - private Map<String, String> warnings; - private Boolean readonly; - private int totalCount; - - /** - * Constructor to create a basic Response object. - * - * @param success Information if the operation was successful. - * @param code The return code. - * @param data The data object wrapped by the response. - */ - public Response(boolean success, int code, Object data) { - this.success = success; - this.message = Integer.toString(code); - this.data = data; - this.errors = new HashMap<String, String>(); - this.warnings = new HashMap<String, String>(); - this.readonly = Boolean.FALSE; - this.totalCount = 0; - } - - /** - * Constructor to create a basic Response object. - * - * @param success Information if the operation was successful. - * @param code The return code. - * @param data The data object wrapped by the response. - */ - public Response(boolean success, int code, Object data, int totalCount) { - this.success = success; - this.message = Integer.toString(code); - this.data = data; - this.errors = new HashMap<String, String>(); - this.warnings = new HashMap<String, String>(); - this.readonly = Boolean.FALSE; - this.totalCount = totalCount; - } - - public Boolean getSuccess() { - return success; - } - - public void setSuccess(Boolean success) { - this.success = success; - } - - public String getMessage() { - return message; - } - - public void setMessage(int message) { - this.message = Integer.toString(message); - } - - public Object getData() { - return data; - } - - public void setData(Object data) { - this.data = data; - } - - public Map<String, String> getErrors() { - return errors; - } - - public void setErrors(Map<String, Integer> errors) { - this.errors = this.convertCodes(errors); - } - - public Map<String, String> getWarnings() { - return warnings; - } - - public void setWarnings(Map<String, Integer> warnings) { - this.warnings = this.convertCodes(warnings); - } - - public Boolean getReadonly() { - return readonly; - } - - public void setReadonly(Boolean readonly) { - this.readonly = readonly; - } - - /** - * @return the totalCount - */ - public int getTotalCount() { - return totalCount; - } - - /** - * @param totalCount the totalCount to set - */ - public void setTotalCount(int totalCount) { - this.totalCount = totalCount; - } - - private HashMap<String, String> convertCodes(Map<String, Integer> codes) { - HashMap<String, String> converted = new HashMap<String, String>(); - if (codes == null || codes.isEmpty()) { - return converted; - } - for (Map.Entry<String, Integer> entry: codes.entrySet()) { - converted.put(entry.getKey(), Integer.toString(entry.getValue())); - } - return converted; - } - - /* Currently unused but might be helpfull later */ - private String codes2string(Map<String, Integer> codes) { - String response = "{"; - if (codes == null || codes.isEmpty()) { - response += "}"; - return response; - } - boolean first = true; - for (Map.Entry<String, Integer> entry: codes.entrySet()) { - if (!first) { - response +=","; - } - response += entry.getKey() + ":" + "\"" + entry.getValue() + "\""; - first = false; - } - response += "}"; - return response; - } -}
--- a/src/main/java/de/intevation/lada/rest/SDatenbasisService.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,101 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.rest; - -import java.util.ArrayList; -import java.util.logging.Logger; - -import javax.faces.bean.RequestScoped; -import javax.inject.Inject; -import javax.inject.Named; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.HttpHeaders; - -import de.intevation.lada.auth.Authentication; -import de.intevation.lada.auth.AuthenticationException; -import de.intevation.lada.data.Repository; -import de.intevation.lada.model.SDatenbasis; - -/** - * This class produces a RESTful service to read SDatenbasis objects. - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -@Path("/datenbasis") -@RequestScoped -public class SDatenbasisService -{ - /** - * The Repository for SDatenbasis. - */ - @Inject - @Named("readonlyrepository") - private Repository repository; - - /** - * The authorization module. - */ - @Inject - @Named("ldapauth") - private Authentication authentication; - - /** - * The logger for this class - */ - @Inject - private Logger logger; - - /** - * Request all SDatenbasis objects. - * - * @param headers The HTTP header containing authorization information. - * @return Response object. - */ - @GET - @Produces("text/json") - public Response findAll(@Context HttpHeaders headers) { - try { - if (authentication.isAuthorizedUser(headers)) { - return repository.findAll(SDatenbasis.class); - } - return new Response(false, 699, new ArrayList<SDatenbasis>()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<SDatenbasis>()); - } - } - - /** - * Request a single SDatenbasis via its id. - * - * @param id The object id. - * @param headers The HTTP header containing authorization information. - * @return Response object. - */ - @GET - @Path("/{id}") - @Produces("text/json") - public Response findById( - @PathParam("id") String id, - @Context HttpHeaders headers - ) { - try { - if (authentication.isAuthorizedUser(headers)) { - return repository.findById(SDatenbasis.class, id); - } - return new Response(false, 699, new ArrayList<SDatenbasis>()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<SDatenbasis>()); - } - } -}
--- a/src/main/java/de/intevation/lada/rest/SMessMethodeService.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,93 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.rest; - -import java.util.ArrayList; - -import javax.enterprise.context.RequestScoped; -import javax.inject.Inject; -import javax.inject.Named; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.HttpHeaders; - -import de.intevation.lada.auth.Authentication; -import de.intevation.lada.auth.AuthenticationException; -import de.intevation.lada.data.Repository; -import de.intevation.lada.model.SMessMethode; - -/** - * This class produces a RESTful service to read SMessMethode objects. - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -@Path("/messmethode") -@RequestScoped -public class SMessMethodeService -{ - /** - * The Repository for SMessMethode. - */ - @Inject - @Named("readonlyrepository") - private Repository repository; - - /** - * The authorization module. - */ - @Inject - @Named("ldapauth") - private Authentication authentication; - - /** - * Request all SMessMethode objects. - * - * @param headers The HTTP header containing authorization information. - * @return Response object. - */ - @GET - @Produces("text/json") - public Response findAll(@Context HttpHeaders headers) { - try { - if (authentication.isAuthorizedUser(headers)) { - return repository.findAll(SMessMethode.class); - } - return new Response(false, 699, new ArrayList<SMessMethode>()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<SMessMethode>()); - } - } - - /** - * Request a SMessMethode object via its id. - * - * @param id The object id. - * @param headers The HTTP header containing authorization information. - * @return Response object. - */ - @GET - @Path("/{id:[0-9][0-9]*}") - @Produces("text/json") - public Response findById( - @PathParam("id") String id, - @Context HttpHeaders headers) { - try { - if (authentication.isAuthorizedUser(headers)) { - return repository.findById(SMessMethode.class, id); - } - return new Response(false, 699, new ArrayList<SMessMethode>()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<SMessMethode>()); - } - } -}
--- a/src/main/java/de/intevation/lada/rest/SMesseinheitService.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,75 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.rest; - -import java.util.ArrayList; -import java.util.logging.Logger; - -import javax.faces.bean.RequestScoped; -import javax.inject.Inject; -import javax.inject.Named; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.HttpHeaders; - -import de.intevation.lada.auth.Authentication; -import de.intevation.lada.auth.AuthenticationException; -import de.intevation.lada.data.Repository; -import de.intevation.lada.model.SMessEinheit; - -/** - * This class produces a RESTful service to read SMesseinheit objects. - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -@Path("/messeinheit") -@RequestScoped -public class SMesseinheitService -{ - /** - * The Repository for SDatenbasis. - */ - @Inject - @Named("readonlyrepository") - private Repository repository; - - /** - * The authorization module. - */ - @Inject - @Named("ldapauth") - private Authentication authentication; - - /** - * The logger for this class - */ - @Inject - private Logger logger; - - /** - * Request all SMesseinheit objects. - * - * @param headers The HTTP header containing authorization information. - * @return Response object. - */ - @GET - @Produces("text/json") - public Response findAll(@Context HttpHeaders headers) { - try { - if (authentication.isAuthorizedUser(headers)) { - return repository.findAll(SMessEinheit.class); - } - return new Response(false, 699, new ArrayList<SMessEinheit>()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<SMessEinheit>()); - } - } -}
--- a/src/main/java/de/intevation/lada/rest/SMessgroesseService.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,93 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.rest; - -import java.util.ArrayList; - -import javax.enterprise.context.RequestScoped; -import javax.inject.Inject; -import javax.inject.Named; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.HttpHeaders; - -import de.intevation.lada.auth.Authentication; -import de.intevation.lada.auth.AuthenticationException; -import de.intevation.lada.data.Repository; -import de.intevation.lada.model.SMessgroesse; - -/** - * This class produces a RESTful service to read SMessgroesse objects. - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -@Path("/messgroesse") -@RequestScoped -public class SMessgroesseService -{ - /** - * The Repository for SMessgroesse. - */ - @Inject - @Named("readonlyrepository") - private Repository repository; - - /** - * The authorization module. - */ - @Inject - @Named("ldapauth") - private Authentication authentication; - - /** - * Request all SMessgroesse objects. - * - * @param headers The HTTP header containing authorization information. - * @return Response object. - */ - @GET - @Produces("text/json") - public Response findAll(@Context HttpHeaders headers) { - try { - if (authentication.isAuthorizedUser(headers)) { - return repository.findAll(SMessgroesse.class); - } - return new Response(false, 699, new ArrayList<SMessgroesse>()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<SMessgroesse>()); - } - } - - /** - * Request a SMessgroesse object via its id. - * - * @param id The object id. - * @param headers The HTTP header containing authorization information. - * @return Response object. - */ - @GET - @Path("/{id:[0-9][0-9]*}") - @Produces("text/json") - public Response findById( - @PathParam("id") String id, - @Context HttpHeaders headers) { - try { - if (authentication.isAuthorizedUser(headers)) { - return repository.findById(SMessgroesse.class, id); - } - return new Response(false, 699, new ArrayList<SMessgroesse>()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<SMessgroesse>()); - } - } -}
--- a/src/main/java/de/intevation/lada/rest/SMessstelleService.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,107 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.rest; - -import java.util.ArrayList; -import java.util.logging.Logger; - -import javax.enterprise.context.RequestScoped; -import javax.inject.Inject; -import javax.inject.Named; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.HttpHeaders; - -import de.intevation.lada.auth.Authentication; -import de.intevation.lada.auth.AuthenticationException; -import de.intevation.lada.auth.AuthenticationResponse; -import de.intevation.lada.data.QueryBuilder; -import de.intevation.lada.data.Repository; -import de.intevation.lada.model.SMessStelle; - -/** - * This class produces a RESTful service to read SMessstelle objects - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -@Path("/mst") -@RequestScoped -public class SMessstelleService -{ - /** - * The Repository for SMessStelle. - */ - @Inject - @Named("readonlyrepository") - private Repository repository; - - /** - * The authorization module. - */ - @Inject - @Named("ldapauth") - private Authentication authentication; - - /** - * The logger for this class - */ - @Inject - private Logger logger; - - /** - * Request all SMessstelle objects. - * - * @param headers The HTTP header containing authorization information. - * @return Response object. - */ - @GET - @Produces("text/json") - public Response findAll(@Context HttpHeaders headers) { - try { - AuthenticationResponse auth = - authentication.authorizedGroups(headers); - QueryBuilder<SMessStelle> builder = - new QueryBuilder<SMessStelle>( - repository.getEntityManager(), SMessStelle.class); - builder.or("mstId", auth.getMst()); - return repository.filter(builder.getQuery()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<SMessStelle>()); - } - } - - /** - * Request a single SMessstelle via its id. - * - * @param id The object id. - * @param headers The HTTP header containing authorization information. - * @return Response object. - */ - @GET - @Path("/{id}") - @Produces("text/json") - public Response findById( - @PathParam("id") String id, - @Context HttpHeaders headers) { - try { - AuthenticationResponse auth = - authentication.authorizedGroups(headers); - if (auth.getMst().contains(id)) { - return repository.findById(SMessStelle.class, id); - } - return new Response(false, 698, new ArrayList<SMessStelle>()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<SMessStelle>()); - } - } -}
--- a/src/main/java/de/intevation/lada/rest/SNetzBetreiberService.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,107 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.rest; - -import java.util.ArrayList; -import java.util.logging.Logger; - -import javax.faces.bean.RequestScoped; -import javax.inject.Inject; -import javax.inject.Named; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.HttpHeaders; - -import de.intevation.lada.auth.Authentication; -import de.intevation.lada.auth.AuthenticationException; -import de.intevation.lada.auth.AuthenticationResponse; -import de.intevation.lada.data.QueryBuilder; -import de.intevation.lada.data.Repository; -import de.intevation.lada.model.SNetzBetreiber; - -/** - * This class produces a RESTful service to read SNetzbetreiber objects. - * - * @author <a href="mailto:torsten.irlaender@intevation.de">Torsten Irländer</a> - */ -@Path("/netzbetreiber") -@RequestScoped -public class SNetzBetreiberService -{ - /** - * The Repository for SNetzBetreiber. - */ - @Inject - @Named("readonlyrepository") - private Repository repository; - - /** - * The authorization module. - */ - @Inject - @Named("ldapauth") - private Authentication authentication; - - /** - * The logger for this class - */ - @Inject - private Logger logger; - - /** - * Request all SNetzBetreiber objects. - * - * @param headers The HTTP header containing authorization information. - * @return Response object. - */ - @GET - @Produces("text/json") - public Response findAll(@Context HttpHeaders headers) { - try { - AuthenticationResponse auth = - authentication.authorizedGroups(headers); - QueryBuilder<SNetzBetreiber> builder = - new QueryBuilder<SNetzBetreiber>( - repository.getEntityManager(), SNetzBetreiber.class); - builder.or("netzbetreiberId", auth.getNetzbetreiber()); - return repository.filter(builder.getQuery()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<SNetzBetreiber>()); - } - } - - /** - * Request a single SNetzBetreiber via its id. - * - * @param id The object id. - * @param headers The HTTP header containing authorization information. - * @return Response object. - */ - @GET - @Path("/{id}") - @Produces("text/json") - public Response findById( - @PathParam("id") String id, - @Context HttpHeaders headers) { - try { - AuthenticationResponse auth = - authentication.authorizedGroups(headers); - if (auth.getNetzbetreiber().contains(id)) { - return repository.findById(SNetzBetreiber.class, id); - } - return new Response(false, 698, new ArrayList<SNetzBetreiber>()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<SNetzBetreiber>()); - } - } -}
--- a/src/main/java/de/intevation/lada/rest/SProbenartService.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,100 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.rest; - -import java.util.ArrayList; -import java.util.logging.Logger; - -import javax.enterprise.context.RequestScoped; -import javax.inject.Inject; -import javax.inject.Named; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.HttpHeaders; - -import de.intevation.lada.auth.Authentication; -import de.intevation.lada.auth.AuthenticationException; -import de.intevation.lada.data.Repository; -import de.intevation.lada.model.SProbenart; - -/** - * This class produces a RESTful service to read SProbenart objects. - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -@Path("/probenart") -@RequestScoped -public class SProbenartService -{ - /** - * The Repository for SProbenart. - */ - @Inject - @Named("readonlyrepository") - private Repository repository; - - /** - * The authorization module. - */ - @Inject - @Named("ldapauth") - private Authentication authentication; - - /** - * The logger for this class - */ - @Inject - private Logger logger; - - /** - * Request all SProbenart objects. - * - * @return Response object. - */ - @GET - @Produces("text/json") - public Response findAll(@Context HttpHeaders headers) { - try { - if (authentication.isAuthorizedUser(headers)) { - return repository.findAll(SProbenart.class); - } - return new Response(false, 699, new ArrayList<SProbenart>()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<SProbenart>()); - } - } - - /** - * Request a single SProbenart via its id. - * - * @param id The object id. - * @param headers The HTTP header containing authorization information. - * @return Response object. - */ - @GET - @Path("/{id}") - @Produces("text/json") - public Response findById( - @PathParam("id") String id, - @Context HttpHeaders headers - ) { - try { - if (authentication.isAuthorizedUser(headers)) { - return repository.findById(SProbenart.class, id); - } - return new Response(false, 699, new ArrayList<SProbenart>()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<SProbenart>()); - } - } -}
--- a/src/main/java/de/intevation/lada/rest/SProbenzusatzService.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,75 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.rest; - -import java.util.ArrayList; -import java.util.logging.Logger; - -import javax.faces.bean.RequestScoped; -import javax.inject.Inject; -import javax.inject.Named; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.HttpHeaders; - -import de.intevation.lada.auth.Authentication; -import de.intevation.lada.auth.AuthenticationException; -import de.intevation.lada.data.Repository; -import de.intevation.lada.model.SProbenZusatz; - -/** - * This class produces a RESTful service to read SProbenzusatz objects. - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -@Path("/probenzusatz") -@RequestScoped -public class SProbenzusatzService -{ - /** - * The Repository for SDatenbasis. - */ - @Inject - @Named("readonlyrepository") - private Repository repository; - - /** - * The authorization module. - */ - @Inject - @Named("ldapauth") - private Authentication authentication; - - /** - * The logger for this class - */ - @Inject - private Logger logger; - - /** - * Request all SProbenzusatz objects. - * - * @param headers The HTTP header containing authorization information. - * @return Response object. - */ - @GET - @Produces("text/json") - public Response findAll(@Context HttpHeaders headers) { - try { - if (authentication.isAuthorizedUser(headers)) { - return repository.findAll(SProbenZusatz.class); - } - return new Response(false, 699, new ArrayList<SProbenZusatz>()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<SProbenZusatz>()); - } - } -}
--- a/src/main/java/de/intevation/lada/rest/SStaatService.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,93 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.rest; - -import java.util.ArrayList; - -import javax.enterprise.context.RequestScoped; -import javax.inject.Inject; -import javax.inject.Named; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.HttpHeaders; - -import de.intevation.lada.auth.Authentication; -import de.intevation.lada.auth.AuthenticationException; -import de.intevation.lada.data.Repository; -import de.intevation.lada.model.SStaat; - -/** - * This class produces a RESTful service to read SStaat objects. - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -@Path("/staat") -@RequestScoped -public class SStaatService -{ - /** - * The Repository for SStaat. - */ - @Inject - @Named("readonlyrepository") - private Repository repository; - - /** - * The authorization module. - */ - @Inject - @Named("ldapauth") - private Authentication authentication; - - /** - * Request all SStaat objects. - * - * @param headers The HTTP header containing authorization information. - * @return Response object. - */ - @GET - @Produces("text/json") - public Response findAll(@Context HttpHeaders headers) { - try { - if (authentication.isAuthorizedUser(headers)) { - return repository.findAll(SStaat.class); - } - return new Response(false, 699, new ArrayList<SStaat>()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<SStaat>()); - } - } - - /** - * Request a SStaat object via its id. - * - * @param id The object id. - * @param headers The HTTP header containing authorization information. - * @return Response object. - */ - @GET - @Path("/{id:[0-9][0-9]*}") - @Produces("text/json") - public Response findById( - @PathParam("id") String id, - @Context HttpHeaders headers) { - try { - if (authentication.isAuthorizedUser(headers)) { - return repository.findById(SStaat.class, id); - } - return new Response(false, 699, new ArrayList<SStaat>()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<SStaat>()); - } - } -}
--- a/src/main/java/de/intevation/lada/rest/SUmweltService.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,101 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.rest; - -import java.util.ArrayList; -import java.util.logging.Logger; - -import javax.enterprise.context.RequestScoped; -import javax.inject.Inject; -import javax.inject.Named; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.HttpHeaders; - -import de.intevation.lada.auth.Authentication; -import de.intevation.lada.auth.AuthenticationException; -import de.intevation.lada.data.Repository; -import de.intevation.lada.model.SUmwelt; - -/** - * This class produces a RESTful service to read SUmwelt objects. - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -@Path("/uwb") -@RequestScoped -public class SUmweltService { - - /** - * The Repository for SUmwelt. - */ - @Inject - @Named("readonlyrepository") - private Repository repository; - - /** - * The authorization module. - */ - @Inject - @Named("ldapauth") - private Authentication authentication; - - /** - * The logger for this class. - */ - @Inject - private Logger log; - - /** - * Request all SUmwelt objects. - * - * @param headers The HTTP header containing authorization information. - * @return JSON Object via Rest service - */ - @GET - @Produces("text/json") - public Response findAll(@Context HttpHeaders headers) { - try { - if (authentication.isAuthorizedUser(headers)) { - return repository.findAll(SUmwelt.class); - } - return new Response(false, 699, new ArrayList<SUmwelt>()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<SUmwelt>()); - } - } - - /** - * Request a SUmwelt object via its id. - * - * @param id The object id. - * @param headers The HTTP header containing authorization information. - * @return JSON Object via REST service. - */ - @GET - @Path("/{id:[0-9][0-9]*}") - @Produces("text/json") - public Response findById( - @PathParam("id") String id, - @Context HttpHeaders headers - ) { - try { - if (authentication.isAuthorizedUser(headers)) { - return repository.findById(SUmwelt.class, id); - } - return new Response(false, 699, new ArrayList<SUmwelt>()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<SUmwelt>()); - } - } -}
--- a/src/main/java/de/intevation/lada/rest/SVerwaltungseinheitService.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,130 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.rest; - -import java.util.ArrayList; - -import javax.enterprise.context.RequestScoped; -import javax.inject.Inject; -import javax.inject.Named; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.MultivaluedMap; -import javax.ws.rs.core.UriInfo; - -import de.intevation.lada.auth.Authentication; -import de.intevation.lada.auth.AuthenticationException; -import de.intevation.lada.data.QueryBuilder; -import de.intevation.lada.data.Repository; -import de.intevation.lada.model.SVerwaltungseinheit; - -/** - * This class produces a RESTful service to read SVerwaltungseinheit objects. - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -@Path("/verwaltungseinheit") -@RequestScoped -public class SVerwaltungseinheitService -{ - /** - * The Repository for SUmwelt. - */ - @Inject - @Named("readonlyrepository") - private Repository repository; - - /** - * The authorization module. - */ - @Inject - @Named("ldapauth") - private Authentication authentication; - - /** - * Request all SVerwaltungseinheit objects. - * - * @param headers The HTTP header containing authorization information. - * @return Response object. - */ -/* @GET - @Produces("text/json") - public Response findAll(@Context HttpHeaders headers) { - try { - if (authentication.isAuthorizedUser(headers)) { - return repository.findAll(SVerwaltungseinheit.class); - } - return new Response(false, 699, new ArrayList<SVerwaltungseinheit>()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<SVerwaltungseinheit>()); - } - } -*/ - /** - * Request a SVerwaltungseinheit object via its id. - * - * @param id The object id. - * @param headers The HTTP header containing authorization information. - * @return Response object. - */ - @GET - @Path("/{id:[0-9][0-9]*}") - @Produces("text/json") - public Response findById( - @PathParam("id") String id, - @Context HttpHeaders headers - ) { - try { - if (authentication.isAuthorizedUser(headers)) { - return repository.findById(SVerwaltungseinheit.class, id); - } - return new Response(false, 699, new ArrayList<SVerwaltungseinheit>()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, new ArrayList<SVerwaltungseinheit>()); - } - } - - /** - * Request SVerwaltungseinheit objects filtered by the given criteria. - * - * @param filter The filter string. - * @param headers The HTTP header containing authorization information. - * @return Response object. - */ - @GET - @Produces("text/json") - public Response filter( - @Context UriInfo info, - @Context HttpHeaders headers - ){ - try { - if (!authentication.isAuthorizedUser(headers)) { - return new Response(false, 699, null); - } - MultivaluedMap<String, String> params = info.getQueryParameters(); - if (params.isEmpty() || !params.containsKey("query")) { - return repository.findAll(SVerwaltungseinheit.class); - } - String filter = params.getFirst("query"); - QueryBuilder<SVerwaltungseinheit> builder = - new QueryBuilder<SVerwaltungseinheit>( - repository.getEntityManager(), SVerwaltungseinheit.class); - builder.andLike("bezeichnung", filter + "%"); - return repository.filter(builder.getQuery()); - } - catch(AuthenticationException ae) { - return new Response(false, 699, null); - } - } -}
--- a/src/main/java/de/intevation/lada/utils/QueryTools.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,133 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.utils; - -import java.io.IOException; -import java.nio.ByteBuffer; -import java.nio.charset.Charset; -import java.nio.file.Files; -import java.nio.file.Paths; -import java.util.ArrayList; -import java.util.List; - -import org.json.JSONArray; -import org.json.JSONException; -import org.json.JSONObject; - -import de.intevation.lada.model.query.QueryConfig; -import de.intevation.lada.model.query.QueryFilter; -import de.intevation.lada.model.query.ResultConfig; - -/** - * Utility class to handle the SQL query configuration. - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -public class QueryTools -{ - /** - * Read the config file using the system property - * "de.intevation.lada.sqlconfig". - * - * @return The file content. - */ - public static String readConfigFile() { - String file = System.getProperty("de.intevation.lada.sqlconfig"); - try { - byte[] encoded = Files.readAllBytes(Paths.get(file)); - Charset encoding = Charset.defaultCharset(); - return encoding.decode(ByteBuffer.wrap(encoded)).toString(); - } - catch (IOException ioe) { - return null; - } - } - - /** - * Get the configuration objects. - * First reads the config file and creates {@link QueryConfig} objects - * from JSON. - * - * @return List of {@link QueryConfig} objects. - */ - public static List<QueryConfig> getConfig() { - String content = readConfigFile(); - if (content == null) { - return null; - } - List<QueryConfig> configs = new ArrayList<QueryConfig>(); - JSONArray queries; - try { - queries = new JSONArray(content); - for (int i = 0; i < queries.length(); i++) { - JSONObject query = queries.getJSONObject(i); - QueryConfig qConf = new QueryConfig(); - qConf.setId(query.getInt("id")); - qConf.setName(query.getString("name")); - qConf.setDescription(query.getString("description")); - qConf.setSql(query.getString("sql")); - JSONArray filters = query.getJSONArray("filters"); - List<QueryFilter> qFilters = new ArrayList<QueryFilter>(); - for (int j = 0; j < filters.length(); j++) { - JSONObject filter = filters.getJSONObject(j); - QueryFilter qFilter = new QueryFilter(); - qFilter.setDataIndex(filter.getString("dataIndex")); - qFilter.setType(filter.getString("type")); - qFilter.setLabel(filter.getString("label")); - qFilter.setMultiSelect(filter.optBoolean("multiselect", false)); - qFilters.add(qFilter); - } - qConf.setFilters(qFilters); - JSONArray results = query.getJSONArray("result"); - List<ResultConfig> sResults = new ArrayList<ResultConfig>(); - for (int k = 0; k < results.length(); k++) { - JSONObject result = results.getJSONObject(k); - ResultConfig config = new ResultConfig(); - config.setDataIndex(result.getString("dataIndex")); - config.setHeader(result.getString("header")); - config.setWidth(result.optInt("width", 100)); - config.setFlex(result.optInt("flex", 0)); - sResults.add(config); - } - qConf.setResults(sResults); - configs.add(qConf); - } - } - catch (JSONException e) { - return null; - } - return configs; - } - - /** - * Get a query by id. - * First reads the config file and returns the {@link QueryConfig} - * identified by the given id. - * - * @param id {@link QueryConfig} id. - * @return The query config as JSON object or null if no object was found. - */ - public static JSONObject getQueryById(String id) { - try { - String content = readConfigFile(); - if (content != null) { - JSONArray queries = new JSONArray(content); - for (int i = 0; i < queries.length(); i++) { - JSONObject query = queries.getJSONObject(i); - if (query.getString("id").equals(id)) { - return query; - } - } - } - return null; - } - catch (JSONException e) { - return null; - } - } -}
--- a/src/main/java/de/intevation/lada/utils/Resources.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,46 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -/* - * JBoss, Home of Professional Open Source - * Copyright 2012, Red Hat, Inc. and/or its affiliates, and individual - * contributors by the @authors tag. See the copyright.txt in the - * distribution for a full listing of individual contributors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * http://www.apache.org/licenses/LICENSE-2.0 - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package de.intevation.lada.utils; - -import java.util.logging.Logger; - -import javax.enterprise.inject.Produces; -import javax.enterprise.inject.spi.InjectionPoint; -import javax.persistence.EntityManager; -import javax.persistence.PersistenceContext; - -/** - * This class uses CDI to alias Java EE resources, such as the persistence context, to CDI beans - */ -public class Resources { - - @Produces - @PersistenceContext(unitName = "primary") - private EntityManager em; - - @Produces - public Logger produceLog(InjectionPoint injectionPoint) { - return Logger.getLogger(injectionPoint.getMember().getDeclaringClass().getName()); - } -}
--- a/src/main/java/de/intevation/lada/validation/LMessungValidator.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,233 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.validation; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; -import javax.inject.Named; - -import de.intevation.lada.data.QueryBuilder; -import de.intevation.lada.data.Repository; -import de.intevation.lada.model.LMessung; -import de.intevation.lada.model.LMesswert; -import de.intevation.lada.model.LProbe; -import de.intevation.lada.model.LProbeInfo; -import de.intevation.lada.model.SPflichtMessgroesse; -import de.intevation.lada.rest.Response; - -/** - * Validator for LMessung objects. - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -@Named("lmessungvalidator") -@ApplicationScoped -public class LMessungValidator -implements Validator -{ - @Inject - @Named("lproberepository") - private Repository probeRepository; - - @Inject - @Named("lmessungrepository") - private Repository messungRepository; - - @Inject - @Named("lmesswertrepository") - private Repository messwertRepository; - - @Inject - @Named("readonlyrepository") - private Repository readonlyRepository; - - /** - * Validate a LMessung object. - * - * @param object The object to validate. - * @param update The database operation. - * TRUE indicates that the object should be updated, FALSE - * if the object is a new Object. - * @return Map containing warnings. - * @throws ValidationException - */ - @Override - public Map<String, Integer> validate(Object object, boolean update) - throws ValidationException { - Map<String, Integer> warnings = new HashMap<String, Integer>(); - if (!(object instanceof LMessung)) { - Map<String, Integer> errors = new HashMap<String, Integer>(); - errors.put("lmessung", 610); - throw new ValidationException(errors); - } - LMessung messung = (LMessung)object; - - validateHasNebenprobenNr(messung, warnings); - validateDatum(messung, warnings); - validateHasMesswert(messung, warnings); - validateMessgroesse(messung, warnings); - validatePflichtmessgroessen(messung, warnings); - if (!update) { - validateUniqueNebenprobenNr(messung, warnings); - } - return warnings; - } - - private void validateHasMesswert( - LMessung messung, - Map<String, Integer> warnings) { - QueryBuilder<LMesswert> wertBuilder = - new QueryBuilder<LMesswert>( - messwertRepository.getEntityManager(), LMesswert.class); - wertBuilder.and("messungsId", messung.getMessungsId()) - .and("probeId", messung.getProbeId()); - Response wertResponse = messwertRepository.filter(wertBuilder.getQuery()); - List<LMesswert> messwerte = (List<LMesswert>)wertResponse.getData(); - if (messwerte == null || messwerte.isEmpty()) { - warnings.put("messwert", 631); - } - } - - private void validatePflichtmessgroessen( - LMessung messung, - Map<String, Integer> warnings) { - QueryBuilder<SPflichtMessgroesse> builder = - new QueryBuilder<SPflichtMessgroesse>( - readonlyRepository.getEntityManager(), - SPflichtMessgroesse.class); - builder.and("mmtId", messung.getMmtId()); - Response response = readonlyRepository.filter(builder.getQuery()); - List<SPflichtMessgroesse> pflicht = - (List<SPflichtMessgroesse>)response.getData(); - - QueryBuilder<LMesswert> wertBuilder = - new QueryBuilder<LMesswert>( - messwertRepository.getEntityManager(), LMesswert.class); - wertBuilder.and("messungsId", messung.getMessungsId()) - .and("probeId", messung.getProbeId()); - Response wertResponse = - messwertRepository.filter(wertBuilder.getQuery()); - List<LMesswert> messwerte = (List<LMesswert>)wertResponse.getData(); - for (SPflichtMessgroesse p : pflicht) { - boolean hit = false; - for (LMesswert wert : messwerte) { - if (p.getMessgroesseId().equals(wert.getMessgroesseId())) { - hit = true; - } - } - if (!hit) { - warnings.put("pflichtmessgroesse", 631); - } - } - } - - private void validateMessgroesse( - LMessung messung, - Map<String, Integer> warnings - ) { - String mmt = messung.getMmtId(); - QueryBuilder<LMesswert> builder = - new QueryBuilder<LMesswert>( - messwertRepository.getEntityManager(), LMesswert.class); - builder.and("messungsId", messung.getMessungsId()) - .and("probeId", messung.getProbeId()); - Response response = messwertRepository.filter(builder.getQuery()); - List<LMesswert> messwerte = (List<LMesswert>)response.getData(); - String query = "select messgroesse_id from \"S_mmt_messgroesse\" where mmt_id = '" + mmt + "'"; - List<Integer> results = readonlyRepository.getEntityManager().createNativeQuery(query).getResultList(); - for(LMesswert messwert: messwerte) { - boolean hit = false; - for (Integer row: results) { - if (messwert.getMessgroesseId().equals(row.toString())) { - hit = true; - } - } - if (!hit) { - warnings.put("messgroesse", 632); - } - } - } - - /** - * Check if the object has a 'Nebenproben Nr.'. - * - * @param messung The LMessung object. - * @param warnings The map containing warnings. - * @throws ValidationException - */ - private void validateHasNebenprobenNr( - LMessung messung, - Map<String, Integer> warnings) - throws ValidationException { - if (messung.getNebenprobenNr() == null || - messung.getNebenprobenNr().equals("")) { - warnings.put("nebenprobenNr", 631); - } - } - - /** - * Check if the 'Nebenproben Nr' is unique. - * - * @param messung The LMessung object. - * @param warnings The map containing warnings. - * @throws ValidationException - */ - private void validateUniqueNebenprobenNr( - LMessung messung, - Map<String, Integer> warnings) - throws ValidationException { - QueryBuilder<LMessung> builder = - new QueryBuilder<LMessung>( - messungRepository.getEntityManager(), - LMessung.class); - builder.and("probeId", messung.getProbeId()); - Response response = messungRepository.filter(builder.getQuery()); - List<LMessung> list = (List<LMessung>) response.getData(); - if (list.isEmpty()) { - return; - } - for (LMessung m: list) { - if (m.getNebenprobenNr().equals(messung.getNebenprobenNr())) { - Map<String, Integer> errors = new HashMap<String, Integer>(); - errors.put("nebenprobenNr", 611); - throw new ValidationException(errors); - } - } - } - - /** - * Check if the 'Messdatum' is after the 'Probennahmedatum'. - * - * @param messung The LMessung object. - * @param warnings The map containing warinings. - * @throws ValidationException - */ - private void validateDatum( - LMessung messung, - Map<String, Integer> warnings) - throws ValidationException{ - String probeId = messung.getProbeId(); - Response response = probeRepository.findById(LProbe.class, probeId); - @SuppressWarnings("unchecked") - List<LProbeInfo> list = (List<LProbeInfo>) response.getData(); - if (list.isEmpty()) { - Map<String, Integer> errors = new HashMap<String, Integer>(); - errors.put("lprobe", 604); - throw new ValidationException(errors); - } - LProbeInfo probe = list.get(0); - if (probe.getProbeentnahmeEnde() == null || - probe.getProbeentnahmeEnde().after(messung.getMesszeitpunkt())) { - warnings.put("messzeitpunkt", 661); - } - } -}
--- a/src/main/java/de/intevation/lada/validation/LMesswertValidator.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,72 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.validation; - -import java.util.HashMap; -import java.util.Map; - -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Named; - -import de.intevation.lada.model.LMesswert; - -@Named("lmesswertvalidator") -@ApplicationScoped -public class LMesswertValidator -implements Validator -{ - /** - * Validate a LMesswert object. - * - * @param object The LMesswert object. - * @param update The database operation. - * TRUE indicates that the object should be updated, FALSE - * if the object is a new Object. - * @return Map containing warnings. - */ - @Override - public Map<String, Integer> validate(Object object, boolean update) - throws ValidationException { - Map<String, Integer> warnings = new HashMap<String, Integer>(); - if (!(object instanceof LMesswert)) { - Map<String, Integer> errors = new HashMap<String, Integer>(); - errors.put("lmesswert", 610); - throw new ValidationException(errors); - } - LMesswert messwert = (LMesswert)object; - - validateMessunsicherheit(messwert, warnings); - return null; - } - - /** - * Check if the LMesswert has a 'Messunsicherheit' or if the the value - * is lower than the 'Nachweisgrenze'. - * - * @param messwert The LMesswert object. - * @param warnings The map containing warnings. - * @throws ValidationException - */ - private void validateMessunsicherheit( - LMesswert messwert, - Map<String, Integer> warnings) - throws ValidationException { - Float unsicherheit = messwert.getMessfehler(); - Float nachweisgrenze = messwert.getNwgZuMesswert(); - Float wert = messwert.getMesswert(); - if (unsicherheit != null && unsicherheit > 0f) { - return; - } - else if (nachweisgrenze != null && wert < nachweisgrenze) { - return; - } - else { - warnings.put("messwert", 631); - } - } -}
--- a/src/main/java/de/intevation/lada/validation/LOrtValidator.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,123 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.validation; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; -import javax.inject.Named; - -import com.vividsolutions.jts.geom.Coordinate; -import com.vividsolutions.jts.geom.GeometryFactory; -import com.vividsolutions.jts.geom.Point; -import com.vividsolutions.jts.geom.PrecisionModel; - -import de.intevation.lada.data.QueryBuilder; -import de.intevation.lada.data.Repository; -import de.intevation.lada.model.DeVg; -import de.intevation.lada.model.LOrt; -import de.intevation.lada.model.Ort; -import de.intevation.lada.model.SVerwaltungseinheit; -import de.intevation.lada.rest.Response; - -/** - * Validator for LOrt objects. - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -@ApplicationScoped -@Named("lortvalidator") -public class LOrtValidator -implements Validator -{ - @Inject - @Named("readonlyrepository") - private Repository readonlyRepo; - - @Inject - @Named("ortrepository") - private Repository ortRepo; - - /** - * Validate a LOrt object. - * - * @param object The LOrt object. - * @param update The database operation. - * TRUE indicates that the object should be updated, FALSE - * if the object is a new Object. - * @return Map containing warnings. - */ - @Override - public Map<String, Integer> validate(Object object, boolean update) - throws ValidationException { - Map<String, Integer> warnings = new HashMap<String, Integer>(); - if (!(object instanceof LOrt)) { - Map<String, Integer> errors = new HashMap<String, Integer>(); - errors.put("lort", 610); - throw new ValidationException(errors); - } - LOrt ort = (LOrt)object; - validateVerwaltungseinheit(ort, warnings); - //TODO: more validation, see LSB: VI - Konsistenzregeln - return warnings; - } - - /** - * Check if the given lat/lon coordinates are within the area of the - * verwaltungseinheit. - * - * @param ort - * @param warnings - */ - private void validateVerwaltungseinheit(LOrt ort, Map<String, Integer> warnings) { - if (!"E".equals(ort.getOrtsTyp())) { - return; - } - QueryBuilder<Ort> ortBuilder = - new QueryBuilder<Ort>(ortRepo.getEntityManager(), Ort.class); - ortBuilder.and("ortId", ort.getOrtId()); - Response response = ortRepo.filter(ortBuilder.getQuery()); - List<Ort> orte = (List<Ort>)response.getData(); - QueryBuilder<SVerwaltungseinheit> veBuilder = - new QueryBuilder<SVerwaltungseinheit>( - readonlyRepo.getEntityManager(), SVerwaltungseinheit.class); - veBuilder.and("gemId", orte.get(0).getGemId()); - Response ver = readonlyRepo.filter(veBuilder.getQuery()); - if (((List<SVerwaltungseinheit>)ver.getData()).isEmpty()) { - warnings.put("verwaltungseinheit", 653); - return; - } - SVerwaltungseinheit ve = ((List<SVerwaltungseinheit>)ver.getData()).get(0); - QueryBuilder<DeVg> vg = - new QueryBuilder<DeVg>(readonlyRepo.getEntityManager(), DeVg.class); - vg.and("ags", ve.getGemId()); - Response rvg = readonlyRepo.filter(vg.getQuery()); - List<DeVg> vgs = (List<DeVg>)rvg.getData(); - if (vgs == null || vgs.isEmpty()) { - warnings.put("verwaltungseinheit", 653); - return; - } - double y = orte.get(0).getLatitude(); - double x = orte.get(0).getLongitude(); - Coordinate c = new Coordinate(x, y); - GeometryFactory gf = new GeometryFactory(new PrecisionModel(PrecisionModel.FLOATING), 4326); - Point p = gf.createPoint(c); - boolean hit = false; - for (DeVg singlevg : vgs) { - if(singlevg.getGeom().contains(p)) { - hit = true; - } - } - if (!hit) { - warnings.put("verwaltungseinheit", 651); - } - } -}
--- a/src/main/java/de/intevation/lada/validation/LProbeValidator.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,152 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.validation; - -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; -import javax.inject.Named; - -import de.intevation.lada.data.LOrtRepository; -import de.intevation.lada.data.LProbeRepository; -import de.intevation.lada.data.QueryBuilder; -import de.intevation.lada.model.LOrt; -import de.intevation.lada.model.LProbe; -import de.intevation.lada.model.LProbeInfo; -import de.intevation.lada.rest.Response; - -/** - * Validator for LProbe objects. - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -@Named("lprobevalidator") -@ApplicationScoped -public class LProbeValidator -implements Validator -{ - /** - * The repositories used in this validator. - */ - @Inject - private LProbeRepository probeRepository; - @Inject - private LOrtRepository ortRepository; - - /** - * Validate a LProbe object. - * - * @param probe The LProbe object. - * @param update The database operation. - * TRUE indicates that the object should be updated, FALSE - * if the object is a new Object. - * @return Map containing warnings. - */ - @Override - public Map<String, Integer> validate(Object probe, boolean update) - throws ValidationException { - Map<String, Integer>warnings = new HashMap<String, Integer>(); - if (!(probe instanceof LProbe)) { - Map<String, Integer> errors = new HashMap<String, Integer>(); - errors.put("lprobe", 610); - throw new ValidationException(errors); - } - LProbe p = (LProbe)probe; - - validateEntnahmeOrt(p, warnings); - validateProbenahmeBegin(p, warnings); - validateUWB(p, warnings); - validateHauptProbenNummer(p, warnings); - return warnings; - } - - /** - * Check if the 'Hauptproben Nr' is unique. - * - * @param p The LProbe object. - * @param warnings The map containing warnings. - * @throws ValidationException - */ - private void validateHauptProbenNummer(LProbe p, Map<String, Integer> warnings) - throws ValidationException { - Response pInfo = - probeRepository.findById(LProbeInfo.class, p.getProbeId()); - List<LProbeInfo> pList = (List<LProbeInfo>)pInfo.getData(); - if (!(pList == null) && !pList.isEmpty()) { - LProbeInfo probe = pList.get(0); - if (probe.getHauptprobenNr().equals(p.getHauptprobenNr())) { - return; - } - } - String hpn = p.getHauptprobenNr(); - QueryBuilder<LProbe> builder = - new QueryBuilder<LProbe>( - probeRepository.getEntityManager(), LProbe.class); - builder.and("mstId", p.getMstId()).and("hauptprobenNr", hpn); - - Response response = probeRepository.filter(builder.getQuery()); - if (!((List<LProbe>)response.getData()).isEmpty()) { - Map<String, Integer> errors = new HashMap<String, Integer>(); - errors.put("hauptprobenNr", 611); - throw new ValidationException(errors, warnings); - } - } - - /** - * Check if the LProbe object has 'Entnahmeort'. - * - * @param probe - * @param warnings - */ - private void validateEntnahmeOrt(LProbe probe, Map<String, Integer> warnings) { - String pid = probe.getProbeId(); - - QueryBuilder<LOrt> builder = - new QueryBuilder<LOrt>( - ortRepository.getEntityManager(), LOrt.class); - builder.and("probeId", pid); - - Response response = ortRepository.filter(builder.getQuery()); - if (((List<LOrt>)response.getData()).isEmpty()) { - warnings.put("entnahmeOrt", 631); - } - } - - /** - * Check if 'Probenahmeende' is after 'Probenahmebeginn'. - * - * @param probe The LProbe object. - * @param warnings The map containing warnings. - */ - private void validateProbenahmeBegin(LProbe probe, Map<String, Integer> warnings) { - Date begin = probe.getProbeentnahmeBeginn(); - if (begin == null) { - warnings.put("probeentnahmeBegin", 631); - } - else if (begin.after(new Date())){ - warnings.put("probeentnahmeBegin", 661); - } - } - - /** - * Check if the LProbe object has a 'Umweltbereich'. - * - * @param probe The LProbe object. - * @param warnings The map containing warnings. - */ - private void validateUWB(LProbe probe, Map<String, Integer> warnings) { - String uwb = probe.getUmwId(); - if (uwb == null || uwb.equals("")) { - warnings.put("uwb", 631); - } - } -}
--- a/src/main/java/de/intevation/lada/validation/ValidationException.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,79 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.validation; - -import java.util.HashMap; -import java.util.Map; - -/** - * Exception used for validation errors. - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -public class ValidationException -extends Exception -{ - /** - * Errors saved in this exception. - */ - private Map<String, Integer> errors; - - /** - * Warnings saved in this exception. - */ - private Map<String, Integer> warnings; - - /** - * Do not allow an empty ValidationException object. - */ - private ValidationException() { - } - - /** - * Create a new instance with errors. - * - * @param errors - */ - public ValidationException(Map<String, Integer> errors) { - this(); - this.errors = errors; - this.warnings = new HashMap<String, Integer>(); - } - - /** - * Create a new instance with errors and warnings. - * - * @param errors - */ - public ValidationException( - Map<String, Integer> errors, - Map<String, Integer> warnings - ) { - this(); - this.errors = errors; - this.warnings = warnings; - } - - /** - * Getter for the errors. - * - * @return the errors - */ - public Map<String, Integer> getErrors() { - return errors; - } - - /** - * Getter for the warnings. - * - * @return the warnings - */ - public Map<String, Integer> getWarnings() { - return warnings; - } -}
--- a/src/main/java/de/intevation/lada/validation/Validator.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,31 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.validation; - -import java.util.Map; - -/** - * Validator interface. Implement this interface for lada object validations. - * - * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> - */ -public interface Validator -{ - /** - * Validate a database object. - * - * @param object The object to validate. - * @param update The database operation. - * TRUE indicates that the object should be updated, FALSE - * if the object is a new Object. - * @return Map containing warnings. - * @throws ValidationException - */ - public Map<String, Integer> validate(Object object, boolean update) - throws ValidationException; -}
--- a/src/main/resources/META-INF/persistence.xml Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<persistence version="2.0" - xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation=" - http://java.sun.com/xml/ns/persistence - http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"> - <persistence-unit name="primary"> - <jta-data-source>java:/jboss/Lada</jta-data-source> - <class>de.intevation.lada.model.LProbe</class> - <class>de.intevation.lada.model.SNetzBetreiber</class> - <properties> - <!-- Properties for Hibernate --> - <property name="hibernate.show_sql" value="true" /> - <property name="hibernate.dialect" value="org.hibernate.spatial.dialect.postgis.PostgisDialect"/> - <property name="hibernate.hbm2ddl.auto" value="none"/> - </properties> - </persistence-unit> -</persistence>
--- a/src/main/webapp/WEB-INF/faces-config.xml Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- This file is not required if you don't need any extra configuration. --> -<faces-config version="2.0" xmlns="http://java.sun.com/xml/ns/javaee" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation=" - http://java.sun.com/xml/ns/javaee - http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"> - - <!-- This descriptor activates the JSF 2.0 Servlet --> - - <!-- Write your navigation rules here. You are encouraged to use CDI for - creating @Named managed beans. --> - -</faces-config>
--- a/src/main/webapp/WEB-INF/lada-ds.xml.old Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- This is an unmanaged datasource. It should be used for proofs of concept - or testing only. It uses H2, an in memory database that ships with JBoss - AS. --> -<datasources xmlns="http://www.jboss.org/ironjacamar/schema" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://www.jboss.org/ironjacamar/schema http://docs.jboss.org/ironjacamar/schema/datasources_1_0.xsd"> - <!-- The datasource is bound into JNDI at this location. We reference - this in META-INF/persistence.xml --> - <datasource jndi-name="java:jboss/datasources/ladaDS" - pool-name="{artifactId}" enabled="true" - use-java-context="true"> - <connection-url>jdbc:h2:mem:lada;DB_CLOSE_DELAY=-1</connection-url> - <driver>h2</driver> - <security> - <user-name>sa</user-name> - <password>sa</password> - </security> - </datasource> -</datasources> - \ No newline at end of file
--- a/src/main/webapp/index.html Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,22 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta charset="UTF-8"> -<title>Lada</title> -</head> -<body> -<h1>Lada Debug Page</h1> -<p>This is the debugging page for the lada webservice. Below you find some links to trigger actions on the REST Api.</p> -<h2>Test</h2> -<ul> - <li><a href="rest/default">Hallo Welt</a></li> -</ul> -<h2>Proben</h2> -<ul> - <li><a href="rest/proben">List Proben</a></li> - <li><a href="rest/proben/1">Auswahl Probe (1)</a></li> - <li><a href="rest/proben/new">Anlegen neues Element</a></li> - <li><a href="rest/proben/deleteLast">Löschen Letztes Element</a></li> -</ul> -</body> -</html>
--- a/src/test/java/de/intevation/lada/ImporterTest.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,68 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada; - -import java.util.ArrayList; -import java.util.List; - -import org.junit.Ignore; - -import de.intevation.lada.auth.AuthenticationResponse; -import de.intevation.lada.importer.TestLAFImporter; - - -@Ignore -public class ImporterTest -{ - /* - @Ignore - public static void main(String[] args) { - System.setProperty( - "de.intevation.lada.test.singleprobe", - "/home/rrenkert/single.laf"); - System.setProperty( - "de.intevation.lada.test.incompleteprobe", - "/home/rrenkert/incomplete.laf"); - System.setProperty( - "de.intevation.lada.import", - "/opt/lada/config/import.json"); - System.out.println("ImporterTest started."); - TestLAFImporter test = new TestLAFImporter(); - test.loadLafFiles(); - - System.out.print("Testing config file not found: "); - test.testConfigFileNotFound(); - System.out.print("success.\n"); - - System.out.print("Testing config file: "); - test.testConfigFileLoading(); - System.out.print("success.\n"); - - System.out.print("Testing Parser:\n 1. Wrong header: "); - test.testProbeHeaderFail(); - System.out.print("success.\n 2. Complete probe: "); - test.testCompleteParser(); - System.out.print("success.\n"); - - //Prepare simulated authorization. - List<String> netzbetreiber = new ArrayList<String>(); - netzbetreiber.add("0611"); - List<String> mst = new ArrayList<String>(); - mst.add("06110"); - mst.add("06112"); - AuthenticationResponse auth = new AuthenticationResponse(); - auth.setUser("testeins"); - auth.setNetzbetreiber(netzbetreiber); - auth.setMst(mst); - auth.setNetzbetreiber(netzbetreiber); - - - System.out.println("end."); - return; - }*/ -}
--- a/src/test/java/de/intevation/lada/TestRestEasyClient.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,116 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada; - -import junit.framework.Assert; -import org.junit.Test; - -import org.jboss.resteasy.client.ClientRequest; -import org.jboss.resteasy.client.ClientResponse; - -public class TestRestEasyClient { - - public static String baseURL = "https://bfs-lada.intevation.de/lada-1.0/server/rest/"; - - public ClientResponse<String> getResponse(String url, boolean header){ - ClientRequest request = new ClientRequest(url); - if(header) - request.header("Authorization", "Basic dGVzdGVpbnM6TjVKOENmSm5iOA=="); - ClientResponse<String> response = null; - try { - response = request.get(String.class); - } - catch(Exception e) { - e.printStackTrace(); - } - return response; - } - - public void checkResponse(ClientResponse<String> response){ - Assert.assertEquals(true, response.getEntity().contains("\"message\":\"200\"")); - } - - public void testHttpOK(String url) { - ClientResponse<String> response = getResponse(url, true); - Assert.assertNotNull("Response shouldnot be null", response); - Assert.assertEquals(200, response.getStatus()); - checkResponse(response); - } - - public void testHttpForbidden(String url) { - ClientResponse<String> response = getResponse(url, false); - Assert.assertNotNull("Response shouldnot be null", response); - Assert.assertEquals(401, response.getStatus()); - } - - @Test - public void testLOrtService(){ - testHttpOK(baseURL + "ort?probeId=000007587685X"); - testHttpForbidden(baseURL + "ort"); - ClientResponse<String> response = getResponse(baseURL + "ort/000007587685X", true); - Assert.assertNotNull(response); - Assert.assertEquals(404, response.getStatus()); - } - @Test - public void testLMessKommentarService() { - testHttpOK(baseURL + "messkommentare?probeId=000007587685X&messungsId=1"); - testHttpForbidden(baseURL + "messkommentare"); - ClientResponse<String> response = getResponse(baseURL + "messkommentare/000007587685X", true); - Assert.assertNotNull(response); - Assert.assertEquals(404, response.getStatus()); - } - @Test - public void testLKommentarService() { - testHttpOK(baseURL + "kommentare?probeId=000007587685X"); - testHttpForbidden(baseURL + "kommentare"); - ClientResponse<String> response = getResponse(baseURL + "kommentare/000007587685X", true); - Assert.assertNotNull(response); - Assert.assertEquals(404, response.getStatus()); - } - @Test - public void testMessungService() { - testHttpOK(baseURL + "messung?probeId=000007587685X"); - testHttpForbidden(baseURL + "messung"); - ClientResponse<String> response = getResponse(baseURL + "messung/000007587685X", true); - Assert.assertNotNull(response); - Assert.assertEquals(404, response.getStatus()); - } - @Test - public void testLMesswertService() { - testHttpOK(baseURL + "messwert?probeId=000007587685X&messungsId=1"); - testHttpForbidden(baseURL + "messwert"); - ClientResponse<String> response = getResponse(baseURL + "messungwert/000007587685X", true); - Assert.assertNotNull(response); - Assert.assertEquals(404, response.getStatus()); - } - @Test - public void testLProbenService() { - testHttpOK(baseURL + "proben?mst_id=06010&umw_id=N24&qid=2"); - testHttpForbidden(baseURL + "proben?mst_id=06010&umw_id=N24&qid=2"); - ClientResponse<String> response = getResponse(baseURL + "proben/000007587685X", true); - Assert.assertNotNull(response); - Assert.assertEquals(200, response.getStatus()); - checkResponse(response); - } - @Test - public void testLStatusService() { - testHttpOK(baseURL + "status?probeId=000007587685X&messungsId=1"); - testHttpForbidden(baseURL + "status"); - ClientResponse<String> response = getResponse(baseURL + "status/000007587685X", true); - Assert.assertNotNull(response); - Assert.assertEquals(404, response.getStatus()); - } - @Test - public void testLZusatzwertService() { - testHttpOK(baseURL + "zusatzwert?probeId=000007587685X"); - testHttpForbidden(baseURL + "zusatzwert"); - ClientResponse<String> response = getResponse(baseURL + "zusatzwert/000007587685X", true); - Assert.assertNotNull(response); - Assert.assertEquals(404, response.getStatus()); - } -}
--- a/src/test/java/de/intevation/lada/importer/TestLAFImporter.java Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,141 +0,0 @@ -/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU GPL (v>=3) - * and comes with ABSOLUTELY NO WARRANTY! Check out - * the documentation coming with IMIS-Labordaten-Application for details. - */ -package de.intevation.lada.importer; - - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.fail; - -import java.io.IOException; -import java.nio.ByteBuffer; -import java.nio.charset.Charset; -import java.nio.file.Files; -import java.nio.file.Paths; -import java.util.List; - -import org.junit.Before; -import org.junit.Ignore; -import org.junit.Test; - -import de.intevation.lada.data.importer.EntryFormat; -import de.intevation.lada.data.importer.LAFFormat; -import de.intevation.lada.data.importer.LAFParser; -import de.intevation.lada.data.importer.LAFParserException; - - -public class TestLAFImporter -{ - - private static final String PROBE_HEADER_FAIL = - "%OBE%\n"; - private String singleProbe; - private String incompleteProbe; - - @Before - public void loadLafFiles() { - String single = System.getProperty("de.intevation.lada.test.singleprobe"); - String incomplete = - System.getProperty("de.intevation.lada.test.incompleteprobe"); - try { - byte[] encodedSingle = Files.readAllBytes(Paths.get(single)); - byte[] encodedIncomplete = - Files.readAllBytes(Paths.get(incomplete)); - Charset encoding = Charset.defaultCharset(); - singleProbe = - encoding.decode(ByteBuffer.wrap(encodedSingle)).toString(); - incompleteProbe = - encoding.decode(ByteBuffer.wrap(encodedIncomplete)).toString(); - } - catch (IOException ioe) { - singleProbe = ""; - incompleteProbe = ""; - } - } - - @Test - public void testConfigFileNotFound() { - LAFFormat format = new LAFFormat(); - boolean success = format.readConfigFile("/file/not/found"); - assertEquals(false, success); - } - - @Test - public void testConfigFileLoading() { - String fileName = System.getProperty("de.intevation.lada.import"); - LAFFormat format = new LAFFormat(); - boolean success = format.readConfigFile(fileName); - assertEquals(true, success); - List<EntryFormat> probeFormat = format.getFormat("probe"); - assertNotNull("No probe format available", probeFormat); - assertEquals( - "Not enough configuration elements for probe.", - 33, - probeFormat.size()); - List<EntryFormat> messungFormat = format.getFormat("messung"); - assertNotNull("No messung format available", messungFormat); - assertEquals( - "Not enough configuration elements for messung.", - 10, - messungFormat.size()); - List<EntryFormat> ortFormat = format.getFormat("ort"); - assertNotNull("No ort format available", ortFormat); - assertEquals( - "Not enough configuration elements for ort.", - 21, - ortFormat.size()); - } - - @Test - @Ignore - public void testProbeHeaderFail() { - LAFParser parser = new LAFParser(); - parser.setDryRun(true); - /* - try { - boolean success = parser.parse(PROBE_HEADER_FAIL); - assertEquals(false, success); - } - catch (LAFParserException e) { - assertEquals( - "Exception cause not expected: " + e.getMessage(), - "No %PROBE% at the begining.", e.getMessage()); - } - */ - } - - @Test - @Ignore - public void testIncompleteProbe() { - LAFParser parser = new LAFParser(); - parser.setDryRun(true); - /* - try { - parser.parse(incompleteProbe); - } - catch (LAFParserException e) { - e.printStackTrace(); - } - */ - } - - @Test - @Ignore - public void testCompleteParser() { - LAFParser parser = new LAFParser(); - parser.setDryRun(true); - /* - try { - parser.parse(singleProbe); - } - catch (LAFParserException e) { - e.printStackTrace(); - } - */ - } -}
--- a/src/test/resources/META-INF/test-persistence.xml Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<persistence version="2.0" - xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation=" - http://java.sun.com/xml/ns/persistence - http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"> - <persistence-unit name="primary"> - <!-- We use a different datasource for tests, so as to not overwrite - production data. This is an unmanaged data source, backed by H2, an in memory - database. Production applications should use a managed datasource. --> - <!-- The datasource is deployed as WEB-INF/test-ds.xml, - you can find it in the source at src/test/resources/test-ds.xml --> - <jta-data-source>java:jboss/datasources/ladaTestDS</jta-data-source> - <properties> - <!-- Properties for Hibernate --> - <property name="hibernate.hbm2ddl.auto" value="create-drop" /> - <property name="hibernate.show_sql" value="false" /> - </properties> - </persistence-unit> -</persistence> \ No newline at end of file
--- a/src/test/resources/arquillian.xml Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<arquillian xmlns="http://jboss.org/schema/arquillian" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://jboss.org/schema/arquillian - http://jboss.org/schema/arquillian/arquillian_1_0.xsd"> - - <!-- Uncomment to have test archives exported to the file system for inspection --> -<!-- <engine> --> -<!-- <property name="deploymentExportPath">target/</property> --> -<!-- </engine> --> - - <!-- Force the use of the Servlet 3.0 protocol with all containers, as it is the most mature --> - <defaultProtocol type="Servlet 3.0" /> - - <!-- Example configuration for a remote JBoss AS 7 instance --> - <container qualifier="jboss" default="true"> - <!-- If you want to use the JBOSS_HOME environment variable, just delete the jbossHome property --> - <configuration> - <property name="jbossHome">/path/to/jboss/as</property> - </configuration> - </container> - -</arquillian> \ No newline at end of file
--- a/src/test/resources/test-ds.xml Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- This is an unmanaged datasource. It should be used for proofs of concept - or testing only. It uses H2, an in memory database that ships with JBoss - AS. --> -<datasources xmlns="http://www.jboss.org/ironjacamar/schema" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://www.jboss.org/ironjacamar/schema http://docs.jboss.org/ironjacamar/schema/datasources_1_0.xsd"> - <!-- The datasource is bound into JNDI at this location. We reference - this in META-INF/test-persistence.xml --> - <datasource jndi-name="java:jboss/datasources/ladaTestDS" - pool-name="lada-test" enabled="true" - use-java-context="true"> - <connection-url>jdbc:h2:mem:lada-test;DB_CLOSE_DELAY=-1</connection-url> - <driver>h2</driver> - <security> - <user-name>sa</user-name> - <password>sa</password> - </security> - </datasource> -</datasources> - \ No newline at end of file
--- a/test/example.laf Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,115 +0,0 @@ -%PROBE% -UEBERTRAGUNGSFORMAT "7" -VERSION "0084" -DATENBASIS_S 02 -NETZKENNUNG "11" -ERZEUGER "bv" -MESSSTELLE "11010" -MESSLABOR "30021" -PROBE_ID "000007695981X" -HAUPTPROBENNUMMER "Beispiel_01" -MESSPROGRAMM_S "1" -MESSPROGRAMM_LAND "007" -PROBENAHMEINSTITUTION "001" -PROBENART "S" -ZEITBASIS_S 2 -URSPRUNGS_DATUM_UHRZEIT 20120906 0800 -PROBENAHME_DATUM_UHRZEIT_A 20120906 1000 -PROBENAHME_DATUM_UHRZEIT_E 20120906 1100 -UMWELTBEREICH_S "N12" -DESKRIPTOREN "0101010207 " -TESTDATEN 1 -SZENARIO "dummy" -P_HERKUNFTSLAND_S 00000000 -P_GEMEINDESCHLUESSEL 13071084 -P_ORTS_ZUSATZKENNZAHL 133 -P_KOORDINATEN_S 01 "3752892" "5967336" -P_ORTS_ZUSATZCODE "0200" -P_ORTS_ZUSATZTEXT "Testzusatztext 01" -P_NUTS_CODE "DE808" -%URSPRUNGSORT% -U_HERKUNFTSLAND_S 00000000 -U_GEMEINDESCHLUESSEL 13071005 -U_KOORDINATEN_S 05 "33363084" "5926966" -U_NUTS_CODE "DE80C" -PROBENKOMMENTAR "30021" 20120906 1354 "Testkommentar 01" -PROBENZUSATZBESCHREIBUNG "WAREN-L" 10.000E+00 "l" 0.00 -%MESSUNG% -MESSUNGS_ID 01 -NEBENPROBENNUMMER "0001" -MESSMETHODE_S "A1" -BEARBEITUNGSSTATUS "1110" -MESS_DATUM_UHRZEIT 20120906 1200 -MESSZEIT_SEKUNDEN 00003600 -PEP_FLAG 0 -ERFASSUNG_ABGESCHLOSSEN 1 -MESSWERT "Am 241" <1.000E-02 "Bq/l" 0.00 -MESSWERT "Pu 238" <2.000E-02 "Bq/l" 0.00 -MESSWERT "Pu 239" 1.230E-01 "Bq/l" 10.00 -KOMMENTAR "30021" 20120906 1355 "Testkommentar 01" -KOMMENTAR "30021" 20120906 1356 "Testkommentar 02" -%MESSUNG% -MESSUNGS_ID 02 -NEBENPROBENNUMMER "0002" -MESSMETHODE_S "G1" -BEARBEITUNGSSTATUS "1110" -MESS_DATUM_UHRZEIT 20120906 1300 -MESSZEIT_SEKUNDEN 00007200 -PEP_FLAG 0 -ERFASSUNG_ABGESCHLOSSEN 1 -MESSWERT "Ce 144" <1.000E-02 "Bq/l" 0.00 -MESSWERT "Co 60" 1.000E-01 "Bq/l" 20.00 -MESSWERT "Cs 134" <1.000E-01 "Bq/l" 0.00 -MESSWERT "Cs 137" 10.000E+00 "Bq/l" 10.00 -MESSWERT "I 131" <1.000E-02 "Bq/l" 0.00 -MESSWERT "K 40" 10.000E+01 "Bq/l" 10.00 -MESSWERT "Ru 103" <2.000E-02 "Bq/l" 0.00 -KOMMENTAR "30021" 20120906 1358 "Testkommentar 01" -%PROBE% -UEBERTRAGUNGSFORMAT "7" -VERSION "0084" -DATENBASIS_S 02 -NETZKENNUNG "19" -ERZEUGER "bv" -MESSSTELLE "30021" -MESSLABOR "30021" -PROBE_ID "000007695982X" -HAUPTPROBENNUMMER "Beispiel_02" -MESSPROGRAMM_S "1" -MESSPROGRAMM_LAND "007" -PROBENAHMEINSTITUTION "001" -PROBENART "S" -ZEITBASIS_S 2 -URSPRUNGS_DATUM_UHRZEIT 20120905 0800 -PROBENAHME_DATUM_UHRZEIT_A 20120905 1000 -PROBENAHME_DATUM_UHRZEIT_E 20120906 1100 -UMWELTBEREICH_S "F11" -DESKRIPTOREN "020105 " -TESTDATEN 1 -SZENARIO "dummy" -P_HERKUNFTSLAND_S 00000000 -P_GEMEINDESCHLUESSEL 13003000 -P_ORTS_ZUSATZKENNZAHL 004 -P_KOORDINATEN_S 02 "0120524" "541041" -P_ORTS_ZUSATZCODE "0200" -P_ORTS_ZUSATZTEXT "Testzusatztext 01" -P_NUTS_CODE "DE803" -%URSPRUNGSORT% -PROBENKOMMENTAR "30021" 20120906 1407 "Testkommentar 01" -PROBENKOMMENTAR "30021" 20120906 1407 "Testkommetar 02" -PROBENZUSATZBESCHREIBUNG "PRMENGF" 1.000E+00 "kg(FM)" 0.00 -PROBENZUSATZBESCHREIBUNG "PRMENGT" 9.000E-01 "kg(TM)" 0.00 -%MESSUNG% -MESSUNGS_ID 01 -NEBENPROBENNUMMER "0001" -MESSMETHODE_S "B1" -BEARBEITUNGSSTATUS "1000" -MESS_DATUM_UHRZEIT 20120906 1400 -MESSZEIT_SEKUNDEN 00001800 -PEP_FLAG 0 -ERFASSUNG_ABGESCHLOSSEN 1 -MESSWERT "H 3" 1.230E+02 "Bq/kg(FM)" 12.00 -KOMMENTAR "30021" 20120906 1410 "Testkommentar 01" -KOMMENTAR "30021" 20120906 1410 "Testkommetar 02" -%ENDE% -
--- a/test/incomplete.laf Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,67 +0,0 @@ -%PROBE% -UEBERTRAGUNGSFORMAT "7" -VERSION "0084" -DATENBASIS_S 02 -NETZKENNUNG "19" -ERZEUGER "bv" -MESSSTELLE "30021" -MESSLABOR "30021" -HAUPTPROBENNUMMER "Beispiel_01" -MESSPROGRAMM_S "1" -MESSPROGRAMM_LAND "007" -PROBENAHMEINSTITUTION "001" -PROBENART "S" -ZEITBASIS_S 2 -URSPRUNGS_DATUM_UHRZEIT 20120906 0800 -PROBENAHME_DATUM_UHRZEIT_A 20120906 1000 -PROBENAHME_DATUM_UHRZEIT_E 20120906 1100 -UMWELTBEREICH_S "N12" -DESKRIPTOREN "0101010207 " -TESTDATEN 1 -SZENARIO "dummy" -P_HERKUNFTSLAND_S 00000000 -P_GEMEINDESCHLUESSEL 13071084 -P_ORTS_ZUSATZKENNZAHL 133 -P_KOORDINATEN_S 01 "3752892" "5967336" -P_ORTS_ZUSATZCODE "0200" -P_ORTS_ZUSATZTEXT "Testzusatztext 01" -P_NUTS_CODE "DE808" -%URSPRUNGSORT% -U_HERKUNFTSLAND_S 00000000 -U_GEMEINDESCHLUESSEL 13071005 -U_KOORDINATEN_S 05 "33363084" "5926966" -U_NUTS_CODE "DE80C" -PROBENKOMMENTAR "30021" 20120906 1354 "Testkommentar 01" -PROBENZUSATZBESCHREIBUNG "WAREN-L" 10.000E+00 "l" 0.00 -%MESSUNG% -MESSUNGS_ID 01 -NEBENPROBENNUMMER "0001" -MESSMETHODE_S "A1" -BEARBEITUNGSSTATUS "1110" -MESS_DATUM_UHRZEIT 20120906 1200 -MESSZEIT_SEKUNDEN 00003600 -PEP_FLAG 0 -ERFASSUNG_ABGESCHLOSSEN 1 -MESSWERT "Am 241" <1.000E-02 "Bq/l" 0.00 -MESSWERT "Pu 238" <2.000E-02 "Bq/l" 0.00 -MESSWERT "Pu 239" 1.230E-01 "Bq/l" 10.00 -KOMMENTAR "30021" 20120906 1355 "Testkommentar 01" -KOMMENTAR "30021" 20120906 1356 "Testkommentar 02" -%MESSUNG% -MESSUNGS_ID 02 -NEBENPROBENNUMMER "0002" -MESSMETHODE_S "G1" -BEARBEITUNGSSTATUS "1110" -MESS_DATUM_UHRZEIT 20120906 1300 -MESSZEIT_SEKUNDEN 00007200 -PEP_FLAG 0 -ERFASSUNG_ABGESCHLOSSEN 1 -MESSWERT "Ce 144" <1.000E-02 "Bq/l" 0.00 -MESSWERT "Co 60" 1.000E-01 "Bq/l" 20.00 -MESSWERT "Cs 134" <1.000E-01 "Bq/l" 0.00 -MESSWERT "Cs 137" 10.000E+00 "Bq/l" 10.00 -MESSWERT "I 131" <1.000E-02 "Bq/l" 0.00 -MESSWERT "K 40" 10.000E+01 "Bq/l" 10.00 -MESSWERT "Ru 103" <2.000E-02 "Bq/l" 0.00 -KOMMENTAR "30021" 20120906 1358 "Testkommentar 01" -%ENDE%
--- a/test/single.laf Wed Feb 04 15:48:42 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,120 +0,0 @@ -%PROBE% -UEBERTRAGUNGSFORMAT "7" -VERSION "0084" -DATENBASIS_S 02 -NETZKENNUNG "19" -ERZEUGER "bv" -MESSSTELLE "30021" -MESSLABOR "30021" -PROBE_ID "000007695981X" -HAUPTPROBENNUMMER "Beispiel_01" -MESSPROGRAMM_S "1" -MESSPROGRAMM_LAND "007" -PROBENAHMEINSTITUTION "001" -PROBENART "S" -ZEITBASIS_S 2 -URSPRUNGS_DATUM_UHRZEIT 20120906 0800 -PROBENAHME_DATUM_UHRZEIT_A 20120906 1000 -PROBENAHME_DATUM_UHRZEIT_E 20120906 1100 -UMWELTBEREICH_S "N12" -DESKRIPTOREN "0101010207 " -TESTDATEN 1 -SZENARIO "dummy" -P_HERKUNFTSLAND_S 00000000 -P_GEMEINDESCHLUESSEL 13071084 -P_ORTS_ZUSATZKENNZAHL 133 -P_KOORDINATEN_S 01 "3752892" "5967336" -P_ORTS_ZUSATZCODE "0200" -P_ORTS_ZUSATZTEXT "Testzusatztext 01" -P_NUTS_CODE "DE808" -%URSPRUNGSORT% -U_HERKUNFTSLAND_S 00000000 -U_GEMEINDESCHLUESSEL 13071005 -U_KOORDINATEN_S 05 "33363084" "5926966" -U_NUTS_CODE "DE80C" -PROBENKOMMENTAR "30021" 20120906 1354 "Testkommentar 01 -bla blub" -PROBENZUSATZBESCHREIBUNG "WAREN-L" 10.000E+00 "l" 0.00 -%MESSUNG% -MESSUNGS_ID 01 -NEBENPROBENNUMMER "0001" -MESSMETHODE_S "A1" -BEARBEITUNGSSTATUS "1110" -MESS_DATUM_UHRZEIT 20120906 1200 -MESSZEIT_SEKUNDEN 00003600 -PEP_FLAG 0 -ERFASSUNG_ABGESCHLOSSEN 1 -MESSWERT "Am 241" <1.000E-02 "Bq/l" 0.00 -MESSWERT "Pu 238" <2.000E-02 "Bq/l" 0.00 -MESSWERT "Pu 239" 1.230E-01 "Bq/l" 10.00 -KOMMENTAR "30021" 20120906 1355 "Testkommentar 01" -KOMMENTAR "30021" 20120906 1356 "Testkommentar 02" -%MESSUNG% -MESSUNGS_ID 02 -NEBENPROBENNUMMER "0002" -MESSMETHODE_S "G1" -BEARBEITUNGSSTATUS "1110" -MESS_DATUM_UHRZEIT 20120906 1300 -MESSZEIT_SEKUNDEN 00007200 -PEP_FLAG 0 -ERFASSUNG_ABGESCHLOSSEN 1 -MESSWERT "Ce 144" <1.000E-02 "Bq/l" 0.00 -MESSWERT "Co 60" 1.000E-01 "Bq/l" 20.00 -MESSWERT "Cs 134" <1.000E-01 "Bq/l" 0.00 -MESSWERT "Cs 137" 10.000E+00 "Bq/l" 10.00 -MESSWERT "I 131" <1.000E-02 "Bq/l" 0.00 -MESSWERT "K 40" 10.000E+01 "Bq/l" 10.00 -MESSWERT "Ru 103" <2.000E-02 "Bq/l" 0.00 -KOMMENTAR "30021" 20120906 1358 "Testkommentar 01" -%PROBE% -UEBERTRAGUNGSFORMAT "7" -VERSION "0084" -DATENBASIS_S 02 -NETZKENNUNG "19" -ERZEUGER "bv" -MESSSTELLE "30021" -MESSLABOR "30021" -PROBE_ID "000007695981Y" -HAUPTPROBENNUMMER "Beispiel_01" -MESSPROGRAMM_S "1" -MESSPROGRAMM_LAND "007" -PROBENAHMEINSTITUTION "001" -PROBENART "S" -ZEITBASIS_S 2 -URSPRUNGS_DATUM_UHRZEIT 20120906 0800 -PROBENAHME_DATUM_UHRZEIT_A 20120906 1000 -PROBENAHME_DATUM_UHRZEIT_E 20120906 1100 -UMWELTBEREICH_S "N12" -DESKRIPTOREN "0101010207 " -TESTDATEN 1 -SZENARIO "dummy" -P_HERKUNFTSLAND_S 00000000 -P_GEMEINDESCHLUESSEL 13071084 -P_ORTS_ZUSATZKENNZAHL 133 -P_KOORDINATEN_S 01 "3752892" "5967336" -P_ORTS_ZUSATZCODE "0200" -P_ORTS_ZUSATZTEXT "Testzusatztext 01" -P_NUTS_CODE "DE808" -%URSPRUNGSORT% -U_HERKUNFTSLAND_S 00000000 -U_GEMEINDESCHLUESSEL 13071005 -U_KOORDINATEN_S 05 "33363084" "5926966" -U_NUTS_CODE "DE80C" -PROBENKOMMENTAR "30021" 20120906 1354 "Testkommentar 01 -bla blub" -PROBENZUSATZBESCHREIBUNG "WAREN-L" 10.000E+00 "l" 0.00 -%MESSUNG% -MESSUNGS_ID 01 -NEBENPROBENNUMMER "0001" -MESSMETHODE_S "A1" -BEARBEITUNGSSTATUS "1110" -MESS_DATUM_UHRZEIT 20120906 1200 -MESSZEIT_SEKUNDEN 00003600 -PEP_FLAG 0 -ERFASSUNG_ABGESCHLOSSEN 1 -MESSWERT "Am 241" <1.000E-02 "Bq/l" 0.00 -MESSWERT "Pu 238" <2.000E-02 "Bq/l" 0.00 -MESSWERT "Pu 239" 1.230E-01 "Bq/l" 10.00 -KOMMENTAR "30021" 20120906 1355 "Testkommentar 01" -KOMMENTAR "30021" 20120906 1356 "Testkommentar 02" -%ENDE%