Mercurial > dive4elements > river
comparison backend/src/main/java/org/dive4elements/river/importer/ImportRiver.java @ 9650:a2a42a6bac6b
Importer (s/u-info) extensions:
outer try/catch for parse and log of line no,
catching parsing exception if not enough value fields,
parsing error and warning log messages with line number,
detecting and rejecting duplicate data series,
better differentiation between error and warning log messages
author | mschaefer |
---|---|
date | Mon, 23 Mar 2020 14:57:03 +0100 |
parents | ae76f618d990 |
children |
comparison
equal
deleted
inserted
replaced
9649:295b3cb5ebc8 | 9650:a2a42a6bac6b |
---|---|
393 | 393 |
394 public AnnotationClassifier getAnnotationClassifier() { | 394 public AnnotationClassifier getAnnotationClassifier() { |
395 return this.annotationClassifier; | 395 return this.annotationClassifier; |
396 } | 396 } |
397 | 397 |
398 public void parseDependencies() throws IOException { | 398 public void parseDependencies() throws Exception { |
399 log.info("Root dir is '" + getRiverDir() + "'"); | 399 log.info("Root dir is '" + getRiverDir() + "'"); |
400 parseGauges(); | 400 parseGauges(); |
401 parseAnnotations(); | 401 parseAnnotations(); |
402 parsePRFs(); | 402 parsePRFs(); |
403 parseDA66s(); | 403 parseDA66s(); |
1665 } | 1665 } |
1666 } | 1666 } |
1667 } | 1667 } |
1668 | 1668 |
1669 public River getPeer() { | 1669 public River getPeer() { |
1670 if (this.peer == null) { | 1670 return getPeer(true); |
1671 final Session session = ImporterSession.getInstance() | 1671 } |
1672 .getDatabaseSession(); | 1672 |
1673 final Query query = session.createQuery("from River where name=:name"); | 1673 public River getPeer(final boolean storeIfNew) { |
1674 | 1674 |
1675 Unit u = null; | 1675 if (this.peer != null) |
1676 if (this.wstUnit != null) { | 1676 return this.peer; |
1677 u = this.wstUnit.getPeer(); | 1677 |
1678 } | 1678 final Session session = ImporterSession.getInstance().getDatabaseSession(); |
1679 | 1679 final Query query = session.createQuery("FROM River WHERE name=:name"); |
1680 query.setString("name", this.name); | 1680 |
1681 final List<River> rivers = query.list(); | 1681 Unit u = null; |
1682 if (rivers.isEmpty()) { | 1682 if (storeIfNew && (this.wstUnit != null)) { |
1683 log.info("Store new river '" + this.name + "'"); | 1683 u = this.wstUnit.getPeer(); |
1684 this.peer = new River(this.name, u, this.modelUuid); | 1684 } |
1685 if (!Config.INSTANCE.skipBWASTR()) { | 1685 |
1686 this.peer.setOfficialNumber(this.officialNumber); | 1686 query.setString("name", this.name); |
1687 } | 1687 final List<River> rivers = query.list(); |
1688 session.save(this.peer); | 1688 if (rivers.isEmpty() && storeIfNew) { |
1689 } | 1689 log.info("Store new river '" + this.name + "'"); |
1690 else { | 1690 this.peer = new River(this.name, u, this.modelUuid); |
1691 this.peer = rivers.get(0); | 1691 if (!Config.INSTANCE.skipBWASTR()) { |
1692 } | 1692 this.peer.setOfficialNumber(this.officialNumber); |
1693 } | |
1694 session.save(this.peer); | |
1695 } | |
1696 else { | |
1697 this.peer = rivers.get(0); | |
1693 } | 1698 } |
1694 return this.peer; | 1699 return this.peer; |
1695 } | 1700 } |
1696 } | 1701 } |
1697 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : | 1702 |