Mercurial > dive4elements > river
diff 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 |
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/WaterlevelState.java Fri Jun 17 09:19:43 2011 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/WaterlevelState.java Fri Jun 17 10:40:54 2011 +0000 @@ -15,8 +15,6 @@ import de.intevation.flys.artifacts.FLYSArtifact; import de.intevation.flys.artifacts.WINFOArtifact; -import de.intevation.flys.artifacts.model.ComputeCallback; -import de.intevation.flys.artifacts.model.ComputeCallbackAdapter; import de.intevation.flys.artifacts.model.FacetTypes; import de.intevation.flys.artifacts.model.WaterlevelFacet; import de.intevation.flys.artifacts.model.WQKms; @@ -42,53 +40,52 @@ @Override - public ComputeCallback createComputeCallback( - String hash, FLYSArtifact flys) - { - logger.debug("Create waterlevel ComputeCallback."); - - final WINFOArtifact winfo = (WINFOArtifact) flys; - - return new ComputeCallbackAdapter() { - - @Override - public Object computeAdvance( - CallContext context, - List<Facet> facets) - { - WQKms[] res = winfo.getWaterlevelData(); - - if (res == null) { - logger.debug("No results given."); - return null; - } + public Object computeAdvance( + FLYSArtifact artifact, + String hash, + CallContext context, + List<Facet> facets, + Object old + ) { + WINFOArtifact winfo = (WINFOArtifact)artifact; - for (int i = 0; i < res.length; i++) { - String nameW = null; - String nameQ = null; - - if (winfo.isQ()) { - nameQ = res[i].getName(); - nameW = "W(" + nameQ + ")"; - } - else { - nameW = res[i].getName(); - nameQ = "Q(" + nameQ + ")"; - } + WQKms [] res; - logger.debug("Create facet: " + nameW); - logger.debug("Create facet: " + nameQ); - - Facet w = new WaterlevelFacet(i, LONGITUDINAL_W, nameW); - Facet q = new WaterlevelFacet(i, LONGITUDINAL_Q, nameQ); + if (old instanceof WQKms []) { + res = (WQKms [])old; + } + else { + res = winfo.getWaterlevelData(); + if (res == null) { + logger.debug("No results given."); + return null; + } + } - facets.add(w); - facets.add(q); - } + for (int i = 0; i < res.length; i++) { + String nameW = null; + String nameQ = null; - return res; + if (winfo.isQ()) { + nameQ = res[i].getName(); + nameW = "W(" + nameQ + ")"; } - }; + else { + nameW = res[i].getName(); + nameQ = "Q(" + nameQ + ")"; + } + + logger.debug("Create facet: " + nameW); + logger.debug("Create facet: " + nameQ); + + Facet w = new WaterlevelFacet(i, LONGITUDINAL_W, nameW); + Facet q = new WaterlevelFacet(i, LONGITUDINAL_Q, nameQ); + + facets.add(w); + facets.add(q); + } + + return res; } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :