Mercurial > dive4elements > river
diff flys-client/src/main/java/de/intevation/flys/client/shared/model/ToLoad.java @ 1352:01b18db3b288
In WDiff datacage input make names survive backjumps.
flys-client/trunk@3027 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Wed, 19 Oct 2011 11:08:03 +0000 |
parents | e47ef0ca8f33 |
children |
line wrap: on
line diff
--- a/flys-client/src/main/java/de/intevation/flys/client/shared/model/ToLoad.java Wed Oct 19 09:35:41 2011 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/shared/model/ToLoad.java Wed Oct 19 11:08:03 2011 +0000 @@ -9,12 +9,27 @@ public class ToLoad implements Serializable { + + public class StringPair { + public String first; + public String second; + public StringPair(String first, String second) { + this.first = first; + this.second = second; + } + public int hashCode() { + return first.hashCode() + second.hashCode(); + } + public boolean equals(StringPair other) { + return (this.second.equals(other.second)) && (this.first.equals(other.first)); + } + } public static final String SYNTHETIC_KEY = "key-"; - protected Map<String, Map<String, ArtifactFilter>> artifacts; + protected Map<String, Map<StringPair, ArtifactFilter>> artifacts; public ToLoad() { - artifacts = new HashMap<String, Map<String, ArtifactFilter>>(); + artifacts = new HashMap<String, Map<StringPair, ArtifactFilter>>(); } public static final String uniqueKey(Map<?, ?> map) { @@ -32,23 +47,24 @@ String factory, String out, String name, - String ids + String ids, + String displayName ) { if (artifactName == null) { artifactName = uniqueKey(artifacts); } - Map<String, ArtifactFilter> artifact = artifacts.get(artifactName); + Map<StringPair, ArtifactFilter> artifact = artifacts.get(artifactName); if (artifact == null) { - artifact = new HashMap<String, ArtifactFilter>(); + artifact = new HashMap<StringPair, ArtifactFilter>(); artifacts.put(artifactName, artifact); } ArtifactFilter filter = artifact.get(factory); if (filter == null) { filter = new ArtifactFilter(factory); - artifact.put(factory, filter); + artifact.put(new StringPair(factory, displayName), filter); } filter.add(out, name, ids); @@ -61,7 +77,7 @@ public List<Recommendation> toRecommendations() { List<Recommendation> recommendations = new ArrayList<Recommendation>(); - for (Map.Entry<String, Map<String, ArtifactFilter>> all: + for (Map.Entry<String, Map<StringPair, ArtifactFilter>> all: artifacts.entrySet() ) { String masterArtifact = all.getKey(); @@ -70,10 +86,11 @@ masterArtifact = null; } - for (Map.Entry<String, ArtifactFilter> entry: + for (Map.Entry<StringPair, ArtifactFilter> entry: all.getValue().entrySet() ) { - String factory = entry.getKey(); + StringPair pair = entry.getKey(); + String factory = pair.first; ArtifactFilter artifactFilter = entry.getValue(); String ids; @@ -90,6 +107,7 @@ Recommendation recommendation = new Recommendation( factory, ids, masterArtifact, filter); + recommendation.setDisplayName(pair.second); recommendations.add(recommendation); }