Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/HYKArtifact.java @ 2131:e50a928187cd
Added stubby hyk infrastructure.
flys-artifacts/trunk@3706 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Wed, 18 Jan 2012 13:39:16 +0000 |
parents | |
children | 923256599afe |
comparison
equal
deleted
inserted
replaced
2130:3cbdf1b77ea5 | 2131:e50a928187cd |
---|---|
1 package de.intevation.flys.artifacts; | |
2 | |
3 import java.util.ArrayList; | |
4 import java.util.List; | |
5 | |
6 import org.apache.log4j.Logger; | |
7 | |
8 import org.w3c.dom.Document; | |
9 | |
10 import de.intevation.artifacts.Artifact; | |
11 import de.intevation.artifacts.ArtifactFactory; | |
12 import de.intevation.artifacts.CallMeta; | |
13 | |
14 import de.intevation.artifacts.common.ArtifactNamespaceContext; | |
15 import de.intevation.artifacts.common.utils.XMLUtils; | |
16 | |
17 import de.intevation.flys.artifacts.states.DefaultState; | |
18 | |
19 import de.intevation.artifactdatabase.state.Facet; | |
20 | |
21 | |
22 /** | |
23 * Artifact describing the area between two WKms. | |
24 */ | |
25 public class HYKArtifact extends StaticFLYSArtifact { | |
26 | |
27 /** Access ids of doc. */ | |
28 public static final String XPATH_IDS = "/art:action/art:ids/@value"; | |
29 | |
30 /** Name of Artifact. */ | |
31 public static final String HYK_ARTIFACT_NAME = "hyk"; | |
32 | |
33 /** Name of data item keeping the km of cs master. */ | |
34 public static final String HYK_KM = "hyk_artifact.data.km"; | |
35 | |
36 /** Own logger. */ | |
37 private static final Logger logger = | |
38 Logger.getLogger(HYKArtifact.class); | |
39 | |
40 | |
41 /** Return given name. */ | |
42 @Override | |
43 public String getName() { | |
44 return HYK_ARTIFACT_NAME; | |
45 } | |
46 | |
47 | |
48 /** Store ids, do super.setup. */ | |
49 @Override | |
50 public void setup( | |
51 String identifier, | |
52 ArtifactFactory factory, | |
53 Object context, | |
54 CallMeta callMeta, | |
55 Document data) | |
56 { | |
57 logger.info("HYKArtifact.setup"); | |
58 | |
59 super.setup(identifier, factory, context, callMeta, data); | |
60 | |
61 String ids = XMLUtils.xpathString( | |
62 data, XPATH_IDS, ArtifactNamespaceContext.INSTANCE); | |
63 | |
64 addStringData("ids", ids); | |
65 } | |
66 | |
67 | |
68 /** Set km as Data. */ | |
69 public void setKm(double km) { | |
70 addStringData(HYK_KM, Double.toString(km)); | |
71 } | |
72 | |
73 | |
74 /** | |
75 * Get a DataItem casted to double (0 if fails). | |
76 * TODO move to FlysArtifact. | |
77 */ | |
78 public double getDataAsDouble(String dataName) { | |
79 String val = getDataAsString(dataName); | |
80 if (val == null) { | |
81 logger.warn("Data not available."); | |
82 return 0d; | |
83 } | |
84 try { | |
85 return Double.valueOf(val); | |
86 } | |
87 catch (NumberFormatException e) { | |
88 logger.warn("Could not get data " + dataName + " as double", e); | |
89 return 0; | |
90 } | |
91 } | |
92 | |
93 | |
94 /** Get km from state data. */ | |
95 public double getKm() { | |
96 return getDataAsDouble(HYK_KM); | |
97 } | |
98 | |
99 /** Do not copy data from daddyfact. */ | |
100 @Override | |
101 protected void initialize( | |
102 Artifact artifact, | |
103 Object context, | |
104 CallMeta callMeta) | |
105 { | |
106 logger.debug("HYKArtifact.initialize"); | |
107 WINFOArtifact winfo = (WINFOArtifact) artifact; | |
108 importData(winfo, "river"); | |
109 | |
110 List<Facet> fs = new ArrayList<Facet>(); | |
111 | |
112 DefaultState state = (DefaultState) getCurrentState(context); | |
113 state.computeInit(this, hash(), context, callMeta, fs); | |
114 if (!fs.isEmpty()) { | |
115 logger.debug("Facets to add in HYKArtifact.initialize ."); | |
116 facets.put(getCurrentStateId(), fs); | |
117 } | |
118 else { | |
119 logger.debug("No facets to add in HYKArtifact.initialize (" | |
120 + state.getID() + ")."); | |
121 } | |
122 } | |
123 } | |
124 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |