Mercurial > dive4elements > river
diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/MainValuesArtifact.java @ 1085:07878836ee0d
Plot "real" (respecting parameters) W and Q MainValues, yet in wrong scale.
flys-artifacts/trunk@2588 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Fri, 26 Aug 2011 08:49:18 +0000 |
parents | fa01c3602f66 |
children | e298c4d28927 |
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/MainValuesArtifact.java Fri Aug 26 08:07:47 2011 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/MainValuesArtifact.java Fri Aug 26 08:49:18 2011 +0000 @@ -7,21 +7,23 @@ import org.w3c.dom.Document; -import de.intevation.artifactdatabase.state.DefaultFacet; import de.intevation.artifactdatabase.state.Facet; import de.intevation.artifactdatabase.state.DefaultOutput; import de.intevation.artifactdatabase.state.State; +import de.intevation.artifactdatabase.data.StateData; import de.intevation.artifacts.Artifact; import de.intevation.artifacts.ArtifactFactory; -import de.intevation.artifacts.CallContext; import de.intevation.artifacts.CallMeta; import de.intevation.flys.artifacts.model.RiverFactory; -import de.intevation.flys.artifacts.model.FacetTypes; +import de.intevation.flys.artifacts.model.MainValuesWFacet; +import de.intevation.flys.artifacts.model.MainValuesQFacet; +import de.intevation.artifactdatabase.data.DefaultStateData; import de.intevation.flys.artifacts.states.StaticState; import de.intevation.flys.model.Gauge; +import de.intevation.flys.model.MainValue; import de.intevation.flys.model.River; @@ -73,17 +75,18 @@ protected void initialize(Artifact artifact, Object context, CallMeta meta) { logger.debug("MainValuesArtifact.initialize"); WINFOArtifact winfo = (WINFOArtifact) artifact; - River river = winfo.getRiver(); - double location = winfo.getLocations()[0]; // Ort der Abflusskurve - - logger.error("Location: " + location); - Gauge gauge = river.determineGaugeByPosition(location); + //River river = winfo.getRiver(); + double location = winfo.getLocations()[0]; + logger.debug("MainValues.location: " + location); + addData("location", new DefaultStateData("location", null, null, + String.valueOf(location))); + addData("river", winfo.getData("river")); } /** * Get a list containing the one and only State. - * @param context ignored. + * @param context ignored. * @return list with one and only state. */ @Override @@ -128,7 +131,10 @@ else { state = new StaticState(); List<Facet> fs = new ArrayList<Facet>(); - fs.add(new MainValuesFacet()); + Facet qfacet = new MainValuesQFacet(); + Facet wfacet = new MainValuesWFacet(); + fs.add(qfacet); + fs.add(wfacet); // TODO check if facets and outputs already exist. // TODO also check, this is usually done in initialize, too. facets.put(state.getID(), fs); @@ -148,67 +154,56 @@ return state; } + /** + * Get the river. + * @todo resolve, this is a duplicate of WINFOArtifact. + */ + public River getRiver() { + StateData dRiver = getData("river"); - public List getMainValues() { - River river = RiverFactory.getRiver("Saar"); - logger.warn("Go to river " + river); - double location = 5.0f; - Gauge gauge = river.determineGaugeByPosition(location); - return gauge.getMainValues(); + return dRiver != null + ? RiverFactory.getRiver((String) dRiver.getValue()) + : null; } + protected Gauge getGauge() { + River river = getRiver(); - /* FACET IMPLEMENTATION */ - // TODO evaluate whether DefaultFacet can do. - static class MainValuesFacet - extends DefaultFacet - implements FacetTypes { - - public MainValuesFacet() { - description = "facet.discharge_curves.mainvalues.description"; - name = COMPUTED_DISCHARGE_MAINVALUES; - //Resources.getMsg(meta, I18N_DESCRIPTION, I18N_DESCRIPTION)); - index = 0; + if (river == null) { + return null; } + double location = Double.parseDouble( + (String)getData("location").getValue()); - /** - * Returns the description of this facet. - * - * @return the description of this facet. - */ - @Override - public String getDescription() { - // TODO remove, is part of DefaultFacet. - return "facet.mainvalues"; + return river.determineGaugeByPosition(location); + } + + public List<MainValue> getMainValuesQ() { + List<MainValue> filteredList = new ArrayList<MainValue>(); + Gauge gauge = getGauge(); + if (gauge != null) { + List<MainValue> orig = gauge.getMainValues(); + for (MainValue mv : orig) { + if (mv.getMainValue().getType().getName().equals("Q")) { + filteredList.add(mv); + } + } } - - - /** - * Returns the data this facet requires. - * - * @param artifact the owner artifact. - * @param context the CallContext (ignored). - * - * @return the data. - */ - @Override - public Object getData(Artifact artifact, CallContext context) { - MainValuesArtifact mvArtifact = (MainValuesArtifact) artifact; - return mvArtifact.getMainValues(); + return filteredList; + } + + public List<MainValue> getMainValuesW() { + List<MainValue> filteredList = new ArrayList<MainValue>(); + Gauge gauge = getGauge(); + if (gauge != null) { + List<MainValue> orig = gauge.getMainValues(); + for (MainValue mv : orig) { + if (mv.getMainValue().getType().getName().equals("W")) { + filteredList.add(mv); + } + } } - - - /** - * Create a deep copy of this Facet. - * @return a deep copy. - */ - @Override - public MainValuesFacet deepCopy() { - MainValuesFacet copy = new MainValuesFacet(); - copy.set(this); - return copy; - } + return filteredList; } - }