Mercurial > dive4elements > river
diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/GaugeDischargeArtifact.java @ 2723:5ce5abd173b9
Added skeleton for gauge discharge curves.
flys-artifacts/trunk@4454 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Tue, 22 May 2012 09:06:02 +0000 |
parents | |
children | ac9a03ed32c1 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/GaugeDischargeArtifact.java Tue May 22 09:06:02 2012 +0000 @@ -0,0 +1,131 @@ +package de.intevation.flys.artifacts; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.log4j.Logger; + +import org.w3c.dom.Document; + +import de.intevation.artifactdatabase.state.Facet; + +import de.intevation.artifacts.Artifact; +import de.intevation.artifacts.ArtifactFactory; +import de.intevation.artifacts.ArtifactNamespaceContext; +import de.intevation.artifacts.CallMeta; + +import de.intevation.artifacts.common.utils.XMLUtils; + +import de.intevation.flys.artifacts.model.FacetTypes; + +import de.intevation.flys.artifacts.states.DefaultState; + + + +/** + * Artifact to store user-added points. + */ +public class GaugeDischargeArtifact +extends WINFOArtifact +implements FacetTypes +{ + /** The logger for this class. */ + private static Logger logger = Logger.getLogger(GaugeDischargeArtifact.class); + + /** The name of the artifact. */ + public static final String ARTIFACT_NAME = "historicalq"; + + // TODO make this one globally available + public static final String XPATH_DATA = + "/art:action/art:ids/@value"; + + /** + * Trivial Constructor. + */ + public GaugeDischargeArtifact() { + logger.debug("GaugeDischargeArtifact.HistoricalQArtifact()"); + } + + + /** + * Gets called from factory, to set things up. + * Especially, when loaded via datacage mechanisms, provide the + * data document. + * @param data filled with stuff from dc, if any. + */ + @Override + public void setup( + String identifier, + ArtifactFactory factory, + Object context, + CallMeta callMeta, + Document data) + { + logger.debug("GaugeDischargeArtifact.setup"); + super.setup(identifier, factory, context, callMeta, data); + String ids = XMLUtils.xpathString( + data, XPATH_DATA, ArtifactNamespaceContext.INSTANCE); + logger.debug("id for gaugedischarge: " + ids); + } + + + /** Return the name of this artifact. */ + public String getName() { + return ARTIFACT_NAME; + } + + + /** Access state data storing the jsonstring with points. + public String getPointsData(String facetName) { + return getDataAsString(facetName + ".data"); + }*/ + + + /** + * Setup state and facet, copy from master artifact. + */ + @Override + protected void initialize(Artifact art, Object context, CallMeta meta) { + logger.debug("GaugeDischargeArtifact.initialize"); + List<Facet> fs = new ArrayList<Facet>(); + FLYSArtifact artifact = (FLYSArtifact) art; + + // Get the location(s) + importData(artifact, "ld_mode"); + importData(artifact, "ld_from"); + importData(artifact, "ld_to"); + importData(artifact, "ld_locations"); + + DefaultState state = (DefaultState) getCurrentState(context); + state.computeInit(this, hash(), context, meta, fs); + if (!fs.isEmpty()) { + logger.debug("Facets to add in GaugeDischargeArtifact.initialize ."); + facets.put(getCurrentStateId(), fs); + } + else { + logger.debug("No facets to add in GaugeDischargeArtifact.initialize (" + + state.getID() + ")."); + } + } + + + + /** + * Determines Facets initial disposition regarding activity (think of + * selection in Client ThemeList GUI). This will be checked one time + * when the facet enters a collections describe document. + * + * @param facetName name of the facet. + * @param index index of the facet. + * @return 0 if not active + */ + @Override + public int getInitialFacetActivity( + String outputName, + String facetName, + int index) + { + return 1; + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :