# HG changeset patch # User Ingo Weinzierl # Date 1325770798 0 # Node ID ca6ccf722c24a96da5f6f7c328177c0a24da405a # Parent cbeeaaad10561c8472127729547a627ed077f63d #447 removed empty Outputs from Collection's attribute. flys-artifacts/trunk@3595 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r cbeeaaad1056 -r ca6ccf722c24 flys-artifacts/ChangeLog --- a/flys-artifacts/ChangeLog Thu Jan 05 10:46:32 2012 +0000 +++ b/flys-artifacts/ChangeLog Thu Jan 05 13:39:58 2012 +0000 @@ -1,3 +1,15 @@ +2012-01-05 Ingo Weinzierl + + flys/issue447 (W-Differenzen: Fehler beim Hinzufügen einer Parameterisierung) + + * src/main/java/de/intevation/flys/collections/CollectionAttribute.java: + Added a new method cleanEmptyOutputs() which removes Outputs that have + no Facets set. + + * src/main/java/de/intevation/flys/collections/AttributeWriter.java: Call + CollectionAttribute.cleanEmptyOutputs() at the end of write() to remove + empty Outputs that have been added during the merge process. + 2012-01-05 Ingo Weinzierl flys/issue440 (Karte: WSPLGEN Berechnungen für Mosel schlagen fehl) diff -r cbeeaaad1056 -r ca6ccf722c24 flys-artifacts/src/main/java/de/intevation/flys/collections/AttributeWriter.java --- a/flys-artifacts/src/main/java/de/intevation/flys/collections/AttributeWriter.java Thu Jan 05 10:46:32 2012 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/collections/AttributeWriter.java Thu Jan 05 13:39:58 2012 +0000 @@ -103,6 +103,9 @@ writeOutput(a.getName(), newFacets, oldFacets); } + // THIS CALL IS ABSOLUTELY NECESSARY! + attribute.cleanEmptyOutputs(); + return attribute; } diff -r cbeeaaad1056 -r ca6ccf722c24 flys-artifacts/src/main/java/de/intevation/flys/collections/CollectionAttribute.java --- a/flys-artifacts/src/main/java/de/intevation/flys/collections/CollectionAttribute.java Thu Jan 05 10:46:32 2012 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/collections/CollectionAttribute.java Thu Jan 05 13:39:58 2012 +0000 @@ -58,6 +58,29 @@ } + public void cleanEmptyOutputs() { + if (outputMap == null) { + return; + } + + List removeUs = new ArrayList(); + + Set> entries = outputMap.entrySet(); + for (Map.Entry entry: entries) { + Output o = entry.getValue(); + + List facets = o.getFacets(); + if (facets == null || facets.isEmpty()) { + removeUs.add(entry.getKey()); + } + } + + for (String key: removeUs) { + outputMap.remove(key); + } + } + + public void setSettings(String outputKey, Settings settings) { if (settings == null) { logger.warn("Tried to set empty Settings for '" + outputKey + "'");