Mercurial > dive4elements > river
annotate flys-client/src/main/java/de/intevation/flys/client/shared/model/ArtifactFilter.java @ 892:63b258bf365c
Bugfix: Use name instead of description for loading new facets via Datacage.
flys-client/trunk@2735 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Wed, 14 Sep 2011 10:00:55 +0000 |
parents | ace7e9cfbb7f |
children | 6bb6d43eeb2d |
rev | line source |
---|---|
830
3dde14f0bd98
Datacage: Added models better suited for creating artifact facet filters.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
1 package de.intevation.flys.client.shared.model; |
3dde14f0bd98
Datacage: Added models better suited for creating artifact facet filters.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
2 |
3dde14f0bd98
Datacage: Added models better suited for creating artifact facet filters.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
3 import java.io.Serializable; |
3dde14f0bd98
Datacage: Added models better suited for creating artifact facet filters.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
4 |
3dde14f0bd98
Datacage: Added models better suited for creating artifact facet filters.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
5 import java.util.HashMap; |
3dde14f0bd98
Datacage: Added models better suited for creating artifact facet filters.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
6 import java.util.Map; |
846
e47ef0ca8f33
Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
834
diff
changeset
|
7 import java.util.List; |
830
3dde14f0bd98
Datacage: Added models better suited for creating artifact facet filters.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
8 |
3dde14f0bd98
Datacage: Added models better suited for creating artifact facet filters.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
9 public class ArtifactFilter |
3dde14f0bd98
Datacage: Added models better suited for creating artifact facet filters.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
10 implements Serializable |
3dde14f0bd98
Datacage: Added models better suited for creating artifact facet filters.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
11 { |
3dde14f0bd98
Datacage: Added models better suited for creating artifact facet filters.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
12 protected String factoryName; |
3dde14f0bd98
Datacage: Added models better suited for creating artifact facet filters.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
13 |
3dde14f0bd98
Datacage: Added models better suited for creating artifact facet filters.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
14 protected Map<String, OutFilter> outFilters; |
3dde14f0bd98
Datacage: Added models better suited for creating artifact facet filters.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
15 |
3dde14f0bd98
Datacage: Added models better suited for creating artifact facet filters.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
16 public ArtifactFilter() { |
3dde14f0bd98
Datacage: Added models better suited for creating artifact facet filters.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
17 outFilters = new HashMap<String, OutFilter>(); |
3dde14f0bd98
Datacage: Added models better suited for creating artifact facet filters.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
18 } |
3dde14f0bd98
Datacage: Added models better suited for creating artifact facet filters.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
19 |
3dde14f0bd98
Datacage: Added models better suited for creating artifact facet filters.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
20 public ArtifactFilter(String factoryName) { |
884
ace7e9cfbb7f
Fixed some bugs that avoided datacage usage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
846
diff
changeset
|
21 this(); |
830
3dde14f0bd98
Datacage: Added models better suited for creating artifact facet filters.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
22 this.factoryName = factoryName; |
3dde14f0bd98
Datacage: Added models better suited for creating artifact facet filters.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
23 } |
3dde14f0bd98
Datacage: Added models better suited for creating artifact facet filters.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
24 |
3dde14f0bd98
Datacage: Added models better suited for creating artifact facet filters.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
25 public String getFactoryName() { |
3dde14f0bd98
Datacage: Added models better suited for creating artifact facet filters.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
26 return factoryName; |
3dde14f0bd98
Datacage: Added models better suited for creating artifact facet filters.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
27 } |
3dde14f0bd98
Datacage: Added models better suited for creating artifact facet filters.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
28 |
3dde14f0bd98
Datacage: Added models better suited for creating artifact facet filters.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
29 public void setFactoryName(String factoryName) { |
3dde14f0bd98
Datacage: Added models better suited for creating artifact facet filters.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
30 this.factoryName = factoryName; |
3dde14f0bd98
Datacage: Added models better suited for creating artifact facet filters.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
31 } |
3dde14f0bd98
Datacage: Added models better suited for creating artifact facet filters.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
32 |
3dde14f0bd98
Datacage: Added models better suited for creating artifact facet filters.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
33 public void add(String out, String name, String num) { |
834
77469d7f3c93
Generate unique keys for anonymous artifacts (aka static data).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
830
diff
changeset
|
34 |
77469d7f3c93
Generate unique keys for anonymous artifacts (aka static data).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
830
diff
changeset
|
35 if (out == null) { |
77469d7f3c93
Generate unique keys for anonymous artifacts (aka static data).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
830
diff
changeset
|
36 out = ToLoad.uniqueKey(outFilters); |
77469d7f3c93
Generate unique keys for anonymous artifacts (aka static data).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
830
diff
changeset
|
37 } |
77469d7f3c93
Generate unique keys for anonymous artifacts (aka static data).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
830
diff
changeset
|
38 |
830
3dde14f0bd98
Datacage: Added models better suited for creating artifact facet filters.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
39 OutFilter outFilter = outFilters.get(out); |
3dde14f0bd98
Datacage: Added models better suited for creating artifact facet filters.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
40 |
3dde14f0bd98
Datacage: Added models better suited for creating artifact facet filters.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
41 if (outFilter == null) { |
3dde14f0bd98
Datacage: Added models better suited for creating artifact facet filters.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
42 outFilter = new OutFilter(out); |
3dde14f0bd98
Datacage: Added models better suited for creating artifact facet filters.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
43 outFilters.put(out, outFilter); |
3dde14f0bd98
Datacage: Added models better suited for creating artifact facet filters.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
44 } |
3dde14f0bd98
Datacage: Added models better suited for creating artifact facet filters.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
45 outFilter.add(name, num); |
3dde14f0bd98
Datacage: Added models better suited for creating artifact facet filters.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
46 } |
846
e47ef0ca8f33
Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
834
diff
changeset
|
47 |
e47ef0ca8f33
Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
834
diff
changeset
|
48 public String collectIds() { |
e47ef0ca8f33
Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
834
diff
changeset
|
49 StringBuilder sb = new StringBuilder(); |
e47ef0ca8f33
Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
834
diff
changeset
|
50 for (OutFilter outFilter: outFilters.values()) { |
e47ef0ca8f33
Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
834
diff
changeset
|
51 outFilter.collectIds(sb); |
e47ef0ca8f33
Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
834
diff
changeset
|
52 } |
e47ef0ca8f33
Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
834
diff
changeset
|
53 return sb.toString(); |
e47ef0ca8f33
Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
834
diff
changeset
|
54 } |
e47ef0ca8f33
Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
834
diff
changeset
|
55 |
e47ef0ca8f33
Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
834
diff
changeset
|
56 public Recommendation.Filter toFilter() { |
e47ef0ca8f33
Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
834
diff
changeset
|
57 Recommendation.Filter rf = new Recommendation.Filter(); |
e47ef0ca8f33
Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
834
diff
changeset
|
58 for (Map.Entry<String, OutFilter> entry: outFilters.entrySet()) { |
e47ef0ca8f33
Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
834
diff
changeset
|
59 List<Recommendation.Facet> facets = entry.getValue().toFacets(); |
e47ef0ca8f33
Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
834
diff
changeset
|
60 rf.add(entry.getKey(), facets); |
e47ef0ca8f33
Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
834
diff
changeset
|
61 } |
e47ef0ca8f33
Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
834
diff
changeset
|
62 return rf; |
e47ef0ca8f33
Compile a list of recommendations out of
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
834
diff
changeset
|
63 } |
830
3dde14f0bd98
Datacage: Added models better suited for creating artifact facet filters.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
64 } |
3dde14f0bd98
Datacage: Added models better suited for creating artifact facet filters.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
65 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |