Mercurial > dive4elements > river
annotate flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/BlackboardDataFacet.java @ 4163:2b4f78ccfbaa
Made DoubleUtil.explode() more robust against invalid result array sizes.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Wed, 17 Oct 2012 01:12:19 +0200 |
parents | ccc955ef8811 |
children |
rev | line source |
---|---|
2024
2bb160b2768e
New facet, will ease converting other facets to be able to contribute to area computations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
1 package de.intevation.flys.artifacts.model; |
2bb160b2768e
New facet, will ease converting other facets to be able to contribute to area computations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
2 |
2bb160b2768e
New facet, will ease converting other facets to be able to contribute to area computations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
3 import java.util.ArrayList; |
2bb160b2768e
New facet, will ease converting other facets to be able to contribute to area computations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
4 import java.util.List; |
2bb160b2768e
New facet, will ease converting other facets to be able to contribute to area computations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
5 |
2bb160b2768e
New facet, will ease converting other facets to be able to contribute to area computations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
6 import de.intevation.artifacts.Artifact; |
2bb160b2768e
New facet, will ease converting other facets to be able to contribute to area computations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
7 import de.intevation.artifacts.CallContext; |
2bb160b2768e
New facet, will ease converting other facets to be able to contribute to area computations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
8 |
2125
7a8f52267a5c
Fix stateId/hash assignment in WaterlevelFacet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2122
diff
changeset
|
9 import de.intevation.artifactdatabase.state.Facet; |
2024
2bb160b2768e
New facet, will ease converting other facets to be able to contribute to area computations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
10 import de.intevation.artifactdatabase.state.DefaultFacet; |
2bb160b2768e
New facet, will ease converting other facets to be able to contribute to area computations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
11 |
2bb160b2768e
New facet, will ease converting other facets to be able to contribute to area computations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
12 |
2bb160b2768e
New facet, will ease converting other facets to be able to contribute to area computations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
13 /** |
2bb160b2768e
New facet, will ease converting other facets to be able to contribute to area computations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
14 * Facet that writes artifact-uui and facet index on the blackboard, |
2bb160b2768e
New facet, will ease converting other facets to be able to contribute to area computations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
15 * delivers data if asked so. |
2bb160b2768e
New facet, will ease converting other facets to be able to contribute to area computations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
16 */ |
2bb160b2768e
New facet, will ease converting other facets to be able to contribute to area computations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
17 public class BlackboardDataFacet extends DefaultFacet { |
2bb160b2768e
New facet, will ease converting other facets to be able to contribute to area computations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
18 |
2bb160b2768e
New facet, will ease converting other facets to be able to contribute to area computations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
19 public BlackboardDataFacet() {} |
2bb160b2768e
New facet, will ease converting other facets to be able to contribute to area computations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
20 |
2bb160b2768e
New facet, will ease converting other facets to be able to contribute to area computations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
21 /** Do not instantiate a BlackboardDataFacet, subclass it instead. */ |
2bb160b2768e
New facet, will ease converting other facets to be able to contribute to area computations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
22 public BlackboardDataFacet(int idx, String name, String description) { |
2bb160b2768e
New facet, will ease converting other facets to be able to contribute to area computations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
23 super(idx, name, description); |
2bb160b2768e
New facet, will ease converting other facets to be able to contribute to area computations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
24 } |
2bb160b2768e
New facet, will ease converting other facets to be able to contribute to area computations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
25 |
2739
ccc955ef8811
Whitespaces.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2405
diff
changeset
|
26 |
2122
81312f84689a
Refactored to easier enjoy benefits of caching.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2104
diff
changeset
|
27 /** Do not instantiate a BlackboardDataFacet, subclass it instead. */ |
81312f84689a
Refactored to easier enjoy benefits of caching.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2104
diff
changeset
|
28 public BlackboardDataFacet(String name, String description) { |
81312f84689a
Refactored to easier enjoy benefits of caching.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2104
diff
changeset
|
29 super(0, name, description); |
81312f84689a
Refactored to easier enjoy benefits of caching.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2104
diff
changeset
|
30 } |
2024
2bb160b2768e
New facet, will ease converting other facets to be able to contribute to area computations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
31 |
2739
ccc955ef8811
Whitespaces.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2405
diff
changeset
|
32 |
2104
bb0dede9294f
Implementation towards areas at other than first axis (flys/issue441).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2024
diff
changeset
|
33 /** Define key to which to respond when asked for 'blackboard' |
bb0dede9294f
Implementation towards areas at other than first axis (flys/issue441).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2024
diff
changeset
|
34 * (DataProvider)- data. */ |
bb0dede9294f
Implementation towards areas at other than first axis (flys/issue441).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2024
diff
changeset
|
35 public String areaDataKey(Artifact art) { |
bb0dede9294f
Implementation towards areas at other than first axis (flys/issue441).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2024
diff
changeset
|
36 return art.identifier() + ":" + getName() + ":" + getIndex(); |
bb0dede9294f
Implementation towards areas at other than first axis (flys/issue441).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2024
diff
changeset
|
37 } |
bb0dede9294f
Implementation towards areas at other than first axis (flys/issue441).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2024
diff
changeset
|
38 |
bb0dede9294f
Implementation towards areas at other than first axis (flys/issue441).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2024
diff
changeset
|
39 |
bb0dede9294f
Implementation towards areas at other than first axis (flys/issue441).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2024
diff
changeset
|
40 /** Hey, We can ArtifactUUID+:+FacetName+:+FacetIndex (i.e. getData)! */ |
2405
f008c3335a77
Towards fixe of flys/issue495.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2125
diff
changeset
|
41 @Override |
f008c3335a77
Towards fixe of flys/issue495.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2125
diff
changeset
|
42 public List getStaticDataProviderKeys(Artifact art) { |
2024
2bb160b2768e
New facet, will ease converting other facets to be able to contribute to area computations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
43 List list = new ArrayList(); |
2104
bb0dede9294f
Implementation towards areas at other than first axis (flys/issue441).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2024
diff
changeset
|
44 list.add(areaDataKey(art)); |
2024
2bb160b2768e
New facet, will ease converting other facets to be able to contribute to area computations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
45 return list; |
2bb160b2768e
New facet, will ease converting other facets to be able to contribute to area computations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
46 } |
2bb160b2768e
New facet, will ease converting other facets to be able to contribute to area computations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
47 |
2bb160b2768e
New facet, will ease converting other facets to be able to contribute to area computations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
48 |
2bb160b2768e
New facet, will ease converting other facets to be able to contribute to area computations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
49 /** |
2bb160b2768e
New facet, will ease converting other facets to be able to contribute to area computations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
50 * Can provide whatever getData returns. |
2bb160b2768e
New facet, will ease converting other facets to be able to contribute to area computations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
51 * @param key will respond on uuid+index |
2bb160b2768e
New facet, will ease converting other facets to be able to contribute to area computations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
52 * @param param ignored |
2bb160b2768e
New facet, will ease converting other facets to be able to contribute to area computations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
53 * @param context ignored |
2bb160b2768e
New facet, will ease converting other facets to be able to contribute to area computations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
54 * @return whatever getData delivers. |
2bb160b2768e
New facet, will ease converting other facets to be able to contribute to area computations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
55 */ |
2405
f008c3335a77
Towards fixe of flys/issue495.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2125
diff
changeset
|
56 @Override |
2024
2bb160b2768e
New facet, will ease converting other facets to be able to contribute to area computations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
57 public Object provideBlackboardData(Artifact artifact, |
2bb160b2768e
New facet, will ease converting other facets to be able to contribute to area computations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
58 Object key, |
2bb160b2768e
New facet, will ease converting other facets to be able to contribute to area computations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
59 Object param, |
2bb160b2768e
New facet, will ease converting other facets to be able to contribute to area computations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
60 CallContext context |
2bb160b2768e
New facet, will ease converting other facets to be able to contribute to area computations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
61 ) { |
2104
bb0dede9294f
Implementation towards areas at other than first axis (flys/issue441).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2024
diff
changeset
|
62 if (key.equals(areaDataKey(artifact))) { |
2024
2bb160b2768e
New facet, will ease converting other facets to be able to contribute to area computations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
63 return getData(artifact, context); |
2bb160b2768e
New facet, will ease converting other facets to be able to contribute to area computations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
64 } |
2bb160b2768e
New facet, will ease converting other facets to be able to contribute to area computations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
65 else { |
2bb160b2768e
New facet, will ease converting other facets to be able to contribute to area computations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
66 return null; |
2bb160b2768e
New facet, will ease converting other facets to be able to contribute to area computations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
67 } |
2bb160b2768e
New facet, will ease converting other facets to be able to contribute to area computations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
68 } |
2125
7a8f52267a5c
Fix stateId/hash assignment in WaterlevelFacet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2122
diff
changeset
|
69 |
7a8f52267a5c
Fix stateId/hash assignment in WaterlevelFacet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2122
diff
changeset
|
70 /** Copy deeply. */ |
7a8f52267a5c
Fix stateId/hash assignment in WaterlevelFacet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2122
diff
changeset
|
71 @Override |
7a8f52267a5c
Fix stateId/hash assignment in WaterlevelFacet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2122
diff
changeset
|
72 public Facet deepCopy() { |
7a8f52267a5c
Fix stateId/hash assignment in WaterlevelFacet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2122
diff
changeset
|
73 BlackboardDataFacet copy = new BlackboardDataFacet(); |
7a8f52267a5c
Fix stateId/hash assignment in WaterlevelFacet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2122
diff
changeset
|
74 copy.set(this); |
7a8f52267a5c
Fix stateId/hash assignment in WaterlevelFacet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2122
diff
changeset
|
75 return copy; |
7a8f52267a5c
Fix stateId/hash assignment in WaterlevelFacet.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2122
diff
changeset
|
76 } |
2024
2bb160b2768e
New facet, will ease converting other facets to be able to contribute to area computations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
77 } |
2bb160b2768e
New facet, will ease converting other facets to be able to contribute to area computations.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff
changeset
|
78 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |