Mercurial > dive4elements > river
annotate flys-client/src/main/java/de/intevation/flys/client/shared/model/ToLoad.java @ 834:77469d7f3c93
Generate unique keys for anonymous artifacts (aka static data).
flys-client/trunk@2547 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Wed, 24 Aug 2011 09:06:35 +0000 |
parents | 9101b4d64666 |
children | 29966a53cfeb |
rev | line source |
---|---|
822
ffb98b228b3c
Add code to extract data to load from datacage tree.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
1 package de.intevation.flys.client.shared.model; |
ffb98b228b3c
Add code to extract data to load from datacage tree.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
2 |
826
2f65c742803f
Datacage: Aggregate items to load for easier filtering facets
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
822
diff
changeset
|
3 import java.util.Map; |
2f65c742803f
Datacage: Aggregate items to load for easier filtering facets
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
822
diff
changeset
|
4 import java.util.HashMap; |
2f65c742803f
Datacage: Aggregate items to load for easier filtering facets
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
822
diff
changeset
|
5 |
822
ffb98b228b3c
Add code to extract data to load from datacage tree.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
6 import java.io.Serializable; |
ffb98b228b3c
Add code to extract data to load from datacage tree.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
7 |
ffb98b228b3c
Add code to extract data to load from datacage tree.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
8 public class ToLoad implements Serializable |
ffb98b228b3c
Add code to extract data to load from datacage tree.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
9 { |
831
9101b4d64666
Datacage: Re-written ToLoad to feature the new filter models.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
826
diff
changeset
|
10 protected Map<String, Map<String, ArtifactFilter>> artifacts; |
826
2f65c742803f
Datacage: Aggregate items to load for easier filtering facets
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
822
diff
changeset
|
11 |
831
9101b4d64666
Datacage: Re-written ToLoad to feature the new filter models.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
826
diff
changeset
|
12 public ToLoad() { |
9101b4d64666
Datacage: Re-written ToLoad to feature the new filter models.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
826
diff
changeset
|
13 artifacts = new HashMap<String, Map<String, ArtifactFilter>>(); |
822
ffb98b228b3c
Add code to extract data to load from datacage tree.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
14 } |
ffb98b228b3c
Add code to extract data to load from datacage tree.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
15 |
834
77469d7f3c93
Generate unique keys for anonymous artifacts (aka static data).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
831
diff
changeset
|
16 public static final String uniqueKey(Map<?, ?> map) { |
77469d7f3c93
Generate unique keys for anonymous artifacts (aka static data).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
831
diff
changeset
|
17 int idx = map.size(); |
77469d7f3c93
Generate unique keys for anonymous artifacts (aka static data).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
831
diff
changeset
|
18 |
77469d7f3c93
Generate unique keys for anonymous artifacts (aka static data).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
831
diff
changeset
|
19 String key = "key-" + idx; |
77469d7f3c93
Generate unique keys for anonymous artifacts (aka static data).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
831
diff
changeset
|
20 while (map.containsKey(key)) { |
77469d7f3c93
Generate unique keys for anonymous artifacts (aka static data).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
831
diff
changeset
|
21 key = "key-" + ++idx; |
77469d7f3c93
Generate unique keys for anonymous artifacts (aka static data).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
831
diff
changeset
|
22 } |
77469d7f3c93
Generate unique keys for anonymous artifacts (aka static data).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
831
diff
changeset
|
23 return key; |
77469d7f3c93
Generate unique keys for anonymous artifacts (aka static data).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
831
diff
changeset
|
24 } |
77469d7f3c93
Generate unique keys for anonymous artifacts (aka static data).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
831
diff
changeset
|
25 |
831
9101b4d64666
Datacage: Re-written ToLoad to feature the new filter models.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
826
diff
changeset
|
26 public void add( |
9101b4d64666
Datacage: Re-written ToLoad to feature the new filter models.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
826
diff
changeset
|
27 String artifactName, |
9101b4d64666
Datacage: Re-written ToLoad to feature the new filter models.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
826
diff
changeset
|
28 String factory, |
9101b4d64666
Datacage: Re-written ToLoad to feature the new filter models.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
826
diff
changeset
|
29 String out, |
9101b4d64666
Datacage: Re-written ToLoad to feature the new filter models.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
826
diff
changeset
|
30 String name, |
9101b4d64666
Datacage: Re-written ToLoad to feature the new filter models.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
826
diff
changeset
|
31 String num |
9101b4d64666
Datacage: Re-written ToLoad to feature the new filter models.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
826
diff
changeset
|
32 ) { |
834
77469d7f3c93
Generate unique keys for anonymous artifacts (aka static data).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
831
diff
changeset
|
33 if (artifactName == null) { |
77469d7f3c93
Generate unique keys for anonymous artifacts (aka static data).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
831
diff
changeset
|
34 artifactName = uniqueKey(artifacts); |
77469d7f3c93
Generate unique keys for anonymous artifacts (aka static data).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
831
diff
changeset
|
35 } |
826
2f65c742803f
Datacage: Aggregate items to load for easier filtering facets
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
822
diff
changeset
|
36 |
831
9101b4d64666
Datacage: Re-written ToLoad to feature the new filter models.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
826
diff
changeset
|
37 Map<String, ArtifactFilter> artifact = artifacts.get(artifactName); |
826
2f65c742803f
Datacage: Aggregate items to load for easier filtering facets
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
822
diff
changeset
|
38 |
831
9101b4d64666
Datacage: Re-written ToLoad to feature the new filter models.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
826
diff
changeset
|
39 if (artifact == null) { |
9101b4d64666
Datacage: Re-written ToLoad to feature the new filter models.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
826
diff
changeset
|
40 artifact = new HashMap<String, ArtifactFilter>(); |
9101b4d64666
Datacage: Re-written ToLoad to feature the new filter models.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
826
diff
changeset
|
41 artifacts.put(artifactName, artifact); |
826
2f65c742803f
Datacage: Aggregate items to load for easier filtering facets
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
822
diff
changeset
|
42 } |
2f65c742803f
Datacage: Aggregate items to load for easier filtering facets
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
822
diff
changeset
|
43 |
831
9101b4d64666
Datacage: Re-written ToLoad to feature the new filter models.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
826
diff
changeset
|
44 ArtifactFilter filter = artifact.get(factory); |
9101b4d64666
Datacage: Re-written ToLoad to feature the new filter models.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
826
diff
changeset
|
45 if (filter == null) { |
9101b4d64666
Datacage: Re-written ToLoad to feature the new filter models.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
826
diff
changeset
|
46 filter = new ArtifactFilter(factory); |
9101b4d64666
Datacage: Re-written ToLoad to feature the new filter models.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
826
diff
changeset
|
47 artifact.put(factory, filter); |
826
2f65c742803f
Datacage: Aggregate items to load for easier filtering facets
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
822
diff
changeset
|
48 } |
822
ffb98b228b3c
Add code to extract data to load from datacage tree.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
49 |
831
9101b4d64666
Datacage: Re-written ToLoad to feature the new filter models.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
826
diff
changeset
|
50 filter.add(out, name, num); |
822
ffb98b228b3c
Add code to extract data to load from datacage tree.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
51 } |
ffb98b228b3c
Add code to extract data to load from datacage tree.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
52 |
826
2f65c742803f
Datacage: Aggregate items to load for easier filtering facets
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
822
diff
changeset
|
53 public boolean isEmpty() { |
831
9101b4d64666
Datacage: Re-written ToLoad to feature the new filter models.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
826
diff
changeset
|
54 return artifacts.isEmpty(); |
822
ffb98b228b3c
Add code to extract data to load from datacage tree.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
55 } |
ffb98b228b3c
Add code to extract data to load from datacage tree.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
56 } |
ffb98b228b3c
Add code to extract data to load from datacage tree.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
57 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |