comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/WaterlevelState.java @ 697:b972eba2ed8a facets-slt

Removed ComputeCallback because this was thought too complicated. Fixed issue with facets not be re-generated if same state is entered again. flys-artifacts/branches/facets-slt@2143 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Fri, 17 Jun 2011 10:40:54 +0000
parents 708b270dfd30
children af3b5d9e91a4
comparison
equal deleted inserted replaced
696:708b270dfd30 697:b972eba2ed8a
13 13
14 import de.intevation.artifactdatabase.state.Facet; 14 import de.intevation.artifactdatabase.state.Facet;
15 15
16 import de.intevation.flys.artifacts.FLYSArtifact; 16 import de.intevation.flys.artifacts.FLYSArtifact;
17 import de.intevation.flys.artifacts.WINFOArtifact; 17 import de.intevation.flys.artifacts.WINFOArtifact;
18 import de.intevation.flys.artifacts.model.ComputeCallback;
19 import de.intevation.flys.artifacts.model.ComputeCallbackAdapter;
20 import de.intevation.flys.artifacts.model.FacetTypes; 18 import de.intevation.flys.artifacts.model.FacetTypes;
21 import de.intevation.flys.artifacts.model.WaterlevelFacet; 19 import de.intevation.flys.artifacts.model.WaterlevelFacet;
22 import de.intevation.flys.artifacts.model.WQKms; 20 import de.intevation.flys.artifacts.model.WQKms;
23 21
24 22
40 return null; 38 return null;
41 } 39 }
42 40
43 41
44 @Override 42 @Override
45 public ComputeCallback createComputeCallback( 43 public Object computeAdvance(
46 String hash, FLYSArtifact flys) 44 FLYSArtifact artifact,
47 { 45 String hash,
48 logger.debug("Create waterlevel ComputeCallback."); 46 CallContext context,
47 List<Facet> facets,
48 Object old
49 ) {
50 WINFOArtifact winfo = (WINFOArtifact)artifact;
49 51
50 final WINFOArtifact winfo = (WINFOArtifact) flys; 52 WQKms [] res;
51 53
52 return new ComputeCallbackAdapter() { 54 if (old instanceof WQKms []) {
55 res = (WQKms [])old;
56 }
57 else {
58 res = winfo.getWaterlevelData();
59 if (res == null) {
60 logger.debug("No results given.");
61 return null;
62 }
63 }
53 64
54 @Override 65 for (int i = 0; i < res.length; i++) {
55 public Object computeAdvance( 66 String nameW = null;
56 CallContext context, 67 String nameQ = null;
57 List<Facet> facets)
58 {
59 WQKms[] res = winfo.getWaterlevelData();
60 68
61 if (res == null) { 69 if (winfo.isQ()) {
62 logger.debug("No results given."); 70 nameQ = res[i].getName();
63 return null; 71 nameW = "W(" + nameQ + ")";
64 } 72 }
73 else {
74 nameW = res[i].getName();
75 nameQ = "Q(" + nameQ + ")";
76 }
65 77
66 for (int i = 0; i < res.length; i++) { 78 logger.debug("Create facet: " + nameW);
67 String nameW = null; 79 logger.debug("Create facet: " + nameQ);
68 String nameQ = null;
69 80
70 if (winfo.isQ()) { 81 Facet w = new WaterlevelFacet(i, LONGITUDINAL_W, nameW);
71 nameQ = res[i].getName(); 82 Facet q = new WaterlevelFacet(i, LONGITUDINAL_Q, nameQ);
72 nameW = "W(" + nameQ + ")";
73 }
74 else {
75 nameW = res[i].getName();
76 nameQ = "Q(" + nameQ + ")";
77 }
78 83
79 logger.debug("Create facet: " + nameW); 84 facets.add(w);
80 logger.debug("Create facet: " + nameQ); 85 facets.add(q);
86 }
81 87
82 Facet w = new WaterlevelFacet(i, LONGITUDINAL_W, nameW); 88 return res;
83 Facet q = new WaterlevelFacet(i, LONGITUDINAL_Q, nameQ);
84
85 facets.add(w);
86 facets.add(q);
87 }
88
89 return res;
90 }
91 };
92 } 89 }
93 } 90 }
94 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 : 91 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org