comparison flys-client/src/main/java/de/intevation/flys/client/shared/model/ToLoad.java @ 846:e47ef0ca8f33

Compile a list of recommendations out of flys-client/trunk@2570 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Wed, 24 Aug 2011 16:52:40 +0000
parents 29966a53cfeb
children 01b18db3b288
comparison
equal deleted inserted replaced
845:4db672cdacb2 846:e47ef0ca8f33
1 package de.intevation.flys.client.shared.model; 1 package de.intevation.flys.client.shared.model;
2 2
3 import java.util.ArrayList;
4 import java.util.List;
3 import java.util.Map; 5 import java.util.Map;
4 import java.util.HashMap; 6 import java.util.HashMap;
5 7
6 import java.io.Serializable; 8 import java.io.Serializable;
7 9
8 public class ToLoad implements Serializable 10 public class ToLoad implements Serializable
9 { 11 {
12 public static final String SYNTHETIC_KEY = "key-";
13
10 protected Map<String, Map<String, ArtifactFilter>> artifacts; 14 protected Map<String, Map<String, ArtifactFilter>> artifacts;
11 15
12 public ToLoad() { 16 public ToLoad() {
13 artifacts = new HashMap<String, Map<String, ArtifactFilter>>(); 17 artifacts = new HashMap<String, Map<String, ArtifactFilter>>();
14 } 18 }
15 19
16 public static final String uniqueKey(Map<?, ?> map) { 20 public static final String uniqueKey(Map<?, ?> map) {
17 int idx = map.size(); 21 int idx = map.size();
18 22
19 String key = "key-" + idx; 23 String key = SYNTHETIC_KEY + idx;
20 while (map.containsKey(key)) { 24 while (map.containsKey(key)) {
21 key = "key-" + ++idx; 25 key = SYNTHETIC_KEY + ++idx;
22 } 26 }
23 return key; 27 return key;
24 } 28 }
25 29
26 public void add( 30 public void add(
51 } 55 }
52 56
53 public boolean isEmpty() { 57 public boolean isEmpty() {
54 return artifacts.isEmpty(); 58 return artifacts.isEmpty();
55 } 59 }
60
61 public List<Recommendation> toRecommendations() {
62 List<Recommendation> recommendations = new ArrayList<Recommendation>();
63
64 for (Map.Entry<String, Map<String, ArtifactFilter>> all:
65 artifacts.entrySet()
66 ) {
67 String masterArtifact = all.getKey();
68
69 if (masterArtifact.startsWith(SYNTHETIC_KEY)) { // system data
70 masterArtifact = null;
71 }
72
73 for (Map.Entry<String, ArtifactFilter> entry:
74 all.getValue().entrySet()
75 ) {
76 String factory = entry.getKey();
77 ArtifactFilter artifactFilter = entry.getValue();
78
79 String ids;
80 Recommendation.Filter filter;
81
82 if (masterArtifact == null) { // system data
83 ids = artifactFilter.collectIds();
84 filter = null;
85 }
86 else { // user specific
87 ids = null;
88 filter = artifactFilter.toFilter();
89 }
90
91 Recommendation recommendation = new Recommendation(
92 factory, ids, masterArtifact, filter);
93
94 recommendations.add(recommendation);
95 }
96 }
97
98 return recommendations;
99 }
56 } 100 }
57 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : 101 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org