Mercurial > dive4elements > river
diff artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/tkhstate/DefaultBedHeights.java @ 9129:28eec75415d8
Handle case where no default bedheights are defined for a given river
author | gernotbelger |
---|---|
date | Wed, 06 Jun 2018 14:15:58 +0200 |
parents | 82917e414d76 |
children | 2f5052835b76 |
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/tkhstate/DefaultBedHeights.java Wed Jun 06 13:56:48 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/tkhstate/DefaultBedHeights.java Wed Jun 06 14:15:58 2018 +0200 @@ -47,6 +47,25 @@ final Collection<String> bedHeightNames = loadBedHeightDefaultsForRiver(this.river, problems); final List<BedHeight> defaultBedHeights = loadBedHeightsByName(this.river, bedHeightNames, problems); + if (defaultBedHeights.isEmpty()) { + problems.addProblem("sinfo.bedheightsfinder.nobedheightsforriver", this.river.getName()); + return Collections.emptyList(); + } + + /* check for overlapping ranges, N2-search, but we expect only have small numbers of bed heights */ + final List<BedHeight> result = new ArrayList<>(defaultBedHeights.size()); + + for (int i = 0; i < defaultBedHeights.size(); i++) { + final BedHeight bedHeight = defaultBedHeights.get(i); + + final Range range = bedHeight.getRange(); + final NumberRange bedRange = new NumberRange(range.getA(), range.getB()); + + if (overlapsRange(bedRange, defaultBedHeights, i + 1)) { + problems.addProblem("sinfo.bedheightsfinder.overlappingrange", bedHeight.getDescription()); + } else + result.add(bedHeight); + } final List<BedHeight> validBedHeights = new ArrayList<>(defaultBedHeights.size()); @@ -61,21 +80,6 @@ validBedHeights.add(bedHeight); } - /* check for overlapping ranges, N2-search, but we expect only have small numbers of bed heights */ - final List<BedHeight> result = new ArrayList<>(defaultBedHeights.size()); - - for (int i = 0; i < defaultBedHeights.size(); i++) { - final BedHeight bedHeight = validBedHeights.get(i); - - final Range range = bedHeight.getRange(); - final NumberRange bedRange = new NumberRange(range.getA(), range.getB()); - - if (overlapsRange(bedRange, validBedHeights, i + 1)) { - problems.addProblem("sinfo.bedheightsfinder.overlappingrange", bedHeight.getDescription()); - } else - result.add(bedHeight); - } - return result; }