# HG changeset patch # User Sascha L. Teichmann # Date 1261406478 0 # Node ID 6eae1efb5fc33b56fe99d890e4b53bd39dd40d8d # Parent 9697675ede21dd983a05bfe0027dc75cc09c85bf Horizontales Schnittprofil: Added some code to prevent needless null inserts if interpolating over large gaps. gnv-artifacts/trunk@466 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r 9697675ede21 -r 6eae1efb5fc3 gnv-artifacts/ChangeLog --- a/gnv-artifacts/ChangeLog Mon Dec 21 13:55:42 2009 +0000 +++ b/gnv-artifacts/ChangeLog Mon Dec 21 14:41:18 2009 +0000 @@ -1,3 +1,9 @@ +2009-12-21 Sascha L. Teichmann + + * src/main/java/de/intevation/gnv/state/profile/horizontal/HorizontalProfileMeshCrossOutputState.java: + Added some code to prevent needless null inserts if interpolating + over large gaps. + 2009-12-21 Ingo Weinzierl * src/main/java/de/intevation/gnv/chart/HorizontalCrossProfileChart.java: diff -r 9697675ede21 -r 6eae1efb5fc3 gnv-artifacts/src/main/java/de/intevation/gnv/state/profile/horizontal/HorizontalProfileMeshCrossOutputState.java --- a/gnv-artifacts/src/main/java/de/intevation/gnv/state/profile/horizontal/HorizontalProfileMeshCrossOutputState.java Mon Dec 21 13:55:42 2009 +0000 +++ b/gnv-artifacts/src/main/java/de/intevation/gnv/state/profile/horizontal/HorizontalProfileMeshCrossOutputState.java Mon Dec 21 14:41:18 2009 +0000 @@ -319,8 +319,10 @@ } if (!oa.equals(ob)) { - log.debug("+++++++++++++++ differs ++++++++++++++"); - log.debug(" " + oa + " != " + ob); + if (log.isDebugEnabled()) { + log.debug("+++++++++++++++ differs ++++++++++++++"); + log.debug(" " + oa + " != " + ob); + } return true; } } @@ -341,6 +343,7 @@ private Collection output; private Result prototyp; private ResultDescriptor descriptor; + private boolean lastWasSuccess; public SectionHandler() { } @@ -353,7 +356,8 @@ this.path = path; this.output = output; this.descriptor = descriptor; - points = new ArrayList(); + points = new ArrayList(); + lastWasSuccess = true; } public void finish() { @@ -375,6 +379,7 @@ points.clear(); } + lastWasSuccess = true; } public void setPrototyp(Result prototyp) { @@ -409,9 +414,15 @@ result.addColumnValue(j, toWKT(coordinate)); } else if (colname.equals("YORDINATE")) { - result.addColumnValue(j, success - ? Double.valueOf(coordinate.z) - : null); + if (success) { + result.addColumnValue(j, Double.valueOf(coordinate.z)); + } + else if (lastWasSuccess) { + // only insert null if last was valid. + // This prevents flooding the result set with nulls + // if interpolating over a large gap. + result.addColumnValue(j, null); + } } else { result.addColumnValue(j, prototyp.getObject(i)); @@ -419,6 +430,7 @@ ++j; } output.add(result); + lastWasSuccess = success; } } // class SectionHandler